How shreyas-sv1/digital_bus_ticket works
BMTC SmartTicket is a multi-role digital bus-ticketing system: travelers find routes and fares, create a time-limited QR travel session, and obtain a cash or online ticket; conductors issue tickets, supervisors verify them, and administrators manage transit operations and monitor fraud. The graph includes the documented frontend/backend boundary, core ticketing stages, authentication, and persistence. Several frontend pages and backend subsystems are represented by their exact tree paths; their internal wiring is not inferred where source excerpts were unavailable.
Main entry points: prisma.service.ts Prisma service · api.ts API client · traveler Traveler pages · sessions.service.ts Travel sessions
Components 27
Role-based frontend
- Traveler pages
frontend/app/traveler - Conductor pages
frontend/app/conductor - Supervisor pages
frontend/app/supervisor - Admin pages
frontend/app/admin - API client
frontend/lib/api.ts - Realtime client
frontend/lib/socket.ts
Identity and access
- Auth endpoints
backend/src/auth/auth.controller.ts - Auth service
backend/src/auth/auth.service.ts
Travel and ticketing
- Session endpoints
backend/src/sessions/sessions.controller.ts - Travel sessions
backend/src/sessions/sessions.service.ts - Ticket endpoints
backend/src/tickets/tickets.controller.ts - Ticket issuance
backend/src/tickets/tickets.service.ts - Verification endpoints
backend/src/verification/verification.controller.ts - Ticket verification
backend/src/verification/verification.service.ts
Transit operations
- Route endpoints
backend/src/routes/routes.controller.ts - Routes and fares
backend/src/routes/routes.service.ts - Bus endpoints
backend/src/buses/buses.controller.ts - Bus service
backend/src/buses/buses.service.ts - Admin service
backend/src/admin.service.ts
Persistence and integrations
- Prisma service
backend/src/prisma/prisma.service.ts - PostgreSQL
- Razorpay
- Socket gateway
backend/src/socket/socket.gateway.ts
Other components
- Traveler
- Conductor
- Supervisor
- Administrator
Connections 26
- Traveler → Traveler pages: uses
- Conductor → Conductor pages: uses
- Supervisor → Supervisor pages: uses
- Administrator → Admin pages: uses
- Traveler pages → API client: requests
- Conductor pages → API client: requests
- Supervisor pages → API client: requests
- Admin pages → API client: requests
- Auth endpoints → Auth service: calls
- Route endpoints → Routes and fares: calls
- Bus endpoints → Bus service: calls
- Session endpoints → Travel sessions: calls
- Ticket endpoints → Ticket issuance: calls
- Verification endpoints → Ticket verification: calls
- Travel sessions → Routes and fares: calculates fare
- Auth service → Prisma service: reads and writes
- Routes and fares → Prisma service: reads and writes
- Bus service → Prisma service: reads and writes
- Admin service → Prisma service: uses
- Travel sessions → Prisma service: reads and writes
- Ticket issuance → Prisma service: reads and writes
- Ticket verification → Prisma service: reads and writes
- Prisma service → PostgreSQL: persists data
- Ticket issuance → Razorpay: creates and verifies payments
- Traveler pages → Realtime client: receives updates
- Realtime client → Socket gateway: connects