syncc Engineering Wiki
Welcome to the internal engineering wiki for the syncc platform — a multi-city public transit system operating in Bolivia.
What's here
| Section | Contents |
|---|---|
| Dev Setup | Local stack, environment files, npm scripts, Docker deploy |
| Conventions | Coding rules, GIS architecture, Angular patterns, E2E testing |
| AI Instructions | CLAUDE.md — how Claude navigates this repo |
| Wiki / Knowledge Base | GitHub Wiki contents (algorithms, architecture diagrams, data sources) |
| Apps | Per-app routes, services, schema, auth flows |
| Planning | Architecture proposals and ADRs |
Apps at a glance
| App | Stack | URL |
|---|---|---|
| API Server | NestJS + Prisma + PostgreSQL/PostGIS | api.{city}.syncc.me |
| Web Admin | Angular 20 + Tailwind + Leaflet | admin.syncc.me |
| Mobile Driver | Ionic 8 / Angular 20 + Capacitor | app.syncc.me |
| Passengers App | Ionic 8 / Angular 20 + Capacitor | passengers.app.syncc.me |
| Analytics | Angular 20 — cross-silo dashboard | analytics.syncc.me |
| QA Portal | Angular 20 — test case management | qa.syncc.me |
Key architecture facts
- Multi-silo: each city (Cochabamba, La Paz) runs a fully isolated backend with its own DB and JWT secret.
- GIS: route geometry lives on
Line.polyline(Google Encoded Polyline). Operational stops areCheckpointrecords with PostGISgeography(Point,4326)columns. - Auth: drivers use OTP (no password). Web users use email + password + JWT. QA users are created inside the QA portal only.
- Deploy:
./deploy.sh <city> <env>wrapsdocker composewith the correct env file and project name.
This wiki auto-updates every night at midnight via a server-side cron job (
git pull). MkDocs serve detects the file changes and reloads automatically.