Monorepo for Deal Radar: backend API, web frontend, mobile app, and optional landing page.
backend/FastAPI service with Redis, ChromaDB, and PostgreSQL.frontend/Next.js App Router client, browse/deals/chat UI.mobile/Expo React Native app with same features on mobile.landing/marketing/static entry point placeholder and docs.backend/docs/architecture, policy, and demo docs.scripts/helper scripts to start full stack.
- Backend (required for all clients):
cp backend/.env.example backend/.env
cd backend/infra/docker
docker compose --env-file ../.env up --build- Frontend:
cd frontend
npm install
npm run dev -- --port ${FRONTEND_PORT:-3000}- Mobile:
cd mobile
npm install
npm run start -- --port ${MOBILE_PORT:-8081}- Optional all-in-one start:
bash scripts/run-all.sh # macOS / LinuxWindows:
scripts\run-all.batBackend base URL:
http://localhost:${API_HTTP_PORT:-18000}
Auth endpoints:
POST /api/v1/auth/registerPOST /api/v1/auth/loginGET /api/v1/auth/me
All protected frontend/mobile calls send Authorization: Bearer <access_token> from stored auth token.
Data endpoints:
GET /api/v1/healthGET /api/v1/dealsGET /api/v1/deals/{id}POST /api/v1/deals/analyzeGET /api/v1/cache/metrics
- API health:
http://localhost:18000/api/v1/health - Frontend runtime:
http://localhost:${FRONTEND_PORT:-3000} - Mobile Metro:
http://localhost:${MOBILE_PORT:-8081} - Landing page:
http://localhost:${LANDING_PORT:-3002} - Login/register on
/auth/login,/auth/registerin frontend and/authtab in mobile. - Analyze or browse listings and confirm backend returns
cache,deal, andtracefields.
- JWT is required for many frontend/mobile flows.
- Backend uses PostgreSQL auth schema and runtime migration on startup.
- Sample data paths are defined in
backend/packages/sample-data. - Complete planning source:
COMPLETE_PLAN.mdandbackend/docs/backend-plan.md.