A beautiful and personalized 📈 Study Progress Dashboard built using Streamlit with secure authentication. Designed for students preparing for any exam — to track daily goals, visualize subject-wise progress, and maintain consistency using real data, session-wise scheduling, and performance metrics.
- 🔐 Login & Registration using SQLite (
users.db) withstreamlit_authenticator - 📅 Auto-Traced Study Sessions with date-driven scheduling
- ✅ Checkbox Grid to mark each session as done
- 📊 Subject-Wise Progress with donut & bar charts
- ⏳ Backlog Tracker for missed subjects
- 🔁 Auto-Rerun Logic before session starts
- 🧠 Per-user JSON Save State for progress
- 🧾 Daily Completion Table with tick marks
- 📌 Reset Button to start over anytime
📁 study-tracker/
├── study\_tracker\_final.py # Streamlit main app
├── auth\_db.py # SQLite-based authentication
├── users.db # Registered users stored here
├── \*.json # User progress files (per user)
├── credentials.yaml # (Optional) legacy credentials
├── Study\_Plan\_Schedule.csv # Timetable (days × session slots)
├── Subject\_Study\_Time\_Table.csv # Subjects with video hours
├── requirements.txt # Python dependencies
└── README.md # You're reading it 🙂
git clone https://github.com/MohitGupta0123/Study_Tracker.git
cd Study_Trackerpip install -r requirements.txtstreamlit run study_tracker_final.py --server.port 8501- Frontend: Streamlit
- Auth:
streamlit_authenticator+ SQLite (users.db) - Charts: Matplotlib
- Data Processing: Pandas, JSON
- Storage: CSV files for study data, JSON for user progress
| File | Description |
|---|---|
Study_Plan_Schedule.csv |
Weekly plan (Day-wise × Sessions) |
Subject_Study_Time_Table.csv |
Subjects with total video hours |
<username>_progress.json |
Per-user saved checkbox state |
- Auto-detects what you need to study today based on the real calendar
- Reruns app 5 mins before session start to alert you
- Tick off what you’ve studied; persists even after reload
- See your completion % for each subject
- Automatically shows what you've missed in previous days
- Frequency of time slots used across your plan
- ✅ Checkbox table for sessions per day
- 📊 Bar chart for session frequency
- 🟡 Today's plan
- 🔴 Backlogs
- 📅 Dynamic live clock
- 📈 Donut & pie charts showing progress distribution
- Uses SQLite-based DB (
users.db) for login/signup - Passwords are hashed using
streamlit_authenticator - Each user has their own progress file (
<username>_progress.json)
- Thanks to
streamlit_authenticatorfor easy auth integration - Inspired by real preparation needs of students
- Created with 💙 using Python and Streamlit
If this helped you stay productive and consistent, please ⭐️ this repo and share it with your peers!