# gagishmagi/faze_quiz architecture

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

- Interactive diagram: https://gitdiagram.com/gagishmagi/faze_quiz
- Repository: https://github.com/gagishmagi/faze_quiz

## Overview

This is a Drupal-based quiz and course-management product. Teachers organize courses and students, build tasks from fixed or randomly selected questions, and students complete timed, step-by-step quizzes whose results are reviewed alongside course statistics. The graph preserves question management, course/task administration, quiz delivery and results, and query-building as distinct capabilities. Source excerpts support the quiz interaction and several browser-to-endpoint requests; wiring for other listed course features is inferred only from their module files and names, so uncertain connections are omitted.

Main entry points: [`faze_quiz_course/faze_quiz_course.module`](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/faze_quiz_course.module) (Course operations), [`faze_quiz_course/manage_question.inc`](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/manage_question.inc) (Question management), [`faze_quiz/init_quiz.js`](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/init_quiz.js) (Quiz interaction), [`faze_quiz_course/course_page.inc`](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/course_page.inc) (Course overview)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_course_admin["Course administration"]
  node_course_module["Course operations"]
  node_course_page["Course overview<br/>[course_page.inc]"]
  node_student_management["Student assignment"]
  node_task_builder["Task builder<br/>[add_task.inc]"]
  node_task_page["Task page<br/>[task_page.inc]"]
end

subgraph group_question_admin["Question management"]
  node_question_management["Question management"]
  node_question_table["Question table<br/>[question_table.inc]"]
  node_query_builder["Query building"]
end

subgraph group_quiz_runtime["Quiz delivery"]
  node_quiz_module["Quiz handling<br/>[faze_quiz.module]"]
  node_quiz_form["Quiz interaction<br/>[init_quiz.js]"]
  node_step_manager["Step navigation<br/>[step_by_step.js]"]
  node_quiz_results["Quiz results"]
  node_question_result["Question review"]
end

subgraph group_reporting["Results and reporting"]
  node_statistics["Course statistics"]
  node_course_report["Course report"]
end

node_teacher(("Teacher"))
node_student(("Student"))
node_drupal_content[("Drupal content")]

node_teacher -->|"views course"| node_course_page
node_teacher -->|"assigns students"| node_student_management
node_teacher -->|"configures task"| node_task_builder
node_teacher -->|"manages questions"| node_question_management
node_task_builder -->|"posts task data"| node_course_module
node_question_management -->|"posts question update"| node_course_module
node_student_management -->|"posts assignments"| node_course_module
node_course_module -->|"loads and saves"| node_drupal_content
node_quiz_form -->|"uses navigation"| node_step_manager
node_student -->|"answers questions"| node_quiz_form
node_quiz_form -->|"submits form"| node_quiz_module
node_quiz_module -->|"loads and saves"| node_drupal_content
node_quiz_results -->|"loads quiz"| node_drupal_content
node_question_result -->|"loads question"| node_drupal_content
node_course_page -->|"renders course data"| node_course_report
node_course_report -->|"displays statistics"| node_statistics
node_statistics -->|"reads quiz records"| node_drupal_content
node_question_management -->|"displays questions"| node_question_table

click node_course_module "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/faze_quiz_course.module"
click node_course_page "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/course_page.inc"
click node_student_management "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/manage_course_student.inc"
click node_task_builder "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/add_task.inc"
click node_task_page "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/task_page.inc"
click node_question_management "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/manage_question.inc"
click node_question_table "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/question_table.inc"
click node_query_builder "https://github.com/gagishmagi/faze_quiz/blob/master/faze_query_building/faze_query_building.module"
click node_quiz_module "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/faze_quiz.module"
click node_quiz_form "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/init_quiz.js"
click node_step_manager "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/step_by_step.js"
click node_quiz_results "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/theme/faze_quiz_completed.tpl.php"
click node_question_result "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/theme/faze_quiz_completed_question.tpl.php"
click node_statistics "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/statistics_function.inc"
click node_course_report "https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/theme/faze_quiz_course_course_page_theme.tpl.php"

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_course_module,node_course_page,node_student_management,node_task_builder,node_task_page toneBlue
class node_question_management,node_question_table,node_query_builder,node_drupal_content toneAmber
class node_quiz_module,node_quiz_form,node_step_manager,node_quiz_results,node_question_result toneMint
class node_statistics,node_course_report toneRose
class node_teacher,node_student toneIndigo
```

## Components

### Course administration

- [Course operations](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/faze_quiz_course.module): `faze_quiz_course/faze_quiz_course.module`
- [Course overview](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/course_page.inc): `faze_quiz_course/course_page.inc`
- [Student assignment](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/manage_course_student.inc): `faze_quiz_course/manage_course_student.inc`
- [Task builder](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/add_task.inc): `faze_quiz_course/add_task.inc`
- [Task page](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/task_page.inc): `faze_quiz_course/task_page.inc`

### Question management

- [Question management](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/manage_question.inc): `faze_quiz_course/manage_question.inc`
- [Question table](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/question_table.inc): `faze_quiz_course/question_table.inc`
- [Query building](https://github.com/gagishmagi/faze_quiz/blob/master/faze_query_building/faze_query_building.module): `faze_query_building/faze_query_building.module`

### Quiz delivery

- [Quiz handling](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/faze_quiz.module): `faze_quiz/faze_quiz.module`
- [Quiz interaction](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/init_quiz.js): `faze_quiz/init_quiz.js`
- [Step navigation](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/step_by_step.js): `faze_quiz/step_by_step.js`
- [Quiz results](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/theme/faze_quiz_completed.tpl.php): `faze_quiz/theme/faze_quiz_completed.tpl.php`
- [Question review](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz/theme/faze_quiz_completed_question.tpl.php): `faze_quiz/theme/faze_quiz_completed_question.tpl.php`

### Results and reporting

- [Course statistics](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/statistics_function.inc): `faze_quiz_course/statistics_function.inc`
- [Course report](https://github.com/gagishmagi/faze_quiz/blob/master/faze_quiz_course/theme/faze_quiz_course_course_page_theme.tpl.php): `faze_quiz_course/theme/faze_quiz_course_course_page_theme.tpl.php`

### Other components

- **Teacher**
- **Student**
- **Drupal content**

## Connections

- Teacher → Course overview: views course
- Teacher → Student assignment: assigns students
- Teacher → Task builder: configures task
- Teacher → Question management: manages questions
- Task builder → Course operations: posts task data
- Question management → Course operations: posts question update
- Student assignment → Course operations: posts assignments
- Course operations → Drupal content: loads and saves
- Quiz interaction → Step navigation: uses navigation
- Student → Quiz interaction: answers questions
- Quiz interaction → Quiz handling: submits form
- Quiz handling → Drupal content: loads and saves
- Quiz results → Drupal content: loads quiz
- Question review → Drupal content: loads question
- Course overview → Course report: renders course data
- Course report → Course statistics: displays statistics
- Course statistics → Drupal content: reads quiz records
- Question management → Question table: displays questions
