feat: initial itpp-docs setup with MkDocs Material
Publish Docs Site / build (push) Failing after 5s
Publish Docs Site / build (push) Failing after 5s
- mkdocs.yml with dark slate theme, nav for 12 ITPP projects - build-docs.sh aggregates docs from all project repos - .gitea/workflows/docs-publish.yml for nightly rebuild+deploy - README and CHANGELOG for the itpp-docs repo itself - docs-source/ populated from all 12 repos - site/ ready for deployment to docs.itpropartner.com
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# TransitPin — CHANGELOG
|
||||
|
||||
## 2026-08-09 — Initial: migrate to Git
|
||||
|
||||
- Migrated project to Git with ITPP standards (.gitignore, README template, docs-check CI).
|
||||
|
||||
## 2026-07-29
|
||||
|
||||
### Added
|
||||
- **Follow Driver** — each driver card in Dispatch tab has a 📍 button. Clicking centers the map on that driver and pans to follow their position updates every 3s. Dragging the map or clicking again unfollows. Blue glow on active follow. (JS: `window.followedDriverId`, `dispatchMap.panTo` in position handler)
|
||||
- **Wake Lock API** — driver page requests `navigator.wakeLock.request('screen')` when GPS tracking starts, preventing screen dim/lock. Released on stop. Re-acquired automatically on visibility change. "🔒 Screen awake" / "⚠️ Screen may dim" indicator below GPS grid.
|
||||
- **TomTom traffic overlay** — 🚦 toggle button on Dispatch tab. Toggles real-time traffic flow tiles (green/yellow/red overlay) on the Leaflet map.
|
||||
|
||||
### Fixed
|
||||
- **Permission 600→644** — driver.html and manifest were root-only, blocked Caddy from serving them.
|
||||
- **Caddy WebSocket route** — changed from `handle_path /ws/driver/*` to `handle_path /ws/driver*` to match bare `/ws/driver` path.
|
||||
- **Position ID field mismatch** — server broadcasts `position` with `driverId` field, but admin JS was looking for `d.id`. Fixed `updateDriverPosition`, `updateDriverCard`, `updateDriverStatus`, and `driver-offline` handler to accept both `id` and `driverId`.
|
||||
- **TomTom tile URL** — was missing `/absolute/` in the path, causing 400 errors on all traffic tiles. Fixed from `/tile/flow/{z}/{x}/{y}.png` to `/tile/flow/absolute/{z}/{x}/{y}.png`.
|
||||
- **JS scope on toggleTraffic** — function was local inside `initDispatch()`, invisible to onclick. Changed to `window.toggleTraffic`.
|
||||
- **Parent portal dashboard crash after login** — `escapeHtml()` was called in 10 places throughout `renderDashboard()` and `renderEmergencyContacts()`, but the function was defined as `escHTML()` (abbreviated). This threw `ReferenceError` immediately after login, leaving a blank dashboard. Fix: added `const escapeHtml = escHTML;` alias at line 1121. Root cause: function was named one way during message rendering code (`escHTML`) and inconsistently named in dashboard/emergency contacts code (`escapeHtml`).
|
||||
|
||||
### Architecture
|
||||
- WebSocket relay running as `village-express.service` (systemd, port 8210)
|
||||
- Caddy reverse-proxies `/ws/driver*` → `127.0.0.1:8210` for TLS
|
||||
- Driver PWA streams GPS every 3s via `watchPosition`
|
||||
- Dispatchers receive real-time position broadcasts
|
||||
|
||||
---
|
||||
|
||||
## Future Projects
|
||||
|
||||
### Native Background Tracking (Capacitor Wrapper)
|
||||
The PWA approach cannot keep GPS running when the phone screen locks. No browser-based solution supports this.
|
||||
|
||||
**Next step:** Wrap the driver PWA with Capacitor to produce real iOS/Android apps with native background geolocation permissions (`CLLocationManager` on iOS, `FusedLocationProviderClient` on Android). The existing HTML/JS frontend stays — Capacitor wraps it with native APIs.
|
||||
|
||||
**Requirements:**
|
||||
- Capacitor CLI + native iOS/Android project scaffolding
|
||||
- `cordova-plugin-background-geolocation` or Capacitor's built-in geolocation plugin with background mode
|
||||
- App store deployment for iOS (Apple Developer account needed)
|
||||
- Play Store or direct APK for Android
|
||||
|
||||
**Estimated effort:** 1-2 days for Capacitor setup + background plugin integration. App store submission adds 1-2 weeks for review.
|
||||
|
||||
**No rewrite needed** — the web code stays; Capacitor adds the native shell.
|
||||
@@ -0,0 +1,42 @@
|
||||
# transitpin
|
||||
|
||||
|
||||
> **Owner:** Germaine | **Status:** LIVE (dev)
|
||||
> **Last Updated:** 2026-08-09
|
||||
|
||||
TransitPin is a real-time student transportation tracking SaaS built for the private contractor market — the companies school districts hire to move students. It replaces paper route sheets, manual parent texts, and clipboards with a live GPS platform: driver PWA, parent ETA portal, bell-schedule intelligence, and an admin dashboard for owners.
|
||||
|
||||
Built from a direct client engagement with Village Express Transportation (Savannah, GA).
|
||||
|
||||
## Access
|
||||
|
||||
| Resource | URL | Location | Notes |
|
||||
|---|---|---|---|
|
||||
| Parent Portal | https://villageexpress.transitpin.com/ | Core (152.53.192.33) | Caddy reverse proxy |
|
||||
| Driver PWA | https://villageexpress.transitpin.com/driver.html | Core | WebSocket at /ws/driver* |
|
||||
| Admin Dashboard | https://villageexpress.transitpin.com/admin.html | Core | Dispatch map, driver tracking |
|
||||
| WebSocket Relay | port 8210 (localhost) | Core | systemd: village-express.service |
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- Frontend: Vanilla HTML/CSS/JS, Leaflet maps, TomTom traffic tiles
|
||||
- Backend: WebSocket relay (Node.js), systemd service
|
||||
- Reverse Proxy: Caddy (TLS auto-provision)
|
||||
- GPS: Browser `watchPosition` API, Wake Lock API
|
||||
- Data: driver-manifest.json (static routes), PWA manifest
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
git clone https://git.itpropartner.com/ippadmin/transitpin.git
|
||||
cd transitpin/
|
||||
# Start WebSocket relay
|
||||
sudo systemctl start village-express
|
||||
# Caddy serves static files + proxies /ws/* to WebSocket relay
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [itpp-infrastructure](https://git.itpropartner.com/ippadmin/itpp-infrastructure) — server inventory, DNS
|
||||
- [itpp-standards](https://git.itpropartner.com/ippadmin/itpp-standards) — docs standards and templates
|
||||
- [transitpin-white-label](https://git.itpropartner.com/ippadmin/transitpin-white-label) — white-label portal builder
|
||||
Reference in New Issue
Block a user