How thm-health/pilos works
PILOS is a Vue frontend and Laravel API for managing online seminar rooms backed by BigBlueButton. The main user journey is to authenticate, browse or manage rooms, join a meeting, and later access recordings and attendance/history. The tree and README document administration, external identity providers, streaming, and metrics as additional capabilities. Sampled controller code confirms room joining delegates to RoomService and recording access uses recording storage; unsampled subsystem wiring is shown only where the README or tree supports it.
Main entry points: RoomController.php Room API · app.js Vue application · RoomService.php Room services · RecordingController.php Recording access
Components 20
User interface
- Vue application
resources/js/app.js - Login interface
resources/js/components/LoginTabLocal.vue - Room interface
resources/js/components/RoomCreateComponent.vue
Identity
- Authentication API
app/Http/Controllers/api/v1/auth/LoginController.php - External auth
app/Auth - User accounts
app/Models/User.php
Rooms and meetings
- Room API
app/Http/Controllers/api/v1/RoomController.php - Room services
app/Services/RoomService.php - Room data
app/Models/Room.php - Meeting history
app/Models/Meeting.php - Recording access
app/Http/Controllers/RecordingController.php - Recording files
app/Models/Recording.php
Administration and operations
- Administration API
app/Http/Controllers/api/v1/SettingsController.php - Application settings
app/Settings - Streaming services
app/Services/StreamingService.php - Metrics
app/Prometheus/CollectorRegistry.php - Localization
app/Services/LocaleService.php
Other components
- User
- BigBlueButton
- File storage
Connections 19
- User → Vue application: uses
- Vue application → Login interface: renders
- Login interface → Authentication API: submits login
- Authentication API → User accounts: authenticates
- External auth → User accounts: authenticates
- Vue application → Room interface: renders
- Room interface → Room API: requests rooms
- Room API → Room services: delegates joining
- Room API → Room data: reads and writes
- Room services → BigBlueButton: controls meetings
- Room data → Meeting history: records meetings
- Room API → Meeting history: lists meetings
- Room API → Recording access: offers recording access
- Recording access → Recording files: reads metadata
- Recording access → File storage: reads files
- Administration API → Application settings: manages settings
- Room services → Streaming services: configures streaming
- Metrics → Room API: collects usage
- Vue application → Localization: selects locale