A clean, iOS-inspired note-taking web application built with Django.
This project is the first phase of a larger voice-enabled note-taking application. Phase 1 focuses on creating a reliable text-based note-taking experience before introducing speech-to-text and AI-powered features.
- Create notes
- Edit notes
- Delete notes
- View individual notes
- Search notes
- Pin and unpin notes
- Pinned notes section
- Responsive design
- Mobile-friendly interface
- Local-first browser persistence with one-time SQLite migration
- iOS-inspired user interface
- Live voice-to-text
- Upload audio and transcribe it
- Local speech-to-text processing
- Voice-created notes
- Quick voice notes
- Voice-to-task conversion
- Task extraction from natural speech
- AI-assisted organization of notes
- Python
- Django
- Django Templates
- HTML
- CSS
- Vanilla JavaScript
- Browser localStorage for normal note operations
- SQLite retained as a migration source for existing notes
Future versions may use a locally installed speech-to-text model such as Whisper or a faster Whisper implementation.
project/
│
├── Note/
│ ├── migrations/
│ ├── templates/
│ │ └── Note/
│ ├── static/
│ ├── forms.py
│ ├── models.py
│ ├── urls.py
│ └── views.py
│
├── project/
│ ├── settings.py
│ ├── urls.py
│ ├── asgi.py
│ └── wsgi.py
│
├── manage.py
├── requirements.txt
├── .gitignore
└── README.md
git clone YOUR_REPOSITORY_URL
cd YOUR_PROJECT_DIRECTORYWindows:
python -m venv venv
venv\Scripts\activatemacOS/Linux:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtpython manage.py migratepython manage.py runserverOpen the local development address shown by Django in your browser.
During local development, the project can use SQLite.
For production, PostgreSQL is recommended.
Django's ORM allows the application models and database operations to remain largely the same while changing the database backend.
The application can be deployed using a platform that supports Django and PostgreSQL.
A typical production architecture is:
Browser
↓
Django application
↓
PostgreSQL
The production environment should provide:
SECRET_KEYDEBUG=FalseALLOWED_HOSTS- PostgreSQL database credentials/connection URL
Before deployment, collect static files:
python manage.py collectstatic --no-inputApply database migrations:
python manage.py migrateThe production application should be served using Gunicorn rather than Django's development server.
Example:
gunicorn project.wsgi:applicationReplace project with the actual Django project package name.
- Text-based note creation
- Note editing
- Note deletion
- Note search
- Pin/unpin
- Responsive UI
- Local-first browser storage
- SQLite-to-localStorage migration
- JSON import and export backups
- Live voice-to-text
- Audio upload transcription
- Voice-created notes
- AI quick notes
- Voice tasking
- Natural-language task extraction
This project is currently a personal development project.