# lokesh0018/ht-generator architecture

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

- Interactive diagram: https://gitdiagram.com/lokesh0018/ht-generator
- Repository: https://github.com/lokesh0018/ht-generator

## Overview

HTG is an examination hall-ticket management system with React role-based interfaces and a Spring Boot API. Users select a login role or request a student OTP; admins manage exams, students, invigilators, hall tickets, and settings, while invigilators access their own workflow. Student OTP verification produces a hall-ticket payload with a generated QR code; exam schedules can also be emailed. The sampled services show repository persistence and email/QR behavior. Some controllers and UI screens were not sampled, so their detailed links are omitted or shown as unverified.

Main entry points: [`SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java`](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java) (OTP and ticket service), [`SpringBoot/API/htg/src/main/java/com/api/htg/Repository/StudentJpa.java`](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Repository/StudentJpa.java) (Student repository), [`React/ui/src/App.js`](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/App.js) (Route application), [`SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java`](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java) (Exam scheduling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["React user interface"]
  node_app["Route application<br/>[App.js]"]
  node_loginui["Role login<br/>[Login.js]"]
  node_adminui["Admin console<br/>[Admin.js]"]
  node_examui["Exam management<br/>[Exams.js]"]
  node_studentui["Student management<br/>[Students.js]"]
  node_ticketui["Hall-ticket screens<br/>[HallTicket.js]"]
  node_invigui["Invigilator screens<br/>[Home.js]"]
end

subgraph group_api["Spring API and services"]
  node_loginapi["Login API"]
  node_loginservice["Login verification<br/>[LoginService.java]"]
  node_homeapi["Student home API"]
  node_homeservice["OTP and ticket service<br/>[HomeService.java]"]
  node_examapi["Exam API"]
  node_examservice["Exam scheduling<br/>[ExamsService.java]"]
  node_studentservice["Student administration"]
  node_invigservice["Invigilator administration"]
  node_adminservice["Admin settings and mail<br/>[AdminService.java]"]
end

subgraph group_data["Domain and persistence"]
  node_studentdata[("Student records<br/>[StudentEntity.java]")]
  node_examdata[("Exam records<br/>[ExamsEntity.java]")]
  node_adminrepo["Admin repository<br/>[AdminJpa.java]"]
  node_studentrepo["Student repository<br/>[StudentJpa.java]"]
  node_examrepo["Exam repository<br/>[ExamsJpa.java]"]
end

subgraph group_integrations["External services"]
  node_mail["Mail delivery"]
  node_qr["QR encoding"]
end

node_user(("Browser user"))

node_user -->|"opens"| node_app
node_app -->|"routes to"| node_loginui
node_app -->|"routes to"| node_adminui
node_app -->|"routes to"| node_ticketui
node_adminui -->|"routes to"| node_examui
node_adminui -->|"routes to"| node_studentui
node_loginui -.->|"submits login"| node_loginapi
node_ticketui -.->|"requests ticket"| node_homeapi
node_examui -.->|"uses API"| node_examapi
node_studentui -.->|"uses API"| node_studentservice
node_invigui -.->|"uses API"| node_invigservice
node_loginapi -->|"delegates to"| node_loginservice
node_loginservice -->|"queries students"| node_studentrepo
node_loginservice -->|"queries admins"| node_adminrepo
node_homeapi -->|"delegates to"| node_homeservice
node_homeservice -->|"reads and saves"| node_studentrepo
node_homeservice -->|"reads settings"| node_adminrepo
node_homeservice -->|"gets timetable"| node_examservice
node_homeservice -->|"sends OTP"| node_mail
node_homeservice -->|"generates QR"| node_qr
node_homeservice -.->|"reads invigilator section"| node_invigservice
node_examapi -->|"delegates to"| node_examservice
node_examservice -->|"queries and saves"| node_examrepo
node_examservice -->|"requests schedule mail"| node_adminservice
node_studentservice -->|"manages students"| node_studentrepo
node_invigservice -->|"resets verification"| node_studentservice
node_invigservice -.->|"saves assignments"| node_studentrepo
node_adminservice -->|"reads students"| node_studentrepo
node_adminservice -->|"sends notifications"| node_mail
node_studentrepo -->|"persists"| node_studentdata
node_examrepo -->|"persists"| node_examdata

click node_app "https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/App.js"
click node_loginui "https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Home/Login/Login.js"
click node_adminui "https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Admin/Admin.js"
click node_examui "https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Admin/Exams/Exams.js"
click node_studentui "https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Admin/Students/Students.js"
click node_ticketui "https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Home/HallTicket/HallTicket.js"
click node_invigui "https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Invigilator/Home/Home.js"
click node_loginapi "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Controller/LoginController.java"
click node_loginservice "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/LoginService.java"
click node_homeapi "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Controller/HomeController.java"
click node_homeservice "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java"
click node_examapi "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Controller/ExamsController.java"
click node_examservice "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java"
click node_studentservice "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/StudentService.java"
click node_invigservice "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/InvigilatorService.java"
click node_adminservice "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/AdminService.java"
click node_studentdata "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Entity/StudentEntity.java"
click node_examdata "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Entity/ExamsEntity.java"
click node_adminrepo "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Repository/AdminJpa.java"
click node_studentrepo "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Repository/StudentJpa.java"
click node_examrepo "https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Repository/ExamsJpa.java"

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_app,node_loginui,node_adminui,node_examui,node_studentui,node_ticketui,node_invigui,node_user toneBlue
class node_loginapi,node_loginservice,node_homeapi,node_homeservice,node_examapi,node_examservice,node_studentservice,node_invigservice,node_adminservice toneAmber
class node_studentdata,node_examdata,node_adminrepo,node_studentrepo,node_examrepo toneMint
class node_mail,node_qr toneRose
```

## Components

### React user interface

- [Route application](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/App.js): `React/ui/src/App.js`
- [Role login](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Home/Login/Login.js): `React/ui/src/Home/Login/Login.js`
- [Admin console](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Admin/Admin.js): `React/ui/src/Admin/Admin.js`
- [Exam management](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Admin/Exams/Exams.js): `React/ui/src/Admin/Exams/Exams.js`
- [Student management](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Admin/Students/Students.js): `React/ui/src/Admin/Students/Students.js`
- [Hall-ticket screens](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Home/HallTicket/HallTicket.js): `React/ui/src/Home/HallTicket/HallTicket.js`
- [Invigilator screens](https://github.com/lokesh0018/ht-generator/blob/main/React/ui/src/Invigilator/Home/Home.js): `React/ui/src/Invigilator/Home/Home.js`

### Spring API and services

- [Login API](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Controller/LoginController.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Controller/LoginController.java`
- [Login verification](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/LoginService.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Service/LoginService.java`
- [Student home API](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Controller/HomeController.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Controller/HomeController.java`
- [OTP and ticket service](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java`
- [Exam API](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Controller/ExamsController.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Controller/ExamsController.java`
- [Exam scheduling](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java`
- [Student administration](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/StudentService.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Service/StudentService.java`
- [Invigilator administration](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/InvigilatorService.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Service/InvigilatorService.java`
- [Admin settings and mail](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Service/AdminService.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Service/AdminService.java`

### Domain and persistence

- [Student records](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Entity/StudentEntity.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Entity/StudentEntity.java`
- [Exam records](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Entity/ExamsEntity.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Entity/ExamsEntity.java`
- [Admin repository](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Repository/AdminJpa.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Repository/AdminJpa.java`
- [Student repository](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Repository/StudentJpa.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Repository/StudentJpa.java`
- [Exam repository](https://github.com/lokesh0018/ht-generator/blob/main/SpringBoot/API/htg/src/main/java/com/api/htg/Repository/ExamsJpa.java): `SpringBoot/API/htg/src/main/java/com/api/htg/Repository/ExamsJpa.java`

### External services

- **Mail delivery**
- **QR encoding**

### Other components

- **Browser user**

## Connections

- Browser user → Route application: opens (evidence: `React/ui/src/App.js`)
- Route application → Role login: routes to (evidence: `React/ui/src/App.js`)
- Route application → Admin console: routes to (evidence: `React/ui/src/App.js`)
- Route application → Hall-ticket screens: routes to (evidence: `React/ui/src/App.js`)
- Admin console → Exam management: routes to (evidence: `React/ui/src/Admin/Admin.js`)
- Admin console → Student management: routes to (evidence: `React/ui/src/Admin/Admin.js`)
- Role login → Login API: submits login
- Hall-ticket screens → Student home API: requests ticket
- Exam management → Exam API: uses API
- Student management → Student administration: uses API
- Invigilator screens → Invigilator administration: uses API
- Login API → Login verification: delegates to (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Controller/LoginController.java`)
- Login verification → Student repository: queries students (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/LoginService.java`)
- Login verification → Admin repository: queries admins (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/LoginService.java`)
- Student home API → OTP and ticket service: delegates to (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Controller/HomeController.java`)
- OTP and ticket service → Student repository: reads and saves (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java`)
- OTP and ticket service → Admin repository: reads settings (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java`)
- OTP and ticket service → Exam scheduling: gets timetable (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java`)
- OTP and ticket service → Mail delivery: sends OTP (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java`)
- OTP and ticket service → QR encoding: generates QR (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/HomeService.java`)
- OTP and ticket service → Invigilator administration: reads invigilator section
- Exam API → Exam scheduling: delegates to (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Controller/ExamsController.java`)
- Exam scheduling → Exam repository: queries and saves (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java`)
- Exam scheduling → Admin settings and mail: requests schedule mail (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java`)
- Student administration → Student repository: manages students (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/StudentService.java`)
- Invigilator administration → Student administration: resets verification (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/InvigilatorService.java`)
- Invigilator administration → Student repository: saves assignments
- Admin settings and mail → Student repository: reads students (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/AdminService.java`)
- Admin settings and mail → Mail delivery: sends notifications (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/AdminService.java`)
- Student repository → Student records: persists (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Repository/StudentJpa.java`)
- Exam repository → Exam records: persists (evidence: `SpringBoot/API/htg/src/main/java/com/api/htg/Service/ExamsService.java`)
