How ferryfif-warrior/cyberattack-simulation-edu works
Security Cat is a web-based cybersecurity learning and simulation application. A learner browses the lab catalog, opens a simulation and level, plays a floor using movement and interaction controls, chooses a response, and receives score/progress results. The server validates attempts, computes completion and badges, and persists per-user progress; dashboard and profile/authentication support the surrounding learning experience. The sampled controller shows server-side attempt scoring and persistence, while the tree shows additional simulation UI and content modules. Routing and several listed capabilities are represented only at the enclosing module level where source was not sampled.
Main entry points: GameContainer.tsx Game interface · web.php Web routes · DashboardController.php Learner dashboard · Play.tsx Play page
Components 21
Web experience
- Web routes
routes/web.php - Landing and learning
app/Http/Controllers/LandingController.php - Lab catalog
resources/js/Pages/Simulations/Index.tsx - Simulation detail
resources/js/Pages/Simulation/Detail.tsx - Level detail
resources/js/Pages/Simulation/LevelDetail.tsx - Learner dashboard
app/Http/Controllers/DashboardController.php
Accounts
- Auth routes
routes/auth.php - Login and registration
app/Http/Controllers/Auth/RegisterController.php - User account
app/Models/User.php
Simulation runtime
- Play page
resources/js/Pages/Simulation/Play.tsx - Game interface
resources/js/features/simulation/components/GameContainer.tsx - Movement and interaction
resources/js/features/simulation/engine/useKeyboardMovement.ts - Choice and narrative
resources/js/features/simulation/components/ChoicePanel.tsx - Floor content
resources/js/features/simulation/data/registry.ts - Simulation state
resources/js/features/simulation/store/useSimulationStore.ts
Progress tracking
- Progress API client
resources/js/features/simulation/lib/api.ts - Simulation API routes
routes/api.php - Attempt and progress API
app/Http/Controllers/Api/SimulationAttemptController.php - Simulation configuration
config/simulation.php - Simulation progress
app/Models/SimulationProgress.php
Other components
- Learner
Connections 23
- Learner → Web routes: opens pages
- Web routes → Landing and learning: dispatches
- Web routes → Learner dashboard: dispatches
- Learner → Auth routes: authenticates
- Auth routes → Login and registration: dispatches
- Login and registration → User account: creates account
- Learner → Lab catalog: browses labs
- Lab catalog → Simulation detail: opens simulation
- Simulation detail → Level detail: selects level
- Level detail → Play page: starts floor
- Play page → Game interface: renders
- Game interface → Movement and interaction: uses controls
- Game interface → Choice and narrative: presents choices
- Game interface → Floor content: loads content
- Game interface → Simulation state: updates state
- Play page → Progress API client: requests progress
- Progress API client → Simulation API routes: sends API request
- Simulation API routes → Attempt and progress API: dispatches
- Attempt and progress API → Simulation configuration: reads level settings
- Attempt and progress API → Simulation progress: reads and writes
- Simulation progress → User account: belongs to
- Learner dashboard → Simulation configuration: reads lab catalog
- Learner dashboard → Learner: returns overview