Inspiration
As students, we constantly struggled with one question: "What should I study today?" With multiple subjects, overlapping deadlines, and limited free time, planning felt overwhelming. Most of us either crammed the night before exams or wasted hours studying the wrong topics at the wrong time. We wanted to build something simple that solves this everyday problem — a smart study planner that thinks for you.
What it does
StudyBuddy AI is a Python-powered personalized study planner. You enter:
- Your subjects and their exam dates
- Your daily available study hours
- A self-rating of how confident you feel in each subject
The app then automatically generates a day-by-day study timetable that prioritizes weaker subjects and balances your workload across available days. It ensures you never waste time guessing — just open the planner and follow the schedule.
How we built it
We built StudyBuddy AI entirely in Python. Here's a breakdown of what we used:
datetimemodule — to calculate the number of days remaining until each exam and distribute study sessions accordinglysorted()with custom keys — to rank subjects by urgency (days left) and confidence levelTkinter— to build a clean, beginner-friendly desktop GUI where users can input their data and view their timetablePandas— to organize and display the generated schedule as a structured table- Custom scheduling algorithm — a weighted priority system that assigns more study time to subjects with closer deadlines and lower confidence scores
The logic flow:
- User inputs subjects, exam dates, confidence level (1–5), and daily hours
- App calculates priority score for each subject
- Schedule is generated day-by-day until all exams are covered
- Output is displayed in a clean table format
Challenges we ran into
- Fair time distribution: Splitting study hours equally across subjects was easy, but making it weighted by priority was tricky. We had to design a scoring formula that felt intuitive and actually worked.
- Edge cases: What if two exams are on the same day? What if available hours are very limited? Handling these without breaking the schedule required careful logic and testing.
- GUI layout: Designing a Tkinter UI that looked clean and was easy to use for beginners took multiple iterations.
Accomplishments that we're proud of
- Built a fully working MVP that generates real, usable study schedules
- The priority algorithm actually produces sensible, logical timetables
- Kept the UI simple enough for any student to use without instructions
- Completed the entire project using only Python standard libraries + Pandas and Tkinter
What we learned
- How to use Python's
datetimemodule for real-world scheduling problems - How to design a weighted priority algorithm from scratch
- How to build a desktop GUI with Tkinter
- The importance of testing edge cases in logic-heavy programs
- How to break a complex problem (study planning) into small, solvable Python functions
What's next for StudyBuddy AI: Personalized Smart Study Planner
- Add a Pomodoro timer built into the app so students can study with focused sessions
- Integrate with Google Calendar API to auto-export the timetable
- Add progress tracking — mark topics as done and dynamically reschedule remaining sessions
- Build a web version using Flask so it's accessible from any browser without installation
Log in or sign up for Devpost to join the conversation.