How fagun98/routenest works
RouteNest’s main workflow is to synchronize static TfL bus-route data into a private Supabase schema, then let users search routes, select up to ten variants, and view or control their overlays in the web app or Chrome extension. The repository also includes an extension adapter layer for synchronizing overlays with supported map sites and a companion-map fallback. The README documents the synchronization and RPC architecture; source excerpts confirm key UI, client, messaging, and adapter entry points, but do not expose every implementation detail.
Main entry points: app.tsx Extension panel · page.tsx Web entry · index.ts Extension background · data.ts Web data access
Components 23
Route data
- Route synchronizer
scripts/sync_tfl_bus_routes.py - Bus schema
- Bus RPCs
Web application
- Web entry
apps/web/app/page.tsx - Route search
apps/web/components/route-search.tsx - Route controls
apps/web/components/selected-routes.tsx - Web data access
apps/web/lib/data.ts - Route map
apps/web/components/route-map.tsx - Diagnostics
apps/web/app/api/diagnostics/route.ts
Chrome extension
- Extension background
apps/chrome-extension/src/background/index.ts - Extension panel
apps/chrome-extension/src/sidepanel/app.tsx - Content controller
apps/chrome-extension/src/content/index.ts - Adapter registry
apps/chrome-extension/src/adapters/registry/adapter-registry.ts - Map adapters
apps/chrome-extension/src/adapters - Route overlay
apps/chrome-extension/src/overlay/svg-route-overlay.ts - Companion map
apps/chrome-extension/src/sidepanel/companion-map.tsx - Extension state
apps/chrome-extension/src/storage/state.ts
Shared packages
- Route client
packages/route-client/src/index.ts - Data contracts
packages/contracts/src/index.ts - Route rendering
packages/route-rendering/src/index.ts
Other components
- Bus map user
- TfL API
- Supported map site
Connections 25
- TfL API → Route synchronizer: provides data
- Route synchronizer → Bus schema: writes routes
- Bus schema → Bus RPCs: serves data
- Bus map user → Web entry: opens map
- Web entry → Route search: offers search
- Route search → Web data access: searches routes
- Web data access → Bus RPCs: calls RPCs
- Web data access → Data contracts: validates data
- Web entry → Route controls: controls routes
- Web entry → Route map: renders routes
- Bus map user → Extension panel: opens panel
- Extension panel → Extension background: sends messages
- Extension background → Extension state: loads and saves
- Extension background → Route client: fetches routes
- Route client → Bus RPCs: calls RPCs
- Route client → Data contracts: validates data
- Extension background → Content controller: sends route state
- Content controller → Adapter registry: selects adapter
- Content controller → Map adapters: mounts integration
- Map adapters → Supported map site: inspects map
- Map adapters → Route overlay: mounts overlay
- Extension panel → Companion map: shows fallback
- Extension panel → Route rendering: colors routes
- Diagnostics → Web data access: reads sync status
- Extension panel → Map adapters: checks permission gate