# muhammad512dev/paktest architecture

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

- Interactive diagram: https://gitdiagram.com/muhammad512dev/paktest
- Repository: https://github.com/muhammad512dev/paktest

## Overview

ExamForge/PakParcha AI is a multi-tenant exam and learning platform: users access public learning resources or sign in to school, teacher, student, and super-admin workspaces. The main evidenced workflow is curriculum and question management, exam-paper creation and delivery, then student exam-taking and teacher grading/results. The frontend data service communicates with the Express API, which uses Prisma-backed data and Redis caching. Major UI capabilities are represented, but unsampled component wiring and backend route details are not assumed.

Main entry points: [`src/services/dataService.ts`](https://github.com/muhammad512dev/paktest/blob/main/src/services/dataService.ts) (Data service), [`backend/src/server.ts`](https://github.com/muhammad512dev/paktest/blob/main/backend/src/server.ts) (Application API), [`src/App.tsx`](https://github.com/muhammad512dev/paktest/blob/main/src/App.tsx) (App routing), [`src/components/GeneratePaper.tsx`](https://github.com/muhammad512dev/paktest/blob/main/src/components/GeneratePaper.tsx) (Paper generation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry and public learning"]
  node_app["App routing<br/>[App.tsx]"]
  node_public["Public resources"]
  node_login["Sign-in<br/>[Login.tsx]"]
end

subgraph group_academics["Curriculum and exams"]
  node_curriculum["Curriculum management"]
  node_content["Content management<br/>[ContentManager.tsx]"]
  node_questions["Question bank<br/>[QuestionBank.tsx]"]
  node_generate["Paper generation<br/>[GeneratePaper.tsx]"]
  node_editor["Paper editing<br/>[PaperEditor.tsx]"]
  node_preview["Print preview<br/>[PrintPreview.tsx]"]
  node_student["Student exam portal"]
  node_grading["Exam grading<br/>[ExamGrading.tsx]"]
end

subgraph group_school["School operations"]
  node_schooladmin["School administration"]
  node_students["Student management<br/>[StudentManager.tsx]"]
  node_staff["Staff management<br/>[StaffManager.tsx]"]
  node_analytics["School analytics<br/>[Analytics.tsx]"]
  node_results["Results center<br/>[ResultCenter.tsx]"]
  node_admin["Platform administration"]
end

subgraph group_platform["Platform services"]
  node_service["Data service<br/>[dataService.ts]"]
  node_api["Application API<br/>[server.ts]"]
  node_db[("Prisma data store<br/>[server.ts]")]
  node_redis[("Redis cache<br/>[redis.ts]")]
  node_upload["File upload<br/>[server.ts]"]
end

node_users(("Learners and staff"))
node_storage[("Object storage")]
node_gemini{{"Gemini AI"}}

node_users -->|"browse or enter"| node_app
node_app -->|"shows public pages"| node_public
node_app -->|"routes sign-in"| node_login
node_login -->|"authenticates"| node_service
node_public -->|"loads content"| node_service
node_curriculum -->|"manages curriculum"| node_service
node_content -->|"manages resources"| node_service
node_questions -->|"manages questions"| node_service
node_generate -->|"requests exam data"| node_service
node_generate -.->|"requests AI assistance"| node_gemini
node_editor -->|"saves papers"| node_service
node_preview -->|"loads paper data"| node_service
node_student -->|"submits exam activity"| node_service
node_grading -->|"records grading"| node_service
node_schooladmin -->|"loads school data"| node_service
node_students -->|"manages students"| node_service
node_staff -->|"manages staff"| node_service
node_analytics -->|"loads metrics"| node_service
node_results -->|"loads results"| node_service
node_admin -->|"manages platform"| node_service
node_service -->|"sends API requests"| node_api
node_api -->|"reads and writes"| node_db
node_api -->|"gets or invalidates cache"| node_redis
node_api -->|"handles uploads"| node_upload
node_upload -.->|"stores files"| node_storage

click node_app "https://github.com/muhammad512dev/paktest/blob/main/src/App.tsx"
click node_public "https://github.com/muhammad512dev/paktest/tree/main/src/components/Public"
click node_login "https://github.com/muhammad512dev/paktest/blob/main/src/components/Login.tsx"
click node_service "https://github.com/muhammad512dev/paktest/blob/main/src/services/dataService.ts"
click node_api "https://github.com/muhammad512dev/paktest/blob/main/backend/src/server.ts"
click node_db "https://github.com/muhammad512dev/paktest/blob/main/backend/src/server.ts"
click node_redis "https://github.com/muhammad512dev/paktest/blob/main/backend/src/lib/redis.ts"
click node_upload "https://github.com/muhammad512dev/paktest/blob/main/backend/src/server.ts"
click node_curriculum "https://github.com/muhammad512dev/paktest/blob/main/src/components/SuperAdmin/CurriculumManager.tsx"
click node_content "https://github.com/muhammad512dev/paktest/blob/main/src/components/SuperAdmin/ContentManager.tsx"
click node_questions "https://github.com/muhammad512dev/paktest/blob/main/src/components/QuestionBank.tsx"
click node_generate "https://github.com/muhammad512dev/paktest/blob/main/src/components/GeneratePaper.tsx"
click node_editor "https://github.com/muhammad512dev/paktest/blob/main/src/components/PaperEditor.tsx"
click node_preview "https://github.com/muhammad512dev/paktest/blob/main/src/components/PrintPreview.tsx"
click node_student "https://github.com/muhammad512dev/paktest/blob/main/src/components/Student/OnlineExamPortal.tsx"
click node_grading "https://github.com/muhammad512dev/paktest/blob/main/src/components/Teacher/ExamGrading.tsx"
click node_schooladmin "https://github.com/muhammad512dev/paktest/blob/main/src/components/School/SchoolAdminDashboard.tsx"
click node_students "https://github.com/muhammad512dev/paktest/blob/main/src/components/School/StudentManager.tsx"
click node_staff "https://github.com/muhammad512dev/paktest/blob/main/src/components/School/StaffManager.tsx"
click node_analytics "https://github.com/muhammad512dev/paktest/blob/main/src/components/School/Analytics.tsx"
click node_results "https://github.com/muhammad512dev/paktest/blob/main/src/components/School/ResultCenter.tsx"
click node_admin "https://github.com/muhammad512dev/paktest/blob/main/src/components/SuperAdmin/SuperAdminDashboard.tsx"

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_public,node_login toneBlue
class node_curriculum,node_content,node_questions,node_generate,node_editor,node_preview,node_student,node_grading,node_storage toneAmber
class node_schooladmin,node_students,node_staff,node_analytics,node_results,node_admin toneMint
class node_service,node_api,node_db,node_redis,node_upload toneRose
class node_users,node_gemini toneIndigo
```

## Components

### App entry and public learning

- [App routing](https://github.com/muhammad512dev/paktest/blob/main/src/App.tsx): `src/App.tsx`
- [Public resources](https://github.com/muhammad512dev/paktest/tree/main/src/components/Public): `src/components/Public`
- [Sign-in](https://github.com/muhammad512dev/paktest/blob/main/src/components/Login.tsx): `src/components/Login.tsx`

### Curriculum and exams

- [Curriculum management](https://github.com/muhammad512dev/paktest/blob/main/src/components/SuperAdmin/CurriculumManager.tsx): `src/components/SuperAdmin/CurriculumManager.tsx`
- [Content management](https://github.com/muhammad512dev/paktest/blob/main/src/components/SuperAdmin/ContentManager.tsx): `src/components/SuperAdmin/ContentManager.tsx`
- [Question bank](https://github.com/muhammad512dev/paktest/blob/main/src/components/QuestionBank.tsx): `src/components/QuestionBank.tsx`
- [Paper generation](https://github.com/muhammad512dev/paktest/blob/main/src/components/GeneratePaper.tsx): `src/components/GeneratePaper.tsx`
- [Paper editing](https://github.com/muhammad512dev/paktest/blob/main/src/components/PaperEditor.tsx): `src/components/PaperEditor.tsx`
- [Print preview](https://github.com/muhammad512dev/paktest/blob/main/src/components/PrintPreview.tsx): `src/components/PrintPreview.tsx`
- [Student exam portal](https://github.com/muhammad512dev/paktest/blob/main/src/components/Student/OnlineExamPortal.tsx): `src/components/Student/OnlineExamPortal.tsx`
- [Exam grading](https://github.com/muhammad512dev/paktest/blob/main/src/components/Teacher/ExamGrading.tsx): `src/components/Teacher/ExamGrading.tsx`

### School operations

- [School administration](https://github.com/muhammad512dev/paktest/blob/main/src/components/School/SchoolAdminDashboard.tsx): `src/components/School/SchoolAdminDashboard.tsx`
- [Student management](https://github.com/muhammad512dev/paktest/blob/main/src/components/School/StudentManager.tsx): `src/components/School/StudentManager.tsx`
- [Staff management](https://github.com/muhammad512dev/paktest/blob/main/src/components/School/StaffManager.tsx): `src/components/School/StaffManager.tsx`
- [School analytics](https://github.com/muhammad512dev/paktest/blob/main/src/components/School/Analytics.tsx): `src/components/School/Analytics.tsx`
- [Results center](https://github.com/muhammad512dev/paktest/blob/main/src/components/School/ResultCenter.tsx): `src/components/School/ResultCenter.tsx`
- [Platform administration](https://github.com/muhammad512dev/paktest/blob/main/src/components/SuperAdmin/SuperAdminDashboard.tsx): `src/components/SuperAdmin/SuperAdminDashboard.tsx`

### Platform services

- [Data service](https://github.com/muhammad512dev/paktest/blob/main/src/services/dataService.ts): `src/services/dataService.ts`
- [Application API](https://github.com/muhammad512dev/paktest/blob/main/backend/src/server.ts): `backend/src/server.ts`
- [Prisma data store](https://github.com/muhammad512dev/paktest/blob/main/backend/src/server.ts): `backend/src/server.ts`
- [Redis cache](https://github.com/muhammad512dev/paktest/blob/main/backend/src/lib/redis.ts): `backend/src/lib/redis.ts`
- [File upload](https://github.com/muhammad512dev/paktest/blob/main/backend/src/server.ts): `backend/src/server.ts`

### Other components

- **Learners and staff**
- **Object storage**
- **Gemini AI**

## Connections

- Learners and staff → App routing: browse or enter
- App routing → Public resources: shows public pages
- App routing → Sign-in: routes sign-in
- Sign-in → Data service: authenticates
- Public resources → Data service: loads content
- Curriculum management → Data service: manages curriculum
- Content management → Data service: manages resources
- Question bank → Data service: manages questions
- Paper generation → Data service: requests exam data
- Paper generation → Gemini AI: requests AI assistance
- Paper editing → Data service: saves papers
- Print preview → Data service: loads paper data
- Student exam portal → Data service: submits exam activity
- Exam grading → Data service: records grading
- School administration → Data service: loads school data
- Student management → Data service: manages students
- Staff management → Data service: manages staff
- School analytics → Data service: loads metrics
- Results center → Data service: loads results
- Platform administration → Data service: manages platform
- Data service → Application API: sends API requests
- Application API → Prisma data store: reads and writes
- Application API → Redis cache: gets or invalidates cache
- Application API → File upload: handles uploads
- File upload → Object storage: stores files
