How 23at/vr_demo works
This is a web-based training platform for administering users and training modules, assigning modules, and tracking scenario-based training progress. Users sign in, view assigned modules, and launch training; progress updates are recorded by session. Administrators manage users and modules, upload module files, and review progress. The graph separates the React interface, FastAPI request handling, domain persistence, and file delivery. Source excerpts show backend routes and selected frontend calls; connections from the API client to backend routes are not fully visible, so those links are dashed.
Main entry points: App.jsx React app routes · auth_handler.py Token and password logic · main.py FastAPI application · api.js HTTP API client
Components 23
Web interface
- React app routes
frontend/src/App.jsx - Login page
frontend/src/pages/login.jsx - Training dashboard
frontend/src/pages/dashboard.jsx - Download page
frontend/src/pages/download.jsx - Admin dashboard
frontend/src/pages/admin.jsx - User management
frontend/src/pages/adminUsers.jsx - Module management
frontend/src/pages/adminModules.jsx - HTTP API client
frontend/src/services/api.js
Backend API
- FastAPI application
backend/main.py - Authentication
backend/routers/auth.py - Admin operations
backend/routers/admin.py - Module and scenario routes
backend/routers/mods.py - Progress updates
backend/routers/progress.py - User routes
backend/routers/users.py
Training domain
- Token and password logic
backend/auth/auth_handler.py - Training records
backend/models.py - Request and response schemas
backend/schemas.py - Relational database
backend/database.py
Module delivery
- Module file storage
backend/routers/mods.py - S3-compatible storage
- Uploaded module serving
backend/main.py
Other components
- Trainee
- Administrator
Connections 45
- Trainee → React app routes: uses
frontend/src/App.jsx - Administrator → React app routes: uses
frontend/src/App.jsx - React app routes → Login page: routes
frontend/src/App.jsx - React app routes → Training dashboard: routes
frontend/src/App.jsx - React app routes → Download page: routes
frontend/src/App.jsx - React app routes → Admin dashboard: routes
frontend/src/App.jsx - React app routes → User management: routes
frontend/src/App.jsx - React app routes → Module management: routes
frontend/src/App.jsx - Login page → HTTP API client: calls
frontend/src/pages/login.jsx - Training dashboard → HTTP API client: calls
frontend/src/pages/dashboard.jsx - Download page → HTTP API client: calls
frontend/src/pages/download.jsx - Admin dashboard → HTTP API client: calls
frontend/src/pages/admin.jsx - User management → HTTP API client: calls
frontend/src/pages/adminUsers.jsx - Module management → HTTP API client: calls
frontend/src/pages/adminModules.jsx - HTTP API client → FastAPI application: sends requests
- FastAPI application → Authentication: registers
backend/main.py - FastAPI application → Module and scenario routes: registers
backend/main.py - FastAPI application → Admin operations: registers
backend/main.py - FastAPI application → Progress updates: registers
backend/main.py - FastAPI application → User routes: registers
backend/main.py - Authentication → Token and password logic: calls
backend/routers/auth.py - Authentication → Relational database: queries
backend/routers/auth.py - Authentication → Training records: creates users
backend/routers/auth.py - Authentication → Request and response schemas: validates
backend/routers/auth.py - Admin operations → Token and password logic: authenticates
backend/routers/admin.py - Admin operations → Relational database: queries
backend/routers/admin.py - Admin operations → Training records: manages records
backend/routers/admin.py - Admin operations → Request and response schemas: validates
backend/routers/admin.py - Module and scenario routes → Token and password logic: authenticates
backend/routers/mods.py - Module and scenario routes → Relational database: queries
backend/routers/mods.py - Module and scenario routes → Training records: manages training
backend/routers/mods.py - Module and scenario routes → Request and response schemas: validates
backend/routers/mods.py - Progress updates → Token and password logic: authenticates
backend/routers/progress.py - Progress updates → Relational database: queries
backend/routers/progress.py - Progress updates → Training records: updates progress
backend/routers/progress.py - Progress updates → Request and response schemas: uses status
backend/routers/progress.py - User routes → Token and password logic: authenticates
backend/routers/users.py - User routes → Relational database: uses sessions
backend/routers/users.py - Relational database → Training records: initializes metadata
backend/database.py - Token and password logic → Relational database: queries users
backend/auth/auth_handler.py - Token and password logic → Training records: loads users
backend/auth/auth_handler.py - Token and password logic → Request and response schemas: creates token data
backend/auth/auth_handler.py - Module and scenario routes → S3-compatible storage: uploads and signs
backend/routers/mods.py - FastAPI application → Uploaded module serving: mounts
backend/main.py - Uploaded module serving → Module file storage: serves uploaded files
backend/main.py