🐶 Inspiration

I built Pupdate because I know what it's like to cram last minute and how overwhelming that can be. I crammed for my Operating Systems quiz in one day, and I learned that how I studied wasn't the problem. The problem was when. Pupdate takes the weight off your shoulders by splitting big deadlines into small daily tasks. To keep you motivated, the pup grows every day you show up, whether it's by completing a study task or an everyday habit.

🐾 What it does

Pupdate has two parts: A home page where you see your everyday habits (e.g. drinking water) and a planning page where you type in a deadline and Gemini turns it into small daily study steps. You are able to add everyday habits and check them off each day (they reset once the day is over), and they move from the "To-do" tab to the "Completed" tab (an undo button is present in case needed). Every day you show up, your pup grows and gets a new accessory at specific milestones (bandana at 3 days, graduation cap at 7 days). Miss a day? No need to feel guilty: your pup just takes a nap until you come back, and no progress is lost!

🛠️ How I built it

  • Frontend: HTML, CSS, JavaScript
  • Backend: Python, Django, SQLite
  • AI: Google Gemini API
  • Art and icons: hand-drawn in Sketchbook/Notability by me

AI Usage

In the app (Gemini):

  • The Gemini API turns a deadline into daily study steps
  • Pupdate asks Gemini for JSON, then validates each step (bad dates or steps past deadline are thrown out)
  • Retries with backoff handle moments when Gemini is overloaded
  • NO CHATBOT: The user fills out a form and the output becomes checklist items

While building (Claude):

  • Helped write and explain the Django views, templates, and CSS. Concepts were explained as I went.
  • What I did: The idea and design, the database models, all the art, the product decisions, and testing and debugging

🚧 Challenges I ran into

One of the biggest challenges I ran into while building this project was accessing Gemini's API key. On FIU's Wifi, Google kept flagging my request as 'suspicious' across different accounts, and once I switched to my phone's hotspot, it finally worked. Gemini had also given me a lot of overloaded errors. To fix this, I added automatic retries that wait a little longer each time. Another challenge I had was a scroll-position bug, where every time I clicked an interactive button, the app would scroll all the way back up again. I had to add console logs to figure out why it was behaving the way it did. By doing so, I saw that the script ran before the page even loaded, and I moved it to the bottom of the page.

🏆 Accomplishments that I'm proud of

I am extremely proud to say that this is my first full-stack project, built solo, at my very first hackathon! I was able to draw out my own wireframe and design my UI based on it, and it exceeded my expectations. I'm also extremely proud of the art I was able to incorporate into the project.

📚 What I learned

I was able to strengthen my Python skills, learned how Django works, and relearned how to style with CSS. I was also able to learn how to use an AI API in a real project and how to debug using traceback and console logs.

🚀 What's next for Pupdate

  • Daily reminders with today's study step
  • Canvas sync, so study plans are created from real due dates
  • Upload lecture PDFs so Gemini can plan from your actual course material
Share this project:

Updates

Submission history