# cyberedwardafist/cibn-prestise architecture

> Architecture diagram of the GitHub repository cyberedwardafist/cibn-prestise, 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/cyberedwardafist/cibn-prestise
- Repository: https://github.com/cyberedwardafist/cibn-prestise

## Overview

CIBN PRESTISE is a role-based online exam platform. Its main workflow is admin exam setup, participant token-based timed completion and submission, then teacher review and analysis. The graph also captures account/payment entry points and mentoring schedules. README documents broader admin capabilities; unsampled modules are represented only at supported directory paths, so their internal wiring is not inferred.

Main entry points: [`server.js`](https://github.com/cyberedwardafist/cibn-prestise/blob/main/server.js) (Express API), [`js/api.js`](https://github.com/cyberedwardafist/cibn-prestise/blob/main/js/api.js) (Dashboard API client), [`admin/soal`](https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/soal) (Question authoring), [`public/assets2/js/auth.js`](https://github.com/cyberedwardafist/cibn-prestise/blob/main/public/assets2/js/auth.js) (Sign in and signup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Public Entry"]
  node_public_auth["Sign in and signup<br/>[auth.js]"]
  node_payment["Package payment<br/>[pembayaran.js]"]
end

subgraph group_admin["Administration"]
  node_admin_accounts["Account management"]
  node_question_authoring["Question authoring"]
  node_module_management["Modules and packages"]
  node_token_management["Exam tokens<br/>[token.js]"]
  node_admin_analysis["Exam analytics"]
  node_admin_services["Admin services"]
end

subgraph group_exam["Exam and Review"]
  node_exam_runner["Timed exam and results<br/>[hasil.js]"]
  node_teacher_review["Review and reports<br/>[riwayat.js]"]
  node_mentoring_schedule["Mentoring schedules<br/>[jadwal.js]"]
  node_teacher_schedule["Teacher scheduling<br/>[jadwal.js]"]
end

subgraph group_platform["Platform Services"]
  node_api_client["Dashboard API client<br/>[api.js]"]
  node_server["Express API<br/>[server.js]"]
  node_database_pool["PostgreSQL connection<br/>[pool.js]"]
  node_database[("Platform data")]
  node_email_service["Email delivery<br/>[mailer.js]"]
  node_tts_service["Speech generation<br/>[edge-tts.js]"]
  node_voicebox["Local voicebox<br/>[voicebox-client.js]"]
end

node_candidate(("Participant"))
node_teacher(("Teacher"))
node_administrator(("Administrator"))

node_candidate -->|"signs in"| node_public_auth
node_public_auth -->|"authenticates"| node_server
node_candidate -->|"selects package"| node_payment
node_payment -->|"requests payment"| node_server
node_administrator -->|"manages accounts"| node_admin_accounts
node_administrator -->|"creates questions"| node_question_authoring
node_administrator -->|"configures exams"| node_module_management
node_administrator -->|"issues tokens"| node_token_management
node_administrator -->|"reviews analytics"| node_admin_analysis
node_administrator -->|"manages services"| node_admin_services
node_admin_accounts -->|"requests data"| node_api_client
node_question_authoring -->|"requests data"| node_api_client
node_module_management -->|"requests data"| node_api_client
node_token_management -->|"requests data"| node_api_client
node_admin_analysis -->|"requests analysis"| node_api_client
node_api_client -->|"sends API requests"| node_server
node_candidate -->|"takes exam"| node_exam_runner
node_exam_runner -->|"submits answers"| node_server
node_teacher -->|"reviews results"| node_teacher_review
node_teacher_review -->|"fetches reports"| node_server
node_candidate -->|"requests sessions"| node_mentoring_schedule
node_mentoring_schedule -->|"loads and saves"| node_server
node_teacher -->|"manages availability"| node_teacher_schedule
node_teacher_schedule -->|"loads and saves"| node_server
node_server -->|"queries through"| node_database_pool
node_database_pool -->|"reads and writes"| node_database
node_server -.->|"sends mail"| node_email_service
node_server -.->|"generates speech"| node_tts_service
node_question_authoring -.->|"requests local audio"| node_voicebox

click node_public_auth "https://github.com/cyberedwardafist/cibn-prestise/blob/main/public/assets2/js/auth.js"
click node_payment "https://github.com/cyberedwardafist/cibn-prestise/blob/main/public/assets2/js/pembayaran.js"
click node_admin_accounts "https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/akun"
click node_question_authoring "https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/soal"
click node_module_management "https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/management"
click node_token_management "https://github.com/cyberedwardafist/cibn-prestise/blob/main/admin/cat/token.js"
click node_admin_analysis "https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/analisa"
click node_admin_services "https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin"
click node_exam_runner "https://github.com/cyberedwardafist/cibn-prestise/blob/main/ujian/hasil.js"
click node_teacher_review "https://github.com/cyberedwardafist/cibn-prestise/blob/main/review/riwayat/riwayat.js"
click node_mentoring_schedule "https://github.com/cyberedwardafist/cibn-prestise/blob/main/user/jadwal/jadwal.js"
click node_teacher_schedule "https://github.com/cyberedwardafist/cibn-prestise/blob/main/review/jadwal/jadwal.js"
click node_api_client "https://github.com/cyberedwardafist/cibn-prestise/blob/main/js/api.js"
click node_server "https://github.com/cyberedwardafist/cibn-prestise/blob/main/server.js"
click node_database_pool "https://github.com/cyberedwardafist/cibn-prestise/blob/main/db/pool.js"
click node_email_service "https://github.com/cyberedwardafist/cibn-prestise/blob/main/lib/mailer.js"
click node_tts_service "https://github.com/cyberedwardafist/cibn-prestise/blob/main/lib/edge-tts.js"
click node_voicebox "https://github.com/cyberedwardafist/cibn-prestise/blob/main/admin/soal/voicebox-client.js"

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_public_auth,node_payment toneBlue
class node_admin_accounts,node_question_authoring,node_module_management,node_token_management,node_admin_analysis,node_admin_services toneAmber
class node_exam_runner,node_teacher_review,node_mentoring_schedule,node_teacher_schedule toneMint
class node_api_client,node_server,node_database_pool,node_database,node_email_service,node_tts_service,node_voicebox toneRose
class node_candidate,node_teacher,node_administrator toneIndigo
```

## Components

### Public Entry

- [Sign in and signup](https://github.com/cyberedwardafist/cibn-prestise/blob/main/public/assets2/js/auth.js): `public/assets2/js/auth.js`
- [Package payment](https://github.com/cyberedwardafist/cibn-prestise/blob/main/public/assets2/js/pembayaran.js): `public/assets2/js/pembayaran.js`

### Administration

- [Account management](https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/akun): `admin/akun`
- [Question authoring](https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/soal): `admin/soal`
- [Modules and packages](https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/management): `admin/management`
- [Exam tokens](https://github.com/cyberedwardafist/cibn-prestise/blob/main/admin/cat/token.js): `admin/cat/token.js`
- [Exam analytics](https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin/analisa): `admin/analisa`
- [Admin services](https://github.com/cyberedwardafist/cibn-prestise/tree/main/admin): `admin`

### Exam and Review

- [Timed exam and results](https://github.com/cyberedwardafist/cibn-prestise/blob/main/ujian/hasil.js): `ujian/hasil.js`
- [Review and reports](https://github.com/cyberedwardafist/cibn-prestise/blob/main/review/riwayat/riwayat.js): `review/riwayat/riwayat.js`
- [Mentoring schedules](https://github.com/cyberedwardafist/cibn-prestise/blob/main/user/jadwal/jadwal.js): `user/jadwal/jadwal.js`
- [Teacher scheduling](https://github.com/cyberedwardafist/cibn-prestise/blob/main/review/jadwal/jadwal.js): `review/jadwal/jadwal.js`

### Platform Services

- [Dashboard API client](https://github.com/cyberedwardafist/cibn-prestise/blob/main/js/api.js): `js/api.js`
- [Express API](https://github.com/cyberedwardafist/cibn-prestise/blob/main/server.js): `server.js`
- [PostgreSQL connection](https://github.com/cyberedwardafist/cibn-prestise/blob/main/db/pool.js): `db/pool.js`
- **Platform data**
- [Email delivery](https://github.com/cyberedwardafist/cibn-prestise/blob/main/lib/mailer.js): `lib/mailer.js`
- [Speech generation](https://github.com/cyberedwardafist/cibn-prestise/blob/main/lib/edge-tts.js): `lib/edge-tts.js`
- [Local voicebox](https://github.com/cyberedwardafist/cibn-prestise/blob/main/admin/soal/voicebox-client.js): `admin/soal/voicebox-client.js`

### Other components

- **Participant**
- **Teacher**
- **Administrator**

## Connections

- Participant → Sign in and signup: signs in
- Sign in and signup → Express API: authenticates
- Participant → Package payment: selects package
- Package payment → Express API: requests payment
- Administrator → Account management: manages accounts
- Administrator → Question authoring: creates questions
- Administrator → Modules and packages: configures exams
- Administrator → Exam tokens: issues tokens
- Administrator → Exam analytics: reviews analytics
- Administrator → Admin services: manages services
- Account management → Dashboard API client: requests data
- Question authoring → Dashboard API client: requests data
- Modules and packages → Dashboard API client: requests data
- Exam tokens → Dashboard API client: requests data
- Exam analytics → Dashboard API client: requests analysis
- Dashboard API client → Express API: sends API requests
- Participant → Timed exam and results: takes exam
- Timed exam and results → Express API: submits answers
- Teacher → Review and reports: reviews results
- Review and reports → Express API: fetches reports
- Participant → Mentoring schedules: requests sessions
- Mentoring schedules → Express API: loads and saves
- Teacher → Teacher scheduling: manages availability
- Teacher scheduling → Express API: loads and saves
- Express API → PostgreSQL connection: queries through
- PostgreSQL connection → Platform data: reads and writes
- Express API → Email delivery: sends mail
- Express API → Speech generation: generates speech
- Question authoring → Local voicebox: requests local audio
