How cultura15/cyberkids works
CyberKids pairs a teacher-facing classroom dashboard with Roblox cybersecurity activities for students. Teachers authenticate, organize classes, configure game access and create tasks; students join by class code, retrieve active scenarios, play activities, and report performance. The backend supports feedback, rankings, classroom progress and real-time status/notification features. Source excerpts establish selected authentication, class, scenario, student and leaderboard behavior; several other documented capabilities are represented at subsystem level because their implementations were not sampled.
Main entry points: App.js Web app routes · ScenarioService.java Scenario management · Auth Login and signup · WebSocketManager.jsx Status listener
Components 24
Teacher dashboard
- Web app routes
frontend/src/App.js - Dashboard pages
frontend/src/pages/Dashboard - Login and signup
frontend/src/pages/Auth - Status listener
frontend/src/archive/Class/WebSocketManager.jsx
Identity and access
- JWT authentication
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/JWT/AuthController.java - Auth service
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/JWT/AuthService.java - Teacher records
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Repository/TeacherRepo.java - Microsoft OAuth callback
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/MsTeams/OAuthController.java
Classroom operations
- Class API
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Controller/ClassController.java - Class management
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Service/ClassService.java - Class records
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Repository/ClassRepo.java
Game learning services
- Student and game API
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Controller/StudentController.java - Scenario management
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Service/ScenarioService.java - Scenario records
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Repository/ScenarioRepository.java - AI feedback
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Service/AIService.java
Progress and updates
- Score API
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Controller/ScoreController.java - Level rankings
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Leaderboard - Combined rankings
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Leaderboard/Global/GlobalService.java - Live class updates
backend/CyberKids/src/main/java/capstone/cyberkids/CyberKids/Config/WebSocketConfig.java
Other components
- Teacher
- Student
- Roblox game
- Microsoft OAuth
- AI provider
Connections 22
- Teacher → Web app routes: uses
- Web app routes → Login and signup: routes to
- Web app routes → Dashboard pages: routes to
- Login and signup → JWT authentication: authenticates
- JWT authentication → Auth service: calls
- Auth service → Teacher records: reads
- Microsoft OAuth → Microsoft OAuth callback: authenticates
- Teacher → Class API: manages classes
- Class API → Class management: calls
- Class management → Class records: reads/writes
- Student → Roblox game: plays
- Roblox game → Student and game API: requests game data
- Student and game API → Scenario management: calls
- Scenario management → Scenario records: reads
- Scenario management → AI feedback: requests feedback
- AI feedback → AI provider: generates feedback
- Roblox game → Score API: reports scores
- Score API → Level rankings: records results
- Level rankings → Combined rankings: rebuilds rankings
- Combined rankings → Class records: checks class ownership
- Status listener → Live class updates: subscribes
- Live class updates → Status listener: dispatches status events