How steveandjeff999/obsidianscout-java works
Obsidianscout is a web-based robotics-team scouting and event-analysis application. The principal workflow is scouts entering match, pit, and qualitative observations; the server persists scouting data, which teams can use for analytics, prediction, and alliance decisions. The repository also contains authentication, event-data synchronization, collaboration, and operational administration capabilities. The README only points to external documentation, so subsystem links beyond the sampled source are limited to the application entry point and clearly evidenced interactions.
Main entry points: DatabaseFactory.kt Application database · Routes.kt HTTP routes · App.kt Server startup · IntegrationService.kt Event data sync
Components 24
Web client
- Browser client
src/main/resources/static/js - Scouting screens
src/main/resources/static/js/scout.js - Analytics screens
src/main/resources/static/js/analytics.js - Login client
src/main/resources/static/js/login.js
Scouting and analysis
- Scouting records
src/main/kotlin/com/obsidianscout/scouting/ScoutingService.kt - Pit scouting
src/main/kotlin/com/obsidianscout/scouting/PitScoutingService.kt - Qualitative scouting
src/main/kotlin/com/obsidianscout/scouting/QualitativeScoutingService.kt - Scouting assignments
src/main/kotlin/com/obsidianscout/scouting/ScoutingAssignmentService.kt - Scouting analytics
src/main/kotlin/com/obsidianscout/analytics/AnalyticsService.kt - Event predictor
src/main/kotlin/com/obsidianscout/analytics/PredictorService.kt - Alliance selection
src/main/kotlin/com/obsidianscout/scouting/AllianceSelectionService.kt
Server platform
- HTTP routes
src/main/kotlin/com/obsidianscout/routes/Routes.kt - Mobile routes
src/main/kotlin/com/obsidianscout/routes/MobileRoutes.kt - Server startup
src/main/kotlin/com/obsidianscout/App.kt - Authentication
src/main/kotlin/com/obsidianscout/auth/AuthService.kt
Persistence and sync
- Application database
src/main/kotlin/com/obsidianscout/db/DatabaseFactory.kt - Domain tables
src/main/kotlin/com/obsidianscout/db/Tables.kt - Event data sync
src/main/kotlin/com/obsidianscout/integrations/IntegrationService.kt - Backup and snapshots
src/main/kotlin/com/obsidianscout/db/BackupService.kt - Database snapshots
src/main/kotlin/com/obsidianscout/db/SnapshotService.kt
Administration
- Cluster management
src/main/kotlin/com/obsidianscout/admin/ClusterManagementService.kt - Storage administration
src/main/kotlin/com/obsidianscout/admin/StorageManagementService.kt
Other components
- Scouts and team users
- The Blue Alliance
Connections 22
- Scouts and team users → Browser client: use
- Browser client → HTTP routes: HTTP requests
- Server startup → HTTP routes: registers
- Server startup → Mobile routes: registers
- Login client → HTTP routes: auth requests
- HTTP routes → Authentication: authenticate
- Scouting screens → HTTP routes: submit scouting
- Analytics screens → HTTP routes: request analysis
- Scouting records → Application database: read and write
- Pit scouting → Application database: read and write
- Qualitative scouting → Application database: read and write
- Scouting assignments → Application database: read and write
- Scouting analytics → Application database: read scouting data
- Event predictor → Application database: read event data
- Alliance selection → Application database: read and write
- Application database → Domain tables: uses schema
- Event data sync → The Blue Alliance: fetch event data
- Event data sync → Application database: cache synced data
- Backup and snapshots → Application database: export and restore
- Database snapshots → Application database: copy database
- Storage administration → Application database: inspect and prune
- Cluster management → Application database: inspect cluster