CardSmart is a hackathon-ready credit card advisor that recommends the best card for each purchase, tracks weekly budget usage, and surfaces personalized promos.
- Frontend: React + Tailwind (
frontend/) - Backend: FastAPI + SQLAlchemy + SQLite (
backend/) - Orchestration: n8n workflows (
n8n/workflows/) - LLM: Minimax API via
MINIMAX_API_KEY(with fallback reason generation)
backend/main.py- FastAPI entrypointbackend/models.py- SQLAlchemy modelsbackend/routers/- API routesbackend/services/- scoring, LLM, promo matchingbackend/seed_data.py- demo user + cards + rewards + promosfrontend/src/pages/-Advisor,Budget,Dashboardfrontend/src/components/- shared UI componentsfrontend/src/api/index.ts- fetch wrappers for backendn8n/workflows/- recommendation, budget alert, promo scanner workflows
python3 -m venv .venv
source .venv/bin/activate
pip install -r backend/requirements.txt
cp backend/.env.example backend/.env
# edit backend/.env and paste your real MINIMAX_API_KEY
python -m backend.seed_data
uvicorn backend.main:app --reloadBackend runs at http://127.0.0.1:8000.
cd frontend
npm install
npm run devFrontend runs at http://127.0.0.1:5173.
Set optional API URL override:
# frontend/.env
VITE_API_BASE=http://127.0.0.1:8000POST /recommendPOST /transactionsGET /budget/status?user_id=1GET /promotions/personalized?user_id=1GET /cards?user_id=1
Import the JSON files from n8n/workflows/ into n8n:
card_recommendation.jsonbudget_alert.jsonpromo_scanner.json
To run backend + frontend + n8n together:
docker compose up