Inspiration
As an international CS student at UMD, there's always something you're supposed to be doing and no single place that tells you what it is. ISSS check-ins, I-20 renewals, tax forms, health insurance waivers, registration windows, advising appointments, financial aid deadlines, all on different portals that don't talk to each other. Missing one doesn't just inconvenience you. It can cost $3,200 or put your visa status at risk. That's what Terp Butler is for.
What it does
Terp Butler is a personalized admin dashboard for UMD students. You fill out a quick profile with your major, year, and whether you're an international student, and the dashboard loads your relevant deadlines ranked by urgency. Each one shows the real consequence of missing it and a direct link to take action.
It pulls live events from TerpLink's API and uses Gemini to rank them based on your interests and academic profile. There's a task manager, a calendar that combines administrative deadlines and campus events, and a notification center that puts critical items first.
The chat is powered by Gemini with a UMD-specific knowledge layer built in, covering ISSS processes, financial aid timelines, health center booking, and registration details. It gives you specific answers with real URLs instead of generic responses.
How we built it
Next.js and Tailwind CSS on the frontend. Python and Flask on the backend. The backend handles deadline data, pulls live events from the TerpLink public API, and sends chat messages through Gemini with the student's profile as context. We also set up a TerpAI Personal Agent with UMD-specific knowledge sources as an additional conversational layer.
Challenges we ran into
Getting event recommendations to feel actually relevant rather than just matching keywords took more work than expected. We ended up sending the full student profile to Gemini alongside the event list and asking it to rank by fit, which worked much better than filtering by category alone. We also hit Gemini API quota limits repeatedly during the build which cost us a lot of time.
What we're proud of
Every deadline in the app shows the real cost of missing it, in actual dollar amounts or visa consequences. That's what makes it feel different from a generic reminder app. The live TerpLink integration also means events are always current.
What we learned
A general AI that knows nothing specific about UMD is not that useful. The moment you give it real context, actual office names, actual URLs, actual deadlines, it becomes something people would actually open every day.
Log in or sign up for Devpost to join the conversation.