How conductors-senior-project-rit/full-stack-web-app works
TrackSense is a web application for viewing train-station activity and managing train records. Users authenticate in the web client, then access role-protected record data and verification screens; volunteers can review records and assign symbols or locomotive numbers. The backend tree also indicates station reporting/status, user preferences, and notification capabilities. The supplied server excerpt is commented out, so it does not establish live route registration; connections below are limited to calls shown in sampled source or responsibilities documented in the tree and excerpts.
Main entry points: user_service.py User service · record_service.py Record service · volunteer_handler.py Volunteer endpoints · station_service.py Station service
Components 27
Web client
- App routes
tracksenseweb/src/App.js - Auth context
tracksenseweb/src/components/AuthContext.js - Record screens
tracksenseweb/src/components/Data.js - Verification screens
tracksenseweb/src/components/VerifyEOT.js - Station pages
tracksenseweb/src/components/Station.js
Backend API
- User endpoints
backend/src/api/user_api.py - Preference endpoints
backend/src/api/user_preferences_api.py - Volunteer endpoints
backend/src/api/volunteer_handler.py - Signal updates
backend/src/api/signal_update_handler.py - Station endpoints
backend/src/api/station_auth.py - Station status
backend/src/api/station_online.py - Record endpoints
backend/src/api/record_collation.py - Recent activity
backend/src/api/time_frame_pull.py - Notification endpoints
backend/src/api/notification_handler.py
Domain services
- Record service
backend/src/service/record_service.py - User service
backend/src/service/user_service.py - Station service
backend/src/service/station_service.py - Symbol service
backend/src/service/symbol_service.py
Persistence
- Record repositories
backend/src/db/record_repo.py - User repository
backend/src/db/user_repo.py - Station repository
backend/src/db/station_repo.py - Symbol repository
backend/src/db/symbol_repo.py - ORM repository core
backend/src/db/db_core/repository.py
Other components
- Browser user
- SQL database
backend/database.py - Pushover
- Email delivery
Connections 24
- Browser user → App routes: uses
- App routes → Auth context: provides auth
- Auth context → User endpoints: checks role
- Record screens → Record endpoints: requests records
- Verification screens → Volunteer endpoints: requests verification
- Station pages → Station endpoints: requests station
- Volunteer endpoints → Record service: loads and verifies
- Volunteer endpoints → Symbol service: manages symbols
- Signal updates → Record service: updates record
- Record service → Record repositories: queries and writes
- Record repositories → ORM repository core: uses ORM core
- User endpoints → User service: handles accounts
- Preference endpoints → User service: handles preferences
- User service → User repository: reads and writes
- User service → Station repository: lists stations
- User service → Email delivery: sends account mail
- Station endpoints → Station service: handles station auth
- Station status → Station service: updates status
- Station service → Station repository: reads and writes
- Symbol service → Symbol repository: reads and writes
- Record endpoints → Record service: collates records
- Recent activity → Record service: pulls activity
- ORM repository core → SQL database: queries and flushes
- Notification endpoints → Pushover: sends alert