A lightweight Flask-based study planner for tracking assignments, deadlines, and workload with a clean server-rendered interface.
The goal of this project is to practice full-stack fundamentals (Flask, SQLAlchemy, Jinja), stateful routing, and UI clarity.
Example view showing overdue, upcoming, and completed tasks with persistent sorting.
- Task creation, update, deletion, and completion tracking
- Per-task metadata:
- Title
- Course
- Due date
- Days left (signed integer, where negative values indicate overdue tasks)
- Estimated hours
- Priority (High/Medium/Low)
- Done status
- Visual status highlighting:
- Overdue (light red)
- Upcoming within 7 days (light yellow)
- Completed (light gray)
- View-based filtering:
- All tasks
- Upcoming (next 7 days)
- Overdue
- Persistent sorting across views:
- Due date
- Course
- Priority
- Estimated hours
- Weekly total estimated hours calculation (excluding completed tasks)
- Python 3
- Flask
- SQLAlchemy
- SQLite
- Jinja2
- HTML/CSS
- Python 3.9+
- flask
- flask-sqlalchemy
Tested on macOS.
pip install flask flask-sqlalchemy
python app.py
Then open: http://127.0.0.1:5000
The SQLite database (test.db) is created automatically on first run.
