Case study · Student Planner

Awesome ToDo's

A web-based planner for students that keeps tasks, deadlines, class schedules and grades in one place, with a focus timer and Study Buddy, an AI assistant that knows your tasks and classes.

Role
Web Developer
Year
2026
Type
Web app (PWA)
Status
Live

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

  1. 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.

  2. 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

Screens

A closer look at Awesome ToDo's.