Offline-first mobile calorie tracker for African cuisine. React Native, NestJS, PostgreSQL, Docker, k3s.
# African Calorie Tracker — Project Skeleton
Monorepo for the calorie tracking app: a React Native (Expo) mobile app,
a NestJS + PostgreSQL backend, and Docker/infra for running it all.
Built to run **fully locally at zero cost** — you only pay for a server
when you decide to launch to real users.
## Structure
```
backend/ NestJS API (TypeScript)
src/
auth/ signup/login (email + phone), OTP, JWT, trial/entitlement
users/ profiles, calorie-target calculation (the "engine")
foods/ food database + search endpoints
logs/ log entries, day records, weigh-ins
sync/ offline sync endpoint (push/pull by updated_at)
common/ shared utilities, guards
migrations/
001_init.sql LAUNCH
7. k3s migration (portfolio phase)
## Notes
- The calorie engine math lives in BOTH mobile (offline) and backend
(authoritative). See calorie-engine-spec.md.
- Free core works offline forever. Trial/paywall enforced via on-device
expiry date + anti-clock-rollback, confirmed on next online sync.