Franchise store compliance via AI photo analysis. Locations submit photos of their store; the backend compares them against brand reference standards using AI vision and produces compliance reports, delivered by email or as a PDF export.
- Backend: Python, FastAPI, SQLAlchemy, Alembic migrations
- Database: PostgreSQL (SQLite by default for local development)
- AI: Google Gemini vision
- Auth: JWT (python-jose), bcrypt, Google OAuth
- Billing: Stripe — checkout, webhooks, customer portal
- Also: Resend (email), ReportLab (PDF), S3 via boto3, rate limiting, Sentry
- Frontend: Next.js, React
- Deploy: Railway (backend), Vercel (frontend)
Backend:
cd backend
pip install -r requirements.txt
alembic upgrade head
uvicorn main:app --reloadUses a local SQLite file unless DATABASE_URL is set to a PostgreSQL connection
string. See .env variables referenced in backend/config.py.
Frontend:
cd frontend
npm install
npm run devcd backend && pytest
cd frontend && npm testHealth endpoint is GET /health; it reports database connectivity. See
OPERATIONS.md for uptime monitoring setup.