A compact Flask app that creates spaced-repetition revision schedules from topics and an exam date. Built as a lightweight tool for students to plan study sessions using simple forgetting-curve intervals.
- Generate per-topic revision sessions using difficulty-based intervals (easy/medium/hard).
- Dashboard: today's tasks, overdue alerts, upcoming timeline, and per-subject progress.
- Mark sessions done (persisted to JSON) with immediate UI feedback.
- Export the full schedule as CSV for external use.
- Python 3.10+ and Flask (see
requirements.txt) - Server-rendered HTML (Jinja2), CSS and a small JavaScript helper
- Storage: JSON file at
data/study_data.json
- Create a virtual env and install deps:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Run the dev server (default port: 5001):
python app.py
# open http://127.0.0.1:5001- Open the app in your browser.
- Fill the form:
Subject name,Exam date, and one topic per line in the formatTopic name | difficulty(difficulty:easy,medium, orhard). - Click Generate schedule to persist the subject and build review sessions.
- Use Mark done to record completion; export with Export CSV.
Unit tests check the scheduler logic and exam-boundary edge cases.
Run all tests:
python -m unittest discover -vFiles with tests:
tests/test_scheduler.pytests/test_scheduler_edges.py
app.py- Flask app, scheduling functions, and routes (index, add subject, toggle/reset session, export CSV)templates/index.html- dashboard and formstatic/styles.css,static/app.js- UI and small client helpersdata/study_data.json- persisted data (empty by default)tests/- unit tests
This repo uses the Flask development server for simplicity. For production:
- Use a WSGI server such as
gunicornoruWSGI. - Persist data using a real datastore (SQLite/Postgres) or ensure
data/is stored on a volume. - Ensure the app uses production data storage before publishing.
Example production run (quick):
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 app:appMIT License - see LICENSE for details.
Repository: https://github.com/Cletrix-Labs/study-revision-planner
Live Demo: https://reviseo.onrender.com
Built for quick ⭐ , organized revision planning.