transitpin¶
Multi-tenant, white-label student transportation platform. One codebase and one deployment serve many transportation providers ("tenants"), each with a branded parent signup/login surface, an operator dashboard, and per-tenant data isolation. Parents register children for a provider's weekly school-bus service and are billed a one-time registration fee plus a recurring weekly transportation fee.
Owner: Germaine Brown / IT Pro Partner
Status: LIVE (tenant #1 = Village Express Transportation at villageexpress.transitpin.com; demo = app.transitpin.com)
Repository: git.itpropartner.com/ippadmin/transitpin
Stack¶
| Layer | Technology | Location |
|---|---|---|
| API | FastAPI + SQLite | /opt/transitpin-api/, uvicorn 127.0.0.1:8900, systemd transitpin-api |
| Relay | Node WebSocket GPS + messaging | /opt/transitpin/server.js, 127.0.0.1:8210, systemd transitpin-relay |
| Frontend | Static single-file HTML (no build step) | /home/transitpin-dash/htdocs/my.transitpin.com/ |
| Ops console | Static HTML + auth2 | ops.transitpin.com/ops/ |
| Auth | auth2 (Hexclave) | auth2.itpropartner.com |
| Host | nginx on app3 | 152.53.241.111, wildcard *.transitpin.com |
nginx proxies /api/ to 127.0.0.1:8900.
Access¶
| Resource | URL | Notes |
|---|---|---|
| Operator dashboard | https://app.transitpin.com/admin.html |
demo tenant, role-aware login |
| Fleet dashboard | https://app.transitpin.com/fleet/dashboard.html |
canonical fleet layout |
| Parent signup/login | https://villageexpress.transitpin.com/signin.html |
tenant #1 |
| Ops console | https://ops.transitpin.com/ops/ |
auth2 group transitpin-it-staff |
| API health | https://app.transitpin.com/api/health |
public, no auth |
| AI costs | admin-ai shared hermes-agent-v5 key |
dedicated transitpin-prod key planned (see ai-spend-tracking.md) |
Credentials live in Vaultwarden, not in this repo. See OPS-GUIDE.md.
Documentation¶
ARCHITECTURE.md- system design, topology, auth, data flowsAPI-REFERENCE.md- full endpoint reference (40 endpoints)DATA-MODEL.md- SQLite schema (15 tables)DECISIONS.md- architecture decisions (ADR format)OPERATOR-GUIDE.md- dispatcher how-to for the admin dashboardOPS-GUIDE.md- internal operations and tenant onboardingPARENT-GUIDE.md- parent registration journeyDEPLOYMENT.md- deploy and rollback runbookGLOSSARY.md- domain termsROADMAP.md- planned and in-progress featuresTECHNICAL-SPEC.md,AS-BUILT.md,CUSTOMER-ONBOARDING.md,CONTRACT.md,NDA.md
Recovery¶
- Back up the DB before any schema change:
cp /opt/transitpin-api/data/transitpin.db /opt/transitpin-api/data/transitpin.db.bak-$(date +%s) - Restart API:
systemctl restart transitpin-api - Restart relay:
systemctl restart transitpin-relay - SSH app3:
ssh -i /root/.ssh/itpp-infra root@152.53.241.111