How iyadeh/securelab works
SecureLab is a web-based cybersecurity learning product. Learners browse structured learning paths, work through lessons, run vulnerability labs, and review progress and achievements; account and security settings are supporting workflows. Laravel controllers serve Inertia pages to the React client, with Eloquent-backed domain state and dedicated progress and lab-simulation services. The file tree and sampled excerpts support these major capabilities, but several routes, controllers, and service implementations were not sampled, so uncertain internal call wiring is omitted.
Main entry points: web.php Web routes · LearningPathController.php Learning paths · database.php Application database · LearningProgressService.php Progress calculations
Components 30
Web interface
- Web routes
routes/web.php - Inertia client
resources/js/app.tsx - HTML shell
resources/views/app.blade.php - Dashboard
app/Http/Controllers/DashboardController.php - Dashboard view
resources/js/pages/dashboard.tsx
Learning journey
- Learning paths
app/Http/Controllers/LearningPathController.php - Path views
resources/js/pages/learning-paths.tsx - Path detail
resources/js/pages/learning-path-detail.tsx - Lesson delivery
app/Http/Controllers/LessonController.php - Lesson view
resources/js/pages/lesson.tsx - Curriculum models
app/Models/LearningPath.php
Security labs
- Lab catalog
app/Http/Controllers/LabController.php - Lab simulation
app/Http/Controllers/LabSimulationController.php - Simulation runtime
app/Services/Labs/SimulationLabRuntime.php - Vulnerability simulators
app/Services/Labs/Simulators/SqlInjectionAuthenticationBypassSimulator.php - Lab pages
resources/js/pages/labs.tsx - Lab workspace
resources/js/pages/lab-workspace.tsx
Progress and awards
- Progress calculations
app/Services/LearningProgressService.php - Lesson progress
app/Http/Controllers/LessonProgressController.php - Progress summary
app/Http/Controllers/ProgressController.php - Progress view
resources/js/pages/progress.tsx - Achievements
app/Http/Controllers/AchievementController.php - Award logic
app/Services/AchievementService.php - Achievement view
resources/js/pages/achievements.tsx
Accounts
- Profile settings
app/Http/Controllers/Settings/ProfileController.php - Security settings
app/Http/Controllers/Settings/SecurityController.php - Authentication setup
app/Providers/FortifyServiceProvider.php - User account
app/Models/User.php
Other components
- Learner
- Application database
config/database.php
Connections 38
- Learner → Web routes: sends requests
- Web routes → Dashboard: dispatches
- Web routes → Learning paths: dispatches
- Web routes → Lesson delivery: dispatches
- Web routes → Lesson progress: dispatches
- Web routes → Lab catalog: dispatches
- Web routes → Lab simulation: dispatches
- Web routes → Progress summary: dispatches
- Web routes → Achievements: dispatches
- Web routes → Profile settings: dispatches
- Web routes → Security settings: dispatches
- Inertia client → HTML shell: mounts through
- Dashboard → Progress calculations: calculates overview
- Dashboard → Dashboard view: renders props
- Learning paths → Progress calculations: calculates path state
- Learning paths → Path views: renders props
- Learning paths → Path detail: renders props
- Learning paths → Curriculum models: loads curriculum
- Lesson delivery → Lesson view: renders lesson
- Lesson progress → Progress calculations: updates progress
- Progress summary → Progress calculations: calculates summary
- Progress summary → Progress view: renders props
- Achievements → Award logic: checks awards
- Achievements → Achievement view: renders props
- Lab catalog → Lab pages: renders catalog
- Lab simulation → Simulation runtime: runs simulation
- Simulation runtime → Vulnerability simulators: dispatches simulation
- Lab simulation → Lab workspace: returns results
- Profile settings → User account: updates account
- Security settings → User account: updates credentials
- Authentication setup → User account: configures authentication
- Dashboard → Application database: reads records
- Learning paths → Application database: reads curriculum
- Progress calculations → Application database: reads progress
- Lesson progress → Application database: persists progress
- Lab simulation → Application database: persists lab state
- Award logic → Application database: stores awards
- User account → Application database: persists account