A gamified budgeting app that helps you save for your dream trips by tracking spending habits and providing AI-powered insights.
- AI Trip Planning - Generate personalized itineraries with cost estimates
- Smart Budgeting - Track spending and see how it impacts your travel goals
- Gamification - Earn XP, complete quests, and unlock rewards
- Social Leaderboards - Compete with friends on savings goals
- Flight Price Tracking - Monitor prices with AI predictions via Amadeus API
- Bank Integration - Connect accounts via Plaid for automatic transaction sync
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript + Vite |
| Styling | TailwindCSS + Framer Motion |
| Backend | FastAPI (Python) |
| Database | Supabase (PostgreSQL) |
| Auth | Supabase Auth |
| Banking | Plaid API |
| Flights | Amadeus API |
| AI | Google Gemini |
| Images | Unsplash API |
- Node.js 18+
- Python 3.10+
- Supabase project
- API keys for: Plaid, Amadeus, Gemini, Unsplash
cd frontend
npm install
npm run devRuns on http://localhost:5173
cd backend
pip install -r requirements.txt
python main.pyRuns on http://localhost:8000
Create .env in project root:
# Supabase
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
# Plaid
PLAID_CLIENT_ID=your_plaid_client_id
PLAID_SECRET=your_plaid_secret
PLAID_ENV=sandbox
# Amadeus (Flights)
AMADEUS_CLIENT_ID=your_amadeus_id
AMADEUS_CLIENT_SECRET=your_amadeus_secret
# Google Gemini (AI)
GEMINI_API_KEY=your_gemini_key
# Unsplash (Images)
UNSPLASH_ACCESS_KEY=your_unsplash_key
# Capital One Nessie (Mock Banking)
NESSIE_API_KEY=your_nessie_keyFrontend .env (frontend/.env):
VITE_API_BASE=http://localhost:8000tamuhack26/
├── frontend/ # React + Vite app
│ ├── src/
│ │ ├── pages/ # Page components
│ │ ├── components/ # Reusable UI components
│ │ ├── context/ # React context providers
│ │ └── lib/ # Utilities
│ └── public/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI app entry
│ │ ├── routers/ # API route handlers
│ │ ├── services/ # Business logic & external APIs
│ │ └── dependencies.py
│ └── requirements.txt
└── supabase/ # Database migrations
| Endpoint | Description |
|---|---|
POST /auth/login |
User authentication |
GET /user/profile |
Get user profile & stats |
POST /trip/create |
Create a new trip goal |
GET /trip/itinerary |
Generate AI itinerary |
GET /insights/analyze |
AI spending analysis |
GET /gamification/quests |
Get active quests |
GET /social/leaderboard |
Friend leaderboard |
GET /shop/rewards |
Available rewards |
- Import repo in Vercel
- Set root directory to
frontendor use rootvercel.json - Add env var
VITE_API_BASEpointing to your backend URL - Deploy
- Deploy
backend/folder - Set all environment variables
- Ensure CORS allows your Vercel frontend origin
Built at TAMUhack 2026 🤘
MIT