Overview
Awesome ToDo's started as a simple to-do list and grew into a planner for students. You add tasks with a subject, type, priority, due date and steps, see what's due today and this week, keep your class schedule and grades, and stay focused with a built-in timer. Study Buddy, the AI assistant, can answer questions about your schedule and split a big task into steps.
The problem
Students keep track of assignments, exams and classes across sticky notes, group chats and memory, and things get missed. A plain to-do list doesn't know about your classes or how close your grades are to your goal.
Goals
- Put tasks, deadlines, classes and grades in one place
- Show what matters today at a glance
- Help students start big tasks and stay focused
- Work well on both phones and computers
Approach
The React app talks to an Express REST API split into tasks, accounts, and classes and grades. In production, Express serves the built React files and falls back to index.html for any non-API route, so one Render service hosts everything. Class names double as task subjects, which connects the timetable, tasks and dashboard. Study Buddy gets the student's tasks and classes as context, and the AI code tries a newer Gemini model first and falls back when one is busy.
Key features
Detailed tasks
Each task can have a subject, type (task, assignment, exam, project or reading), priority, due date, steps and notes.
Smart views
All, Today, Next 7 days, Overdue and Done, with search, subject and type filters, and sorting.
Dashboard
A progress ring, stat tiles, a week strip, today's classes and a 7-day activity chart.
Calendar
Every deadline on a month calendar. Tap a day to see or add tasks for it.
Classes and grades
A weekly timetable with rooms and a grade tracker that shows what you need to reach a target grade.
Focus timer
Pomodoro sessions with one-tap lengths, a custom time and an optional task to work on.
Study Buddy AI
A chat that knows your tasks and classes, plus "Break down with AI" to split a big task into steps.
Accounts
Welcome tour, profile photo, school and year level, email and password changes, and password reset.
Light and dark mode
Light, dark or match your device, with separate phone and desktop layouts and PWA install.
Challenges & solutions
Database connection failing on some networks
Problem
MongoDB Atlas connection strings need an SRV DNS lookup, which some local DNS providers block.
Solution
I pointed Node's DNS resolver at public resolvers (8.8.8.8 and 1.1.1.1) before connecting, which made local development reliable.
Keeping the AI assistant available
Problem
A single AI model can be busy or rate-limited, which would leave Study Buddy unusable.
Solution
The server tries a list of Gemini models in order and moves to the next one when Google reports it busy or unavailable. Without an API key, the rest of the app still works and Study Buddy explains that it isn't switched on yet.
Outcomes
- Live on Render with automatic deploys from the main branch.
- Grew from a four-route CRUD app into a full planner with accounts, classes, grades and AI features.
- One repository and one deployment for both the front end and the API.
What I learned
- How to grow a small CRUD app into a larger product without rewriting it
- Handling sign-in with JWTs and cookies
- Giving an AI assistant the right context and a fallback plan
- Free hosting tiers sleep when idle, which affects first-load time