What it does
Northstar helps students answer “Can I actually afford this?” before they spend — not after the statement lands.
The issues we hope to tackle:
💸 A balance isn’t a budget. Checking can still miss bills and the next work-study, Pell, scholarship, or loan refund.
📄 Aid letters don’t read like a bank. Scan the letter: what’s in checking vs what posts later vs what’s debt.
🛒 No check until payday. Anchor answers go / stretch / skip against real bills and dates.
🎓 Loans stay abstract. It explains your subsidized vs unsubsidized, and what extra monthly payments change.
How we built it
Expo app → FastAPI → everything else. The phone never talks to Gemini, Nessie, or OCR.
Expo (tabs + JWT) │ FastAPI / | \ Nessie Supabase Gemini + OCR
Expo / React Native Dashboard, Scan, Finances, Advisor, Profile. Supabase Auth JWT on every call.
FastAPI Rebuilds student state each request (ledger + loans + profile flags + analytics). Math first, then language.
Nessie Demo checking (deposits, spend, bills). Seeded data if the API flakes.
Supabase Auth, Postgres, award-letter storage, agent chat history.
Gemini One model, three prompts: Anchor (go / stretch / skip), Horizon (loans / payoff), Compass (teach + parse letters).
OCR Cloud Vision → PDF text → Tesseract, then Compass maps the letter onto this checking account.
Challenges we ran into
Mobile-first in a weekend. Expo, Metro, simulators vs phones. One env miss blocked the app. 🏦 Nessie went down. FastAPI owns the snapshot, so we can run on live Nessie or a seeded ledger. 📄 Messy award letters. Cloud Vision, then PDF text, then Tesseract. Not one OCR bet. 🧠 LLM can’t own the math. FastAPI calculates; Gemini explains. Fallbacks when Gemini rate-limits. 📐 Small screen. Cut until go / stretch / skip and “what hits checking” fit on a phon
Accomplishments that we're proud of
Expo talks only to FastAPI. Gemini, Nessie, and OCR stay off the device. Student state is rebuilt each request. Anchor’s go / stretch / skip uses that snapshot. One Gemini model, three prompts, plus a rate-limit fallback. Scan: Cloud Vision, then PDF text, then Tesseract, mapped onto this student’s checking account. Same engine on live Nessie or the seeded demo ledger.
What we learned
Aid literacy lands when it is tied to a real choice, like skip this spend or pick a smaller loan, not a glossary. Gemini is useful for explaining numbers and letters. It is a bad place to decide if someone can afford something. A phone app is mostly environment: Expo, Metro, and which folder you start from. Get that stable or you never iterate. Third-party APIs fail during a hackathon. Put Nessie and OCR behind FastAP
What's next for northstar'
Plug in a real bank feed so today spendable and Anchor use live income, bills, and spend, not only Nessie or a seed. Push alerts on that feed: bill due before the next inflow, a refund posting, or Anchor flipping to skip after a spend. Per-school aid: grants, scholarships, work-study, and campus offices that match this student’s profile and letter, not a generic list.
Log in or sign up for Devpost to join the conversation.