# cybirdsecurity/cissp architecture

> Architecture diagram of the GitHub repository cybirdsecurity/cissp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cybirdsecurity/cissp
- Repository: https://github.com/cybirdsecurity/cissp

## Overview

CyBird Security is a browser-based CISSP study tool. Learners study topic guides and flashcards, practice with quizzes or timed mock exams, review feedback, and track readiness and progress. The source shows localStorage-backed progress and YAML loading, while the README documents the product’s major study modes and dashboard. The entry-point wiring and several component-to-data relationships were not shown, so those connections are omitted; the README also describes a different frontend stack than the supplied source tree.

Main entry points: [`index.html`](https://github.com/cybirdsecurity/cissp/blob/main/index.html) (Study Tool), [`utils/loader.js`](https://github.com/cybirdsecurity/cissp/blob/main/utils/loader.js) (YAML Loader), [`utils/progress.js`](https://github.com/cybirdsecurity/cissp/blob/main/utils/progress.js) (Progress Tracking), [`components/flashcard.js`](https://github.com/cybirdsecurity/cissp/blob/main/components/flashcard.js) (Flashcards)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_study["Study Materials"]
  node_guide["Study Guide<br/>[studyGuide.js]"]
  node_flashcards["Flashcards<br/>[flashcard.js]"]
end

subgraph group_practice["Practice Modes"]
  node_quiz["Practice Quiz<br/>[quiz.js]"]
  node_interactive["Interactive Questions<br/>[interactive.js]"]
  node_mockexam["Mock Exam<br/>[mockExam.js]"]
  node_feedback["Answer Feedback<br/>[feedback.js]"]
  node_engine["Quiz Engine<br/>[quizEngine.js]"]
end

subgraph group_state["Progress and Readiness"]
  node_progress[("Progress Tracking<br/>[progress.js]")]
  node_readiness["Readiness Scoring<br/>[readiness.js]"]
end

subgraph group_content["Content Loading"]
  node_loader["YAML Loader<br/>[loader.js]"]
  node_domains["Domain Content<br/>[domains.yml]"]
  node_flashcarddata["Flashcard Banks"]
  node_questiondata["Question Banks"]
  node_interactivedata["Interactive Banks"]
  node_topics["Topic Guides"]
end

node_learner(("Learner"))
node_app["Study Tool<br/>[index.html]"]

node_learner -->|"uses"| node_app
node_app -->|"offers study guides"| node_guide
node_app -->|"offers flashcards"| node_flashcards
node_app -->|"offers quizzes"| node_quiz
node_app -->|"offers exam practice"| node_mockexam
node_app -->|"tracks progress"| node_progress
node_quiz -->|"renders"| node_interactive
node_interactive -->|"checks answers"| node_engine
node_mockexam -->|"selects questions"| node_engine
node_mockexam -->|"updates session"| node_progress
node_flashcards -->|"records review"| node_progress
node_flashcards -->|"shuffles cards"| node_engine
node_guide -->|"reads study status"| node_progress
node_readiness -->|"reads statistics"| node_progress
node_loader -->|"loads YAML"| node_domains
node_loader -->|"loads YAML"| node_flashcarddata
node_loader -->|"loads YAML"| node_questiondata
node_loader -->|"loads YAML"| node_interactivedata
node_loader -->|"loads YAML"| node_topics

click node_app "https://github.com/cybirdsecurity/cissp/blob/main/index.html"
click node_guide "https://github.com/cybirdsecurity/cissp/blob/main/components/studyGuide.js"
click node_flashcards "https://github.com/cybirdsecurity/cissp/blob/main/components/flashcard.js"
click node_quiz "https://github.com/cybirdsecurity/cissp/blob/main/components/quiz.js"
click node_interactive "https://github.com/cybirdsecurity/cissp/blob/main/components/interactive.js"
click node_mockexam "https://github.com/cybirdsecurity/cissp/blob/main/components/mockExam.js"
click node_feedback "https://github.com/cybirdsecurity/cissp/blob/main/components/feedback.js"
click node_engine "https://github.com/cybirdsecurity/cissp/blob/main/utils/quizEngine.js"
click node_progress "https://github.com/cybirdsecurity/cissp/blob/main/utils/progress.js"
click node_readiness "https://github.com/cybirdsecurity/cissp/blob/main/utils/readiness.js"
click node_loader "https://github.com/cybirdsecurity/cissp/blob/main/utils/loader.js"
click node_domains "https://github.com/cybirdsecurity/cissp/blob/main/data/domains.yml"
click node_flashcarddata "https://github.com/cybirdsecurity/cissp/tree/main/data/flashcards"
click node_questiondata "https://github.com/cybirdsecurity/cissp/tree/main/data/questions"
click node_interactivedata "https://github.com/cybirdsecurity/cissp/tree/main/data/interactive"
click node_topics "https://github.com/cybirdsecurity/cissp/tree/main/data/topics"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_guide,node_flashcards toneBlue
class node_quiz,node_interactive,node_mockexam,node_feedback,node_engine toneAmber
class node_progress,node_readiness toneMint
class node_loader,node_domains,node_flashcarddata,node_questiondata,node_interactivedata,node_topics toneRose
class node_learner toneIndigo
class node_app toneTeal
```

## Components

### Study Materials

- [Study Guide](https://github.com/cybirdsecurity/cissp/blob/main/components/studyGuide.js): `components/studyGuide.js`
- [Flashcards](https://github.com/cybirdsecurity/cissp/blob/main/components/flashcard.js): `components/flashcard.js`

### Practice Modes

- [Practice Quiz](https://github.com/cybirdsecurity/cissp/blob/main/components/quiz.js): `components/quiz.js`
- [Interactive Questions](https://github.com/cybirdsecurity/cissp/blob/main/components/interactive.js): `components/interactive.js`
- [Mock Exam](https://github.com/cybirdsecurity/cissp/blob/main/components/mockExam.js): `components/mockExam.js`
- [Answer Feedback](https://github.com/cybirdsecurity/cissp/blob/main/components/feedback.js): `components/feedback.js`
- [Quiz Engine](https://github.com/cybirdsecurity/cissp/blob/main/utils/quizEngine.js): `utils/quizEngine.js`

### Progress and Readiness

- [Progress Tracking](https://github.com/cybirdsecurity/cissp/blob/main/utils/progress.js): `utils/progress.js`
- [Readiness Scoring](https://github.com/cybirdsecurity/cissp/blob/main/utils/readiness.js): `utils/readiness.js`

### Content Loading

- [YAML Loader](https://github.com/cybirdsecurity/cissp/blob/main/utils/loader.js): `utils/loader.js`
- [Domain Content](https://github.com/cybirdsecurity/cissp/blob/main/data/domains.yml): `data/domains.yml`
- [Flashcard Banks](https://github.com/cybirdsecurity/cissp/tree/main/data/flashcards): `data/flashcards`
- [Question Banks](https://github.com/cybirdsecurity/cissp/tree/main/data/questions): `data/questions`
- [Interactive Banks](https://github.com/cybirdsecurity/cissp/tree/main/data/interactive): `data/interactive`
- [Topic Guides](https://github.com/cybirdsecurity/cissp/tree/main/data/topics): `data/topics`

### Other components

- **Learner**
- [Study Tool](https://github.com/cybirdsecurity/cissp/blob/main/index.html): `index.html`

## Connections

- Learner → Study Tool: uses (evidence: `README.md`)
- Study Tool → Study Guide: offers study guides (evidence: `README.md`)
- Study Tool → Flashcards: offers flashcards (evidence: `README.md`)
- Study Tool → Practice Quiz: offers quizzes (evidence: `README.md`)
- Study Tool → Mock Exam: offers exam practice (evidence: `README.md`)
- Study Tool → Progress Tracking: tracks progress (evidence: `README.md`)
- Practice Quiz → Interactive Questions: renders (evidence: `components/quiz.js`)
- Interactive Questions → Quiz Engine: checks answers (evidence: `components/interactive.js`)
- Mock Exam → Quiz Engine: selects questions (evidence: `components/mockExam.js`)
- Mock Exam → Progress Tracking: updates session (evidence: `components/mockExam.js`)
- Flashcards → Progress Tracking: records review (evidence: `components/flashcard.js`)
- Flashcards → Quiz Engine: shuffles cards (evidence: `components/flashcard.js`)
- Study Guide → Progress Tracking: reads study status (evidence: `components/studyGuide.js`)
- Readiness Scoring → Progress Tracking: reads statistics (evidence: `utils/readiness.js`)
- YAML Loader → Domain Content: loads YAML (evidence: `utils/loader.js`)
- YAML Loader → Flashcard Banks: loads YAML (evidence: `utils/loader.js`)
- YAML Loader → Question Banks: loads YAML (evidence: `utils/loader.js`)
- YAML Loader → Interactive Banks: loads YAML (evidence: `utils/loader.js`)
- YAML Loader → Topic Guides: loads YAML (evidence: `utils/loader.js`)
