Logo Lanfrica

J0na555/suq-check

Domaine:

socioeconomic

Type de record:

softwareproject
Créateur:
J0n
Hôte:
Cursor Ai hachathon Ethiopia project # SuqCheck Evidence-backed retail price intelligence for Addis Ababa staples. Shoppers look up prices and submit evidence (receipt, shelf tag, posted price list, or by hand). Brands and analysts read the same feed on a live dashboard. Every price comes from weighted evidence — nothing sets a price directly — and each estimate carries a confidence score with a human-readable breakdown. API: suq-check-api.onrender.com · Dashboard: suq-check.vercel.app · Docs: `docs/00-onepager.md` ## Repo layout | Path | Role | | --- | --- | | `backend/` | FastAPI + Neon Postgres, price engine, verification gate, Gemini OCR | | `mobile/` | Expo consumer app (SDK 54) | | `dashboard/` | Next.js brand / analyst dashboard | | `contracts/` | Shared OpenAPI + response fixtures | | `data/` | Seed CSVs (products, stores) | | `docs/` | Strategy, unit economics, pitch | `contracts/openapi.yaml` is the boundary between backend and frontends. Regenerate it from FastAPI after schema changes; do not edit it by hand. ## Quick start ### API ```bash cd backend python -m venv .venv source .venv/bin/activate pip install -e '.[dev]' cp .env.example .env # fill Neon + Gemini keys as needed uvicorn app.main:app --reload ``` - Interactive docs: 127.0.0.1 - Health: `GET /healthz` - `USE_FIXTURES=true` serves `contracts/fixtures/` without a database - `USE_FIXTURES=false` serves the engine and Neon (run `alembic upgrade head` first) Details: `backend/README.md` ### Mobile ```bash cd mobile npm install npm start ``` Defaults to the deployed API. For a local backend, copy `.env.example` → `.env` and set `EXPO_PUBLIC_API_URL` to your machine's LAN IP (phones cannot reach `127.0.0.1`). Details: `mobile/README.md` ### Dashboard ```bash cd dashboard npm install cp .env.example .env.local npm run generate:api npm run dev ``` Open localhost. Set `NEXT_PUBLIC_API_URL` to the API base URL (no trailing slash). Details: `dashboard/README.md` ## Try it / demo You do not …