Kenya-focused Polymarket-style prediction platform:
# SokoOdds
Kenya-focused Polymarket-style prediction platform:
## Documentation
- Kenya Polymarket Implementation Guide
- Implementation Concept Paper
- Global Benchmark Ideas for Kenya & East Africa
- Sprint Backlog
- Core API Contracts
- Homepage and Market Page UI Spec
- Frozen Decisions Implementation Tickets
- Decision Records
- Runbooks
- Incident Template
- Monitoring Reference
## Local Stack
The checked-in local stack is defined in infra/compose/compose.yaml and includes:
- `postgres`
- `redis`
- `migrate`
- `api`
- `worker`
- `market-engine`
- `web`
## Local Commands
- Copy .env.example to `.env`
- Start the full stack: `make up`
- Run migrations only: `make migrate`
- Check service health: `make health`
- Run the local smoke test: `make smoke`
- Run the browser onboarding checks: `pnpm test:e2e:web`
- Tail logs: `make logs`
- Stop the stack: `make down`
## Review The Current UI
- Open the live site at
localhost
- The current high-value review path is:
- open a market detail page
- dismiss the first-visit WhatsApp prompt
- create the lightweight account
- verify the M-Pesa number with the `KES 5` credit flow
- place the sample order and confirm available versus reserved balance updates
The current Playwright coverage in `pnpm test:e2e:web` verifies:
- first-visit WhatsApp prompt behavior
- backend-backed account creation
- M-Pesa verification success and wallet persistence after reload
- first live order submission from the order ticket
The local scripts default to `localhost` for API and engine probes. If another project is already bound to the same ports on `127.0.0.1`, keep `API_HOST=localhost` and `ENGINE_HOST=localhost` in `.env`, or move the ports in `.env` to avoid collisions.
The web app uses `SOKOODDS_API_SERVER_URL` for server-side fetches and `NEXT_PUBLIC_API_BASE_URL` for browser-side requests. In Docker Compose the internal server URL points at `
api`.
For account-aware browser actions, the Next.js ap …