Student-first budgeting dashboard built at DivHacks 2025. It pulls spending data from Capital One Nessie, visualizes category breakdowns, and uses an AI assistant for summaries, tips, and chat.
- Auth0 sign-in with onboarding survey to capture goals and focus categories.
- Nessie API integration to pull accounts/purchases and classify categories.
- Visual dashboards: donut chart, horizontal bar chart, transaction list.
- AI-generated spending summary and budgeting tips tailored to the survey data.
- Chatbot for contextual budgeting Q&A.
- Profile import/export plus server-side profile persistence.
- Frontend: React (Create React App) + Tailwind CSS + Recharts.
- Backend: Express server with
/api/chat(OpenAI) and/api/profileendpoints. - Data flow: Auth0 user -> Nessie customer -> purchases -> category totals.
budgeteer/React appbudgeteer/server/Express API and profile storage
- Node.js 18+ and npm
- Auth0 app (domain + client id)
- Capital One Nessie API key
- OpenAI API key (server)
Create budgeteer/.env:
REACT_APP_AUTH0_DOMAIN=your-auth0-domain
REACT_APP_AUTH0_CLIENT_ID=your-auth0-client-id
REACT_APP_NESSIE_API_KEY=your-nessie-api-key
Create budgeteer/server/.env:
OPENAI_API_KEY=your-openai-api-key
PORT=3001
- Start the API server:
cd budgeteer/server
npm install
npm run dev
- Start the client:
cd budgeteer
npm install
npm start
Open http://localhost:3000.
- The React app proxies
/api/*tohttp://localhost:3001. - Nessie lookup matches on the Auth0 user name (first/last). If no customer exists, the app will show a "No customer found" error.
- Profiles are stored in
budgeteer/server/profiles.jsonon the server.
- Team: Zurabi Kochiashvili, Layth Rahman, Rickey Chiu, Ashley Hong
- Devpost: https://devpost.com/software/budgeteer-d0b7rq