# manggaberani99-collab/lirecat architecture

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

- Interactive diagram: https://gitdiagram.com/manggaberani99-collab/lirecat
- Repository: https://github.com/manggaberani99-collab/lirecat

## Overview

This Laravel application appears to provide an adaptive language assessment with listening and reading sections, plus questionnaire, account, content-management, and reporting features. Examinees start or resume CAT sessions, submit responses, and review results; administrators and teachers manage accounts and assessment content and inspect exposure and final reports. Sampled CAT code calls an external ability-selection service, while the report controller summarizes stored sessions and responses. Routes and most controllers were not sampled, so uncertain dispatch and subsystem wiring are omitted.

Main entry points: [`config/database.php`](https://github.com/manggaberani99-collab/lirecat/blob/main/config/database.php) (Application database), [`app/Http/Controllers/CatController.php`](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/CatController.php) (Adaptive test), [`app/Http/Controllers/FinalReportController.php`](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/FinalReportController.php) (Final reports), [`app/Http/Controllers/UserAnswerController.php`](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/UserAnswerController.php) (Answer tracking)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_assessment["Assessment runtime"]
  node_cat["Adaptive test<br/>[CatController.php]"]
  node_answers["Answer tracking"]
  node_examsecurity["Exam security"]
  node_sessions["Test sessions<br/>[TestSessions.php]"]
  node_ability["Ability state<br/>[TempAbilities.php]"]
  node_plumber{{"CAT service"}}
end

subgraph group_management["Content and accounts"]
  node_accounts["Account access<br/>[AuthController.php]"]
  node_users["User management<br/>[UserController.php]"]
  node_questionnaire["Questionnaires"]
  node_listening["Listening content"]
  node_reading["Reading content"]
  node_stimuli["Stimulus content"]
end

subgraph group_insight["Reports and oversight"]
  node_reports["Final reports"]
  node_exposure["Item exposure"]
  node_dashboard["Dashboard"]
end

subgraph group_platform["Application platform"]
  node_database[("Application database<br/>[database.php]")]
  node_views["Web interface<br/>[index.blade.php]"]
  node_bootstrap["Request bootstrap<br/>[app.php]"]
end

node_examinee(("Examinee"))
node_staff(("Staff user"))

node_examinee -->|"starts or resumes"| node_cat
node_cat -->|"requests CAT step"| node_plumber
node_cat -->|"reads and writes sessions"| node_database
node_cat -->|"reads items and responses"| node_database
node_cat -->|"renders assessment"| node_views
node_examinee -->|"submits answers"| node_answers
node_answers -->|"records answers"| node_database
node_examinee -->|"uses protected exam"| node_examsecurity
node_staff -->|"authenticates"| node_accounts
node_staff -->|"manages accounts"| node_users
node_staff -->|"manages questionnaires"| node_questionnaire
node_staff -->|"manages questions"| node_listening
node_staff -->|"manages questions"| node_reading
node_staff -->|"manages stimuli"| node_stimuli
node_reports -->|"reads sessions and scores"| node_database
node_reports -->|"renders reports"| node_views
node_staff -->|"reviews results"| node_reports
node_exposure -->|"reads exposure data"| node_database
node_staff -->|"reviews item use"| node_exposure
node_dashboard -->|"reads dashboard data"| node_database
node_bootstrap -->|"registers web routes"| node_accounts

click node_cat "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/CatController.php"
click node_answers "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/UserAnswerController.php"
click node_examsecurity "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/ExamSecurityController.php"
click node_sessions "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Models/TestSessions.php"
click node_ability "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Models/TempAbilities.php"
click node_accounts "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/AuthController.php"
click node_users "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/UserController.php"
click node_questionnaire "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/QuestionnaireController.php"
click node_listening "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/QuestionListeningController.php"
click node_reading "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/QuestionReadingController.php"
click node_stimuli "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/StimulusListeningController.php"
click node_reports "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/FinalReportController.php"
click node_exposure "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/ItemExposureController.php"
click node_dashboard "https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/DashboardController.php"
click node_database "https://github.com/manggaberani99-collab/lirecat/blob/main/config/database.php"
click node_views "https://github.com/manggaberani99-collab/lirecat/blob/main/resources/views/pages/cat/index.blade.php"
click node_bootstrap "https://github.com/manggaberani99-collab/lirecat/blob/main/bootstrap/app.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_cat,node_answers,node_examsecurity,node_sessions,node_ability,node_plumber,node_staff toneBlue
class node_accounts,node_users,node_questionnaire,node_listening,node_reading,node_stimuli toneAmber
class node_reports,node_exposure,node_dashboard toneMint
class node_database,node_views,node_bootstrap toneRose
class node_examinee toneIndigo
```

## Components

### Assessment runtime

- [Adaptive test](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/CatController.php): `app/Http/Controllers/CatController.php`
- [Answer tracking](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/UserAnswerController.php): `app/Http/Controllers/UserAnswerController.php`
- [Exam security](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/ExamSecurityController.php): `app/Http/Controllers/ExamSecurityController.php`
- [Test sessions](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Models/TestSessions.php): `app/Models/TestSessions.php`
- [Ability state](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Models/TempAbilities.php): `app/Models/TempAbilities.php`
- **CAT service**

### Content and accounts

- [Account access](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/AuthController.php): `app/Http/Controllers/AuthController.php`
- [User management](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/UserController.php): `app/Http/Controllers/UserController.php`
- [Questionnaires](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/QuestionnaireController.php): `app/Http/Controllers/QuestionnaireController.php`
- [Listening content](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/QuestionListeningController.php): `app/Http/Controllers/QuestionListeningController.php`
- [Reading content](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/QuestionReadingController.php): `app/Http/Controllers/QuestionReadingController.php`
- [Stimulus content](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/StimulusListeningController.php): `app/Http/Controllers/StimulusListeningController.php`

### Reports and oversight

- [Final reports](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/FinalReportController.php): `app/Http/Controllers/FinalReportController.php`
- [Item exposure](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/ItemExposureController.php): `app/Http/Controllers/ItemExposureController.php`
- [Dashboard](https://github.com/manggaberani99-collab/lirecat/blob/main/app/Http/Controllers/DashboardController.php): `app/Http/Controllers/DashboardController.php`

### Application platform

- [Application database](https://github.com/manggaberani99-collab/lirecat/blob/main/config/database.php): `config/database.php`
- [Web interface](https://github.com/manggaberani99-collab/lirecat/blob/main/resources/views/pages/cat/index.blade.php): `resources/views/pages/cat/index.blade.php`
- [Request bootstrap](https://github.com/manggaberani99-collab/lirecat/blob/main/bootstrap/app.php): `bootstrap/app.php`

### Other components

- **Examinee**
- **Staff user**

## Connections

- Examinee → Adaptive test: starts or resumes
- Adaptive test → CAT service: requests CAT step
- Adaptive test → Application database: reads and writes sessions
- Adaptive test → Application database: reads items and responses
- Adaptive test → Web interface: renders assessment
- Examinee → Answer tracking: submits answers
- Answer tracking → Application database: records answers
- Examinee → Exam security: uses protected exam
- Staff user → Account access: authenticates
- Staff user → User management: manages accounts
- Staff user → Questionnaires: manages questionnaires
- Staff user → Listening content: manages questions
- Staff user → Reading content: manages questions
- Staff user → Stimulus content: manages stimuli
- Final reports → Application database: reads sessions and scores
- Final reports → Web interface: renders reports
- Staff user → Final reports: reviews results
- Item exposure → Application database: reads exposure data
- Staff user → Item exposure: reviews item use
- Dashboard → Application database: reads dashboard data
- Request bootstrap → Account access: registers web routes
