Inspiration

What it does

How I built it

Inspiration

Students sometimes waste their money on things which are freely provided by UMD. The University of Maryland already has an incredible safety net — Campus Pantry, University Counseling Center, Shuttle-UM, NITE Ride, emergency funds, free Wednesday dinners at the Catholic Student Center, dining hall swipe donations, and dozens more — but most students don't find these resources until it's too late, if at all.

The gap isn't the resources. The gap is the moment of knowing.

TerpWallet AI was built to close that gap. It's an autonomous financial safety agent that watches a student's bank account in real time, detects when they're heading toward distress, and proactively surfaces the specific free campus resource that matches their situation — before the overdraft, before the skipped meal, before the crisis.

This isn't a budgeting app. It's a safety net that finally knows where you go to school.

What it does

TerpWallet AI connects to a UMD student's bank account and monitors their financial health continuously. When it detects distress — a dangerously low balance relative to days until next deposit, or food spending patterns that signal trouble — it triggers a warm, non-judgmental alert that recommends 1–2 specific free UMD campus resources matched to the student's exact situation.

For example: "Heads up, Sarah — you've spent $125 on food this week and only have $9 left until Friday. Campus Pantry is open today 4–6pm at the South Campus Dining Hall. Free groceries, no questions asked."

The recommendations come from a custom TerpAI agent I built on UMD's Cloudforce/Microsoft Azure platform, running GPT-5.2 with a curated knowledge base of 36 real UMD campus resources spanning food, transportation, health, mental health, emergency funds, academic support, and wellness.

How I built it

Frontend: Next.js 14 (App Router) with TypeScript, Tailwind CSS, and Framer Motion for smooth transitions and the alert card's signature slide-in animation. Full light and dark mode support.

Authentication: Auth0 (@auth0/nextjs-auth0) handles the login flow. Sessions are server-side verified on every dashboard request.

Banking data: Capital One's Nessie API. The scripts/seed.ts script creates a real customer and checking account in Nessie's sandbox and seeds it with 15 realistic UMD student transactions. The full integration lives in lib/nessie.ts. For the live demo, the dashboard reads from a cached snapshot of the seeded account to guarantee reliable playback under venue network conditions — this is toggleable via the NESSIE_USE_MOCK environment variable.

Distress detection: A deterministic rule-based engine in lib/distress.ts. It evaluates spending velocity, balance runway, and category concentration (e.g., food spend in last 7 days) and emits a structured distress event with severity and category. Rules are tunable constants for easy iteration — no black-box ML, by design.

TerpAI agent: A custom agent called "TerpWallet Safety Agent" built directly on UMD's TerpAI platform. The agent runs GPT-5.2 with campus_resources.json uploaded as its knowledge source. Its system prompt enforces empathetic, concrete, grounded-only-in-the-knowledge-base responses. The dashboard links out to the live agent via the "Consult TerpAI Agent" button so judges can test it in real time.

Campus knowledge base: 36 hand-researched UMD resources in a single data/campus_resources.json file, each entry including name, category, cost, exact location, current hours, what to bring, estimated savings, and link. No vector database, no RAG framework — just clean, verifiable, editable JSON. This file is the soul of the product.

Challenges I ran into

Solo in under 24 hours. I built this alone with a strict scope-cutting discipline — every feature had to earn its place in the 90-second demo.

Nessie API reachability. Capital One's Nessie API became unreachable mid-build from both venue wifi and my phone hotspot. Rather than lose the demo, I engineered a clean fallback: the full live integration stayed intact in lib/nessie.ts, and a single environment variable (NESSIE_USE_MOCK) routes the dashboard to a cached snapshot of real seeded data for demo reliability. The architecture is identical; only the data source changes.

TerpAI has no public API key. UMD's TerpAI is a web-based agent platform, not a developer API. After consulting with the Cloudforce track team, I built a custom agent directly inside TerpAI with a knowledge source and a shareable URL, then linked the Next.js dashboard to it via a prominent "Consult TerpAI Agent" button. Judges can interact with the live agent during the demo.

Making "AI" feel warm, not clinical. Financial distress is a sensitive topic. The TerpAI agent's system prompt was iterated repeatedly to strip out moralizing, shaming, and budgeting-lecture language — every response leads with empathy, recommends concrete resources, and ends with encouragement. Under 120 words, every time.

What I learned

  • How to scope ruthlessly when you're solo against a 24-hour clock.
  • How to engineer for demo reliability — real API calls are risky on venue wifi; cached snapshots with a live integration path behind them is the right tradeoff.
  • How much a great system prompt + a small curated knowledge base beats a big RAG framework for this kind of focused agent.
  • That UMD's existing resources are astonishing, and the entire product thesis is just helping students find what's already there.

What's next for TerpWallet AI

  • Plaid integration for real production use — read-only bank access for any US student, at any university, with no card numbers or banking credentials ever touching our servers.
  • Campus generalization — the architecture is portable. Swap campus_resources.json for a different school's resources and TerpWallet works at any university.
  • Proactive push notifications via SMS or email so students get the alert even when they're not looking at the dashboard.
  • Anonymous aggregate insights for UMD administrators — "Campus Pantry referrals are up 40% this month" — helping the university allocate resources where need is growing. ## Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for TerpWallet AI

Built With

Share this project:

Updates