Geolocation Based Notes https://spotnotes.app
Find a file
2026-06-02 21:45:25 -05:00
blueprints map color updates 2026-06-01 23:22:59 -05:00
models map color updates 2026-06-01 23:22:59 -05:00
notes intial commit 2026-05-12 18:58:18 -05:00
static updated nav bar 2026-06-02 21:45:25 -05:00
.gitignore intial commit 2026-05-12 18:58:18 -05:00
app.py intial commit 2026-05-12 18:58:18 -05:00
config.py intial commit 2026-05-12 18:58:18 -05:00
extensions.py intial commit 2026-05-12 18:58:18 -05:00
GEMINI.md large css update 2026-06-01 23:02:39 -05:00
gunicorn_config.py update tp gunicorn 2026-05-12 19:01:50 -05:00
Procfile intial commit 2026-05-12 18:58:18 -05:00
README.md intial commit 2026-05-12 18:58:18 -05:00
refactor.py code refactoring.. addition of marker clumping and search box in the notes tab 2026-06-01 22:49:38 -05:00
refactor_filter.py code refactoring.. addition of marker clumping and search box in the notes tab 2026-06-01 22:49:38 -05:00
requirements.txt intial commit 2026-05-12 18:58:18 -05:00
seed_notes.py intial commit 2026-05-12 18:58:18 -05:00
update_map_colors.py code refactoring.. addition of marker clumping and search box in the notes tab 2026-06-01 22:49:38 -05:00

SpotNotes

SpotNotes is a location-based note-taking web application. It allows users to drop notes on an interactive map, organize them into notepads, and optionally share them with the public or specific users.

Features

  • Interactive Map: View and create notes on a map powered by Leaflet and OpenStreetMap.
  • Location-Based Notes: Every note is tied to specific geographic coordinates.
  • Notepads: Organize notes into collections called "Notepads".
  • Privacy & Sharing: Notepads can be private (only you), public (everyone), or shared via link tokens.
  • User Authentication: Secure registration and login system.
  • Favorites: Save and easily access your favorite public notepads.
  • Search & Geocoding: Search through your notes or use geocoding to find locations worldwide.
  • Admin Dashboard: Manage users, notepads, and notes.

Tech Stack

  • Backend: Python, Flask, Flask-SQLAlchemy (with SQLite for development/PostgreSQL for production).
  • Frontend: HTML5, CSS3 (Vanilla), Vanilla JavaScript, Leaflet.js for maps.
  • Deployment: Configured for Gunicorn and standard WSGI environments (includes Procfile and gunicorn_config.py).

Project Structure

spotnotes.app/
│
├── app.py                  # Main application entry point
├── config.py               # Configuration settings
├── extensions.py           # Flask extensions (SQLAlchemy, CORS)
├── requirements.txt        # Python dependencies
│
├── blueprints/             # Flask Blueprints (Controllers)
│   ├── admin.py            # Admin dashboard routes
│   ├── api.py              # Main REST API for notes/notepads
│   ├── auth.py             # User authentication routes
│   ├── search.py           # Search and geocoding logic
│   └── static_routes.py    # Serving static HTML pages
│
├── models/                 # SQLAlchemy Database Models
│   ├── banned_ip.py        # Security model for IP bans
│   ├── favorite.py         # User's favorited notepads
│   ├── note.py             # Core note data structure
│   ├── notepad.py          # Collections of notes
│   └── user.py             # User account data
│
└── static/                 # Frontend Assets
    ├── index.html          # Main map interface
    ├── login.html          # Login page
    ├── register.html       # Registration page
    ├── admin.html          # Admin interface
    └── assets/
        ├── css/            # Modular stylesheets
        ├── js/             # Modular vanilla JS scripts
        └── images/         # Images and icons

Getting Started

Prerequisites

  • Python 3.8+
  • pip (Python package installer)

Installation

  1. Clone the repository (or download the source):

    git clone <repository-url>
    cd spotnotes.app
    
  2. Create a Virtual Environment (Optional but recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows use: venv\Scripts\activate
    
  3. Install Dependencies:

    pip install -r requirements.txt
    
  4. Run the Application:

    python app.py
    

    The app will start on http://127.0.0.1:5000/. The database (spotnotes.db) will be created automatically upon the first run.

Planned Features (Roadmap)

As detailed in the GEMINI.md file, the following features are actively planned or in development:

  1. Advanced Collaboration: Share notepads with specific users granting explicit Read or Read/Write permissions.
  2. Content Editing: Ability to edit existing notes and notepads.
  3. Rich Text & Multiline Notes: Support for multiline text and bulleted lists.
  4. CSV Export: Export all notes within a notepad to a .csv file.
  5. Location-Based Alerts: Browser notifications when physically approaching a saved note.

License

All rights reserved.