How dimig031/tms-mobile-app works
TMS Mobile is an Expo/React Native client for drivers using an existing TMS REST API. Drivers sign in, then use a dashboard to reach active and upcoming tours; tour workflows include status actions, checklists, stops, expenses and documents. Separate areas cover chat, profile, notifications, work tasks and travel orders. The internal layer combines query hooks, an authenticated API client, secure session storage and queued offline writes. Some feature paths are documented but their source was not sampled, so those links are limited to README evidence.
Main entry points: api.ts API client · index.tsx Driver dashboard · tours Tour workflows · AuthProvider.tsx Auth session
Components 21
Driver workflows
- Driver dashboard
app/(driver)/index.tsx - Tour workflows
app/(driver)/tours - Expense sheets
src/queries/useExpenseSheet.ts - Driver documents
src/queries/useDocuments.ts - Driver chat
src/queries/useChat.ts - Tasks and travel orders
src/queries/useWorkTasks.ts - Driver places
src/queries/useDriverPlaces.ts
Account and experience
- Sign in
app/(auth)/login.tsx - Auth session
src/providers/AuthProvider.tsx - Auth service
src/services/auth.ts - Driver profile
src/queries/useMobileProfile.ts
Data and persistence
- Secure session
src/lib/secure-store.ts - Tour data hooks
src/queries/useTours.ts - API client
src/lib/api.ts - Offline write queue
src/lib/offline-queue.ts - Persisted query cache
src/providers/QueryProvider.tsx
Device services
- Notifications
src/services/notifications.ts - GPS tracking
src/services/gpsTracking.ts
Other components
- Driver
- TMS REST API
- Push service
Connections 33
- Driver → Sign in: signs in
- Sign in → Auth session: submits credentials
app/(auth)/login.tsx - Auth session → Auth service: delegates auth
src/providers/AuthProvider.tsx - Auth service → Secure session: stores session
src/services/auth.ts - Auth service → TMS REST API: logs in
src/services/auth.ts - Auth session → GPS tracking: stops on logout
src/providers/AuthProvider.tsx - Auth session → Notifications: manages push token
src/providers/AuthProvider.tsx - Auth session → API client: checks activation
src/providers/AuthProvider.tsx - Driver → Driver dashboard: opens
- Driver dashboard → Tour data hooks: loads tours
app/(driver)/index.tsx - Driver dashboard → Driver chat: loads chat data
app/(driver)/index.tsx - Driver dashboard → Expense sheets: loads expenses
app/(driver)/index.tsx - Driver dashboard → Tour workflows: opens tour
app/(driver)/index.tsx - Tour workflows → Tour data hooks: loads tour data
app/(driver)/tours/index.tsx - Tour workflows → Expense sheets: manages expenses
app/(driver)/tours/[id]/expense.tsx - Tour workflows → Driver documents: manages documents
- Driver → Driver chat: uses messaging
- Driver chat → API client: requests chat data
src/queries/useChat.ts - Driver → Driver profile: views profile
- Driver profile → API client: loads profile
src/queries/useMobileProfile.ts - Driver → Notifications: receives alerts
- Notifications → API client: registers token
src/services/notifications.ts - Notifications → Push service: registers device
src/services/notifications.ts - Driver → Tasks and travel orders: manages work
- Driver → Driver places: finds driver places
- Tour workflows → GPS tracking: tracks transit
- GPS tracking → API client: queues GPS logs
src/services/gpsTracking.ts - Expense sheets → API client: writes expense data
src/queries/useExpenseSheet.ts - Driver documents → API client: writes metadata
- API client → TMS REST API: sends requests
src/lib/api.ts - API client → Secure session: reads and refreshes token
src/lib/api.ts - API client → Offline write queue: queues offline writes
src/lib/api.ts - Persisted query cache → Driver: persists query data
src/providers/QueryProvider.tsx