# tanmay66-jpg/busconnect-driver-hub architecture

> Architecture diagram of the GitHub repository tanmay66-jpg/busconnect-driver-hub, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tanmay66-jpg/busconnect-driver-hub
- Repository: https://github.com/tanmay66-jpg/busconnect-driver-hub

## Overview

BusConnect is a bus-driver and fleet-administration application: drivers can view route progress and schedules, share location, and access emergency, profile, and settings screens; administrators have dashboards for fleet tracking, route performance, analytics, drivers, security, notifications, and settings. The main evidenced flow is route-screen loading: the app dispatches to the route screen, which fetches route data and combines it with browser location for map and stop display. Admin route performance is loaded through a hook and service. Source excerpts are partial, so uncertain client-to-server and other page-to-service wiring is omitted.

Main entry points: [`src/App.tsx`](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/App.tsx) (App Router), [`src/pages/RouteScreen.tsx`](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/RouteScreen.tsx) (Route Progress), [`src/admin/services/authService.ts`](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/services/authService.ts) (Admin Auth Service), [`src/admin/pages/AdminRoutesPage.tsx`](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminRoutesPage.tsx) (Route Performance)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_driver["Driver App"]
  node_app["App Router<br/>[App.tsx]"]
  node_login["Driver Login<br/>[LoginScreen.tsx]"]
  node_dashboard["Driver Dashboard<br/>[Dashboard.tsx]"]
  node_route_screen["Route Progress<br/>[RouteScreen.tsx]"]
  node_schedule["Schedule<br/>[ScheduleScreen.tsx]"]
  node_emergency["Emergency"]
  node_profile["Profile Settings<br/>[ProfileScreen.tsx]"]
  node_driver_map["Route Map<br/>[DriverMap.tsx]"]
  node_geolocation["Device Location<br/>[useGeolocation.ts]"]
end

subgraph group_admin["Fleet Administration"]
  node_admin_login["Admin Login<br/>[AdminLoginPage.tsx]"]
  node_admin_dashboard["Fleet Dashboard"]
  node_admin_tracking["Bus Tracking"]
  node_admin_routes["Route Performance"]
  node_admin_route_details["Route Reports"]
  node_admin_analytics["Analytics"]
  node_admin_drivers["Driver Management"]
  node_admin_notifications["Notifications"]
  node_admin_security["Security"]
  node_admin_settings["Admin Settings"]
end

subgraph group_services["Data Services"]
  node_admin_hooks["Admin Data Hooks<br/>[useAdminData.ts]"]
  node_admin_service["Admin Service<br/>[adminService.ts]"]
  node_route_api["Route API Client<br/>[api.ts]"]
  node_server_api["Bus API<br/>[index.mjs]"]
  node_auth_service["Admin Auth Service<br/>[authService.ts]"]
  node_supabase_service["Profile Sync<br/>[supabaseService.ts]"]
end

subgraph group_state["Persistence"]
  node_firebase_auth["Firebase Auth<br/>[firebase.ts]"]
  node_supabase["Supabase Client<br/>[supabase.ts]"]
  node_firestore[("Firestore Bus Data<br/>[firebase.ts]")]
end

node_driver_user(("Driver"))
node_admin_user(("Administrator"))

node_driver_user -->|"opens"| node_app
node_admin_user -->|"opens"| node_app
node_app -->|"routes"| node_login
node_app -->|"routes"| node_dashboard
node_app -->|"routes"| node_route_screen
node_app -->|"routes"| node_schedule
node_app -->|"routes"| node_emergency
node_app -->|"routes"| node_profile
node_app -->|"routes"| node_admin_login
node_app -->|"routes"| node_admin_dashboard
node_app -->|"routes"| node_admin_tracking
node_app -->|"routes"| node_admin_routes
node_app -->|"routes"| node_admin_route_details
node_app -->|"routes"| node_admin_analytics
node_app -->|"routes"| node_admin_drivers
node_app -->|"routes"| node_admin_notifications
node_app -->|"routes"| node_admin_security
node_app -->|"routes"| node_admin_settings
node_route_screen -->|"fetches route"| node_route_api
node_route_screen -->|"reads location"| node_geolocation
node_route_screen -->|"renders map"| node_driver_map
node_admin_routes -->|"loads performance"| node_admin_hooks
node_admin_hooks -->|"requests data"| node_admin_service
node_auth_service -->|"authenticates"| node_firebase_auth
node_auth_service -->|"syncs profile"| node_supabase_service
node_supabase_service -->|"uses client"| node_supabase
node_server_api -->|"reads and writes"| node_firestore

click node_app "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/App.tsx"
click node_login "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/LoginScreen.tsx"
click node_dashboard "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/Dashboard.tsx"
click node_route_screen "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/RouteScreen.tsx"
click node_schedule "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/ScheduleScreen.tsx"
click node_emergency "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/EmergencyScreen.tsx"
click node_profile "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/ProfileScreen.tsx"
click node_driver_map "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/components/DriverMap.tsx"
click node_geolocation "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/hooks/useGeolocation.ts"
click node_admin_login "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminLoginPage.tsx"
click node_admin_dashboard "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminDashboardPage.tsx"
click node_admin_tracking "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminBusTrackingPage.tsx"
click node_admin_routes "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminRoutesPage.tsx"
click node_admin_route_details "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminRouteDetailsPage.tsx"
click node_admin_analytics "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminAnalyticsPage.tsx"
click node_admin_drivers "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminDriversPage.tsx"
click node_admin_notifications "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminNotificationsPage.tsx"
click node_admin_security "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminSecurityPage.tsx"
click node_admin_settings "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminSettingsPage.tsx"
click node_admin_hooks "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/hooks/useAdminData.ts"
click node_admin_service "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/services/adminService.ts"
click node_route_api "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/lib/api.ts"
click node_server_api "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/server/index.mjs"
click node_auth_service "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/services/authService.ts"
click node_firebase_auth "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/lib/firebase.ts"
click node_supabase_service "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/services/supabaseService.ts"
click node_supabase "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/lib/supabase.ts"
click node_firestore "https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/lib/firebase.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_login,node_dashboard,node_route_screen,node_schedule,node_emergency,node_profile,node_driver_map,node_geolocation toneBlue
class node_admin_login,node_admin_dashboard,node_admin_tracking,node_admin_routes,node_admin_route_details,node_admin_analytics,node_admin_drivers,node_admin_notifications,node_admin_security,node_admin_settings toneAmber
class node_admin_hooks,node_admin_service,node_route_api,node_server_api,node_auth_service,node_supabase_service toneMint
class node_firebase_auth,node_supabase,node_firestore toneRose
class node_driver_user,node_admin_user toneIndigo
```

## Components

### Driver App

- [App Router](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/App.tsx): `src/App.tsx`
- [Driver Login](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/LoginScreen.tsx): `src/pages/LoginScreen.tsx`
- [Driver Dashboard](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/Dashboard.tsx): `src/pages/Dashboard.tsx`
- [Route Progress](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/RouteScreen.tsx): `src/pages/RouteScreen.tsx`
- [Schedule](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/ScheduleScreen.tsx): `src/pages/ScheduleScreen.tsx`
- [Emergency](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/EmergencyScreen.tsx): `src/pages/EmergencyScreen.tsx`
- [Profile Settings](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/pages/ProfileScreen.tsx): `src/pages/ProfileScreen.tsx`
- [Route Map](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/components/DriverMap.tsx): `src/components/DriverMap.tsx`
- [Device Location](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/hooks/useGeolocation.ts): `src/hooks/useGeolocation.ts`

### Fleet Administration

- [Admin Login](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminLoginPage.tsx): `src/admin/pages/AdminLoginPage.tsx`
- [Fleet Dashboard](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminDashboardPage.tsx): `src/admin/pages/AdminDashboardPage.tsx`
- [Bus Tracking](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminBusTrackingPage.tsx): `src/admin/pages/AdminBusTrackingPage.tsx`
- [Route Performance](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminRoutesPage.tsx): `src/admin/pages/AdminRoutesPage.tsx`
- [Route Reports](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminRouteDetailsPage.tsx): `src/admin/pages/AdminRouteDetailsPage.tsx`
- [Analytics](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminAnalyticsPage.tsx): `src/admin/pages/AdminAnalyticsPage.tsx`
- [Driver Management](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminDriversPage.tsx): `src/admin/pages/AdminDriversPage.tsx`
- [Notifications](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminNotificationsPage.tsx): `src/admin/pages/AdminNotificationsPage.tsx`
- [Security](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminSecurityPage.tsx): `src/admin/pages/AdminSecurityPage.tsx`
- [Admin Settings](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/pages/AdminSettingsPage.tsx): `src/admin/pages/AdminSettingsPage.tsx`

### Data Services

- [Admin Data Hooks](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/hooks/useAdminData.ts): `src/admin/hooks/useAdminData.ts`
- [Admin Service](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/services/adminService.ts): `src/admin/services/adminService.ts`
- [Route API Client](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/lib/api.ts): `src/lib/api.ts`
- [Bus API](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/server/index.mjs): `server/index.mjs`
- [Admin Auth Service](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/services/authService.ts): `src/admin/services/authService.ts`
- [Profile Sync](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/services/supabaseService.ts): `src/admin/services/supabaseService.ts`

### Persistence

- [Firebase Auth](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/lib/firebase.ts): `src/admin/lib/firebase.ts`
- [Supabase Client](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/admin/lib/supabase.ts): `src/admin/lib/supabase.ts`
- [Firestore Bus Data](https://github.com/tanmay66-jpg/busconnect-driver-hub/blob/main/src/lib/firebase.ts): `src/lib/firebase.ts`

### Other components

- **Driver**
- **Administrator**

## Connections

- Driver → App Router: opens
- Administrator → App Router: opens
- App Router → Driver Login: routes
- App Router → Driver Dashboard: routes
- App Router → Route Progress: routes
- App Router → Schedule: routes
- App Router → Emergency: routes
- App Router → Profile Settings: routes
- App Router → Admin Login: routes
- App Router → Fleet Dashboard: routes
- App Router → Bus Tracking: routes
- App Router → Route Performance: routes
- App Router → Route Reports: routes
- App Router → Analytics: routes
- App Router → Driver Management: routes
- App Router → Notifications: routes
- App Router → Security: routes
- App Router → Admin Settings: routes
- Route Progress → Route API Client: fetches route
- Route Progress → Device Location: reads location
- Route Progress → Route Map: renders map
- Route Performance → Admin Data Hooks: loads performance
- Admin Data Hooks → Admin Service: requests data
- Admin Auth Service → Firebase Auth: authenticates
- Admin Auth Service → Profile Sync: syncs profile
- Profile Sync → Supabase Client: uses client
- Bus API → Firestore Bus Data: reads and writes
