How subhani257/cyberguard_ai works
CyberGuard AI is a prototype for cybersecurity decision training: learners enter a situation, choose an action, explain their reasoning, and view a review. The implemented scenario API retrieves role-based policy context, sanitizes it, and asks an LLM to generate a scenario. The README describes broader evaluation, coaching, and adaptation capabilities, but the sampled backend does not implement those stages; the evaluation and dashboard views shown are frontend experiences. The graph omits unsupported frontend-to-API wiring and persistent storage. Source evidence is limited to the supplied tree, README excerpt, and sampled files.
Main entry points: scenario_routes.py Scenario Endpoint · app/page.tsx Landing Page · dashboard/page.tsx Dashboard · scenario/page.tsx Scenario Experience
Components 14
Learner Experience
- Landing Page
frontend/app/page.tsx - Dashboard
frontend/app/dashboard/page.tsx - Scenario Experience
frontend/app/scenario/page.tsx - Decision Card
frontend/components/ScenarioCard.tsx - Decision Review
frontend/app/evaluation/page.tsx - Admin Review
frontend/app/admin/page.tsx
Scenario Service
- FastAPI App
backend/main.py - Scenario Endpoint
backend/api/scenario_routes.py - Scenario Generator
backend/agents/scenario_agent.py
Context and Privacy
- Role Policy Context
backend/rag/retrieval.py - Input Sanitizer
backend/nlp/ner.py
Other components
- Learner
- OpenAI API
- API Client
Connections 13
- Learner → Landing Page: opens
- Landing Page → Dashboard: links to
- Dashboard → Scenario Experience: enters
- Scenario Experience → Decision Card: renders
- Decision Card → Decision Review: routes to
- Learner → Admin Review: reviews cases
- FastAPI App → Scenario Endpoint: mounts router
- API Client → Scenario Endpoint: requests scenario
- Scenario Endpoint → Role Policy Context: retrieves context
- Scenario Endpoint → Input Sanitizer: sanitizes context
- Scenario Endpoint → Scenario Generator: requests generation
- Scenario Generator → OpenAI API: generates JSON
- Scenario Endpoint → API Client: returns scenario