Inspiration
Every student knows the feeling of staring at a packed week with no idea where to start. We kept seeing friends pull all-nighters not because they were lazy, but because they genuinely didn't know how long things would take or which notes to study. We built Tempo to fix that.
What it does
Tempo is an AI-powered study planner that connects directly to Canvas. It reads your actual assignment PDFs, estimates how long each one will take using Gemini AI, and matches each problem to the specific lecture notes that cover it. It then schedules study blocks around your Google Calendar automatically. A built-in focus timer counts down from your AI estimate, with your matched materials right there in the same panel. Social streaks and friend leaderboards keep you accountable.
How we built it
We built the backend in Python with Flask, using Gemini 2.5 Flash to power the AI estimation and material matching. The Canvas LMS API handles course and assignment syncing, and Google Calendar API manages scheduling. The frontend is a single-page HTML/JS app served directly from Flask. We deployed on Render with Gunicorn.
Challenges we ran into
Getting the AI to match specific assignment problems to relevant lecture slides required significant prompt engineering. Canvas sync involving file downloads, PDF extraction, and AI estimation for every assignment in one request kept hitting Render's timeout limits, which we solved with Gunicorn's extended worker timeout. We also hit a tricky infinite recursion bug from a JavaScript function redefinition pattern that silently broke session history.
Accomplishments that we're proud of
The problem-level material matching works remarkably well--it reads an assignment and tells you exactly which slides cover each specific problem. The end-to-end flow from Canvas sync to a scheduled study week with matched materials genuinely feels like magic. We're also proud of shipping a polished, fully deployed product in a hackathon timeframe.
Log in or sign up for Devpost to join the conversation.