docs: update PLAN.md Phase 23 completion and README project status

Phase 23 section updated with full list of changes from all polish passes:
Overview stats card, speed chart rework, mobile dashcam table fixes,
trip history mobile layout, notification badge fix, footer text.
README project status updated to reflect Phases 1-23 complete.

Co-authored-by: Copilot <[email protected]>
This commit is contained in:
Mathieu Moran
2026-08-09 23:56:47 -04:00
co-authored by Copilot
parent e2f7fa88df
commit 35ec705fe2
2 changed files with 41 additions and 36 deletions
+18 -23
View File
@@ -24,9 +24,11 @@ i have a dream
</tr>
</table>
## Screenshot
## Screenshots
![UI](pics/ui.png)
Dashboard — mobile (390 px) and desktop (1280 px):
![Mobile dashboard](pics/ui.png)
## Features
@@ -101,12 +103,12 @@ For the remote server (receives trip logs + dashcam uploads), see [server/README
## Project status
This project was revived after a couple of years on the shelf. Phases 1-13 and 15-20 are complete:
real GNSS, hardened OBD support, offline maps/UI, automatic WiFi hotspot switching, local logging,
dashcam import, resumable remote upload, trip history/replay, deployment, and the shared UI
foundation are implemented.
The pipeline has been exercised on the real Pi and dashcam, including a complete 28GB import and
remote upload. Actual OBD PID availability still needs the first in-car test.
Phases 1–13, 15–23 are complete. The full responsive web UI redesign (Phase 23) is done:
desktop sidebar with collapse, mobile bottom tab bar, 6 live OBD stat cards, Overview stats
card (trips, distance, drive time, top speed, video count, active DTC), merged GPS+coords card,
reworked speed history chart (gradient, rolling window, session stats, auto-expand on desktop),
collapsible dashcam sections with mobile-friendly icon-only action buttons, compact trip history
with short mobile date format and icon-only Replay button, and live-wired DTC page.
Phase 14 is partially complete: the Pi's hardware watchdog is deployed and reboot-verified.
Read-only-root storage hardening is deferred until persistent storage is moved off the SD root
@@ -114,18 +116,9 @@ partition, and clean shutdown still needs delayed-power or ignition-sense hardwa
The browser-based phone relay was removed after real-world testing confirmed that mobile browsers
cannot reliably use the Pi's WiFi and cellular data simultaneously. A native Android companion is
planned later instead. The next roadmap work is settings, followed by a final UI polish pass.
After the redesign, the same interface will become a secure remote trip portal backed by the
self-hosted server, including trip replay and browsing/playing/downloading archived dashcam videos,
with clear Local Pi/Remote Server labeling and hardware-only Pi sections omitted remotely. Full
phase history, verification notes, and current scope live in
[PLAN.md](./PLAN.md).
planned later instead.
A temporary, removable real-vehicle compatibility test in the 2013 Yaris precedes the final
low-priority Android phase; bench and synthetic verification alone are not treated as
ready-to-install sign-off. Permanent installation is owner-handled and is not a roadmap phase.
The local Web UI also includes a Settings page for safe runtime configuration: dashcam uploads,
The local Web UI includes a Settings page for safe runtime configuration: dashcam uploads,
uploaded-video retention, cellular APN fallback, optional ntfy delivery, and alert thresholds.
Notification secrets are write-only in the browser API, and network credentials that could lock
the Pi out remain SSH/file-managed. When cellular is configured, small ntfy notifications use the
@@ -134,7 +127,9 @@ still needs real-SIM/carrier verification.
The Pi can also join a configured phone hotspot for outbound internet when no SIM is available,
including trip synchronization and WiFi dashcam uploads, with automatic recovery to home WiFi or
the Pi-hosted local hotspot. Phone credentials are write-only in the Web UI and stored in a
root-only NetworkManager profile. Real Pixel testing proved cold boot, reconnect/fallback, server
tracking, and chunked video upload; a 1400-byte phone-profile MTU was required for reliable
tethered TLS uploads.
the Pi-hosted local hotspot.
A temporary, removable real-vehicle compatibility test in the 2013 Yaris (Phase 25) precedes the
final low-priority Android phase (Phase 26). Permanent installation is owner-handled and is not a
roadmap phase. Full phase history, verification notes, and current scope live in
[PLAN.md](./PLAN.md).