Logo Lanfrica

phindagijimana/soko

Domain:

agriculturesocioeconomic

Record type:

software
Creator:
phi
Host:
Soko is an online marketplace for Rwanda and East Africa matching food harvests with market demands # Agri Marketplace > **Live app (GitHub Pages):** phindagijimana.github.io > **Not the live app:** the repository page **`github.com`** is the *source code* and will always show this README when you are on that URL — that is not the hosted website. Pilot-ready agricultural marketplace for Rwanda and East Africa. Guests can browse listings, while farmers and buyers must create phone-based profiles before posting harvest, placing orders, leaving reviews, or requesting verification. ## What is implemented - Public browsing for listings and reviews - Phone-based profile creation and OTP sign-in - OTP expiry, cooldown, lockout, and token expiry - Farmer-only listing creation - Buyer-only order placement - Farmer order status updates - Review flow tied to completed orders - Verification request workflow - Admin review endpoints and metrics summary - Support ticket workflow for disputes, abuse, bugs, and general issues - Local or S3-compatible image storage (`STORAGE_BACKEND`) - Audit logging, health checks, readiness checks, and in-memory rate limiting - Navy blue and white frontend theme ## Still environment-specific (configure for production) - **SMS:** Set `SMS_PROVIDER=twilio` with real `TWILIO_*` values (Account SID must start with `AC`). Until then, `file` / `console` or Twilio-with-placeholder creds log to `SMS_LOG_PATH`. Live delivery uses Twilio’s REST API (`httpx`). - **Database:** `DATABASE_URL` (SQLite or PostgreSQL). With Docker, `CREATE_TABLES_ON_STARTUP=false` and run `alembic upgrade head` (see `backend/Dockerfile`). - **Backups:** `python scripts/backup_database.py` (SQLite copy or `pg_dump`). - **Object storage:** `STORAGE_BACKEND=local` (default) or `s3` with `S3_BUCKET_NAME`, `MEDIA_PUBLIC_BASE_URL`, and optional `AWS_ENDPOINT_URL` (MinIO). See `.env.example`. - **Monitoring:** optional `SENTRY_DSN` (initializes `sentry-sdk` on startup). `/health` reports `sentry: true/false`. - **HTTPS / TLS:** terminate a …

Languages