How robocup-junior/rcj-rescue-cms works
RoboCupJunior CMS is a web-based rescue competition management and scoring system. Organizers configure competitions, teams, rounds and maps; judges record line, maze and simulation runs; the system applies rule-specific scoring and exposes results and rankings. The repository also includes registration, document review, reservations, signage and technical-challenge capabilities. The tree and README establish these product areas; sampled source confirms HTTP routing, authentication, run notifications and document-review API usage, but not every route-to-model call.
Main entry points: app.js HTTP application · models MongoDB records · lineRuns.js Run records · mazeRuns.js Maze runs
Components 24
Web entry
- HTTP application
app.js - Login and access
routes/api/auth.js
Competition setup
- Competition setup
routes/api/competitions.js - Teams and rounds
routes/api/teams.js - Line and maze maps
routes/api/lineMaps.js - Map editors
public/javascripts/admin/mapEditor
Runs and scoring
- Run records
routes/api/lineRuns.js - Maze runs
routes/api/mazeRuns.js - Simulation runs
routes/api/simRuns.js - Judge interfaces
public/javascripts/judge - Rule-based scoring
helper/scoreCalculator.js - Rankings
routes/api/ranking.js
Competition operations
- Registration
routes/api/registration.js - Document review
routes/api/document.js - Reservations
routes/api/reservation.js - Signage
routes/api/signage.js - Surveys and challenge
routes/api/survey.js
Persistence and services
- MongoDB records
models - Mail queue
queue/mailQueue.js - Mail delivery
helper/mailSender.js - Redis
Other components
- Organizers
- Judges
- Participants
Connections 42
- Organizers → HTTP application: use admin pages
- Judges → HTTP application: submit scores
- Participants → HTTP application: use competition site
- HTTP application → Login and access: routes requests
- HTTP application → Competition setup: mounts API
- HTTP application → Teams and rounds: mounts API
- HTTP application → Line and maze maps: mounts API
- HTTP application → Run records: mounts API
- HTTP application → Maze runs: mounts API
- HTTP application → Simulation runs: mounts API
- HTTP application → Rankings: mounts API
- HTTP application → Registration: mounts API
- HTTP application → Document review: mounts API
- HTTP application → Reservations: mounts API
- HTTP application → Signage: mounts API
- HTTP application → Surveys and challenge: mounts API
- Organizers → Map editors: configure maps
- Map editors → Line and maze maps: edit maps
- Judges → Judge interfaces: record runs
- Judge interfaces → Run records: submit line runs
- Judge interfaces → Maze runs: submit maze runs
- Judge interfaces → Simulation runs: submit simulation runs
- Run records → Rule-based scoring: calculate points
- Maze runs → Rule-based scoring: calculate points
- Simulation runs → Rule-based scoring: calculate points
- Rankings → MongoDB records: read results
- Competition setup → MongoDB records: store setup
- Teams and rounds → MongoDB records: store teams
- Line and maze maps → MongoDB records: store maps
- Run records → MongoDB records: store runs
- Maze runs → MongoDB records: store runs
- Simulation runs → MongoDB records: store runs
- Registration → MongoDB records: store registrations
- Document review → MongoDB records: store review data
- Reservations → MongoDB records: store reservations
- Surveys and challenge → MongoDB records: store responses
- HTTP application → Mail queue: queues mail
- Mail queue → Mail delivery: dispatches mail
- HTTP application → Redis: coordinates workers
- Run records → Redis: publishes run events
- Maze runs → Redis: publishes run events
- Signage → Redis: publishes updates