A task, habit and note manager built for easily distracted brains.
DopaNotes is a personal productivity tool designed with ADHD in mind. It combines task management, habit tracking, and note-taking into a single, focused interface — because switching between five different apps is exactly the kind of friction that kills your focus.
Built with a lightweight FastAPI backend and a plain JavaScript frontend, it runs fully containerized via Docker so setup is painless and you can focus on what matters: actually getting things done.
- 📝 Notes — Quick capture for thoughts before they vanish
- ✅ Tasks — Simple to-do management without the bloat
- 🔁 Habits — Track recurring behaviors and build streaks
- ⚡ Fast API — RESTful backend with automatic docs at
/docs - 🐳 Docker-first — One command to spin everything up
- 🔒 Environment-based config — No secrets hardcoded, ever
| Layer | Technology |
|---|---|
| Backend | FastAPI + Uvicorn |
| Database | PostgreSQL 15 |
| ORM | SQLAlchemy |
| Frontend | Vanilla JavaScript |
| Container | Docker + Docker Compose |
- Docker and Docker Compose installed
- Git
That's it. You don't even need Python installed locally.
git clone https://github.com/gilas-byte/DopaNotes.git
cd DopaNotescp .env.example .envOpen .env and fill in your values:
POSTGRES_USER=your_user
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DB=dopanotes
⚠️ Never commit your.envfile. It's already in.gitignore.
docker-compose up --buildThis will start:
- PostgreSQL 15 on port
5433 - FastAPI backend on port
8000
| Service | URL |
|---|---|
| Frontend | http://localhost:8000 |
| API Docs (Swagger) | http://localhost:8000/docs |
| ReDoc | http://localhost:8000/redoc |
DopaNotes/
├── backend/ # FastAPI application
│ ├── main.py # App entrypoint and route registration
│ ├── models/ # SQLAlchemy database models
│ ├── schemas/ # Pydantic request/response schemas
│ ├── routers/ # API route handlers
│ └── database.py # DB connection and session management
├── frontend/ # JavaScript frontend
│ ├── index.html
│ ├── app.js
│ └── style.css
├── .env.example # Environment variable template
├── docker-compose.yml # Multi-container Docker setup
├── Dockerfile # Backend container definition
└── requirements.txt # Python dependencies
To run only the database (useful when developing locally without Docker for the backend):
docker-compose up dbTo check logs:
docker-compose logs -f backendTo stop everything:
docker-compose downTo reset the database volume (
docker-compose down -vThis project is open source under the MIT License.
Built with ☕ and a lot of tab-switching by @gilas-byte