# hassraza/pakistan-institute-of-science-and-technology-pist- architecture

> Architecture diagram of the GitHub repository hassraza/pakistan-institute-of-science-and-technology-pist-, 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/hassraza/pakistan-institute-of-science-and-technology-pist-
- Repository: https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-

## Overview

PIST combines a public university and admissions site, a student self-service portal, an external admissions API, and a staff operations dashboard. The main workflow receives an application, checks eligibility, assigns a test session and roll slip, then exposes status and verification information. README capabilities supply the broader portal and admin scope; sampled service excerpts confirm eligibility, scheduling, and roll-number behavior, but do not show every view-to-service connection.

Main entry points: [`backend/admissions/services.py`](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py) (Application processing), [`backend/admissions/models.py`](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/models.py) (Applicant and test records), [`backend/admissions/integration/views.py`](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/integration/views.py) (External admissions API), [`backend/students/views.py`](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/students/views.py) (Student portal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public site"]
  node_browser_frontend["Website frontend<br/>[app.js]"]
  node_public_site["Public site views<br/>[views.py]"]
end

subgraph group_admissions["Admissions processing"]
  node_admissions_api["External admissions API<br/>[views.py]"]
  node_api_security["API key authentication<br/>[authentication.py]"]
  node_api_serializers["API serializers<br/>[serializers.py]"]
  node_application_processing["Application processing<br/>[services.py]"]
  node_eligibility["Eligibility checks<br/>[services.py]"]
  node_test_scheduling["Test scheduling<br/>[services.py]"]
  node_roll_slip["Roll number and slip<br/>[services.py]"]
end

subgraph group_student["Student portal"]
  node_student_views["Student portal<br/>[views.py]"]
  node_student_services["Student ID allocation<br/>[services.py]"]
end

subgraph group_staff["Staff operations"]
  node_staff_views["Staff dashboard<br/>[views.py]"]
  node_staff_services["Applicant exports<br/>[services.py]"]
end

subgraph group_data["Domain data"]
  node_catalog_data[("Campus and program catalog<br/>[models.py]")]
  node_application_data[("Applicant and test records<br/>[models.py]")]
  node_student_data[("Student records<br/>[models.py]")]
end

node_applicant(("Applicant"))
node_external_platform(("External platform"))
node_staff_user(("Admissions staff"))

node_applicant -->|"uses site"| node_browser_frontend
node_browser_frontend -->|"fetches site and tracking data"| node_public_site
node_public_site -->|"reads catalog"| node_catalog_data
node_public_site -->|"looks up applications"| node_application_data
node_external_platform -->|"submits applications"| node_admissions_api
node_admissions_api -->|"authenticates request"| node_api_security
node_admissions_api -->|"validates payload"| node_api_serializers
node_admissions_api -->|"processes application"| node_application_processing
node_application_processing -->|"checks eligibility"| node_eligibility
node_application_processing -->|"creates application and scores"| node_application_data
node_application_processing -->|"assigns session"| node_test_scheduling
node_application_processing -->|"issues roll slip"| node_roll_slip
node_eligibility -->|"reads academic records"| node_student_data
node_eligibility -->|"reads program requirements"| node_catalog_data
node_test_scheduling -->|"reads and updates sessions"| node_application_data
node_roll_slip -->|"stores roll assignment"| node_application_data
node_applicant -->|"registers and manages records"| node_student_views
node_student_views -->|"allocates student ID"| node_student_services
node_student_services -->|"updates ID sequence"| node_student_data
node_student_views -->|"reads and updates records"| node_student_data
node_student_views -->|"applies to programs"| node_application_processing
node_staff_user -->|"manages admissions"| node_staff_views
node_staff_views -->|"reviews and updates applicants"| node_application_data
node_staff_views -->|"requests exports"| node_staff_services
node_staff_services -->|"exports applicant data"| node_application_data

click node_browser_frontend "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/frontend/app.js"
click node_public_site "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/views.py"
click node_catalog_data "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/models.py"
click node_admissions_api "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/integration/views.py"
click node_api_security "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/integration/authentication.py"
click node_api_serializers "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/integration/serializers.py"
click node_application_processing "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py"
click node_eligibility "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py"
click node_test_scheduling "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py"
click node_roll_slip "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py"
click node_application_data "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/models.py"
click node_student_views "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/students/views.py"
click node_student_services "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/students/services.py"
click node_student_data "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/students/models.py"
click node_staff_views "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/university_admin/views.py"
click node_staff_services "https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/university_admin/services.py"

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_browser_frontend,node_public_site toneBlue
class node_admissions_api,node_api_security,node_api_serializers,node_application_processing,node_eligibility,node_test_scheduling,node_roll_slip toneAmber
class node_student_views,node_student_services toneMint
class node_staff_views,node_staff_services toneRose
class node_catalog_data,node_application_data,node_student_data,node_applicant,node_external_platform,node_staff_user toneIndigo
```

## Components

### Public site

- [Website frontend](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/frontend/app.js): `frontend/app.js`
- [Public site views](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/views.py): `backend/admissions/views.py`

### Admissions processing

- [External admissions API](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/integration/views.py): `backend/admissions/integration/views.py`
- [API key authentication](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/integration/authentication.py): `backend/admissions/integration/authentication.py`
- [API serializers](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/integration/serializers.py): `backend/admissions/integration/serializers.py`
- [Application processing](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py): `backend/admissions/services.py`
- [Eligibility checks](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py): `backend/admissions/services.py`
- [Test scheduling](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py): `backend/admissions/services.py`
- [Roll number and slip](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/services.py): `backend/admissions/services.py`

### Student portal

- [Student portal](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/students/views.py): `backend/students/views.py`
- [Student ID allocation](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/students/services.py): `backend/students/services.py`

### Staff operations

- [Staff dashboard](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/university_admin/views.py): `backend/university_admin/views.py`
- [Applicant exports](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/university_admin/services.py): `backend/university_admin/services.py`

### Domain data

- [Campus and program catalog](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/models.py): `backend/admissions/models.py`
- [Applicant and test records](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/admissions/models.py): `backend/admissions/models.py`
- [Student records](https://github.com/hassraza/pakistan-institute-of-science-and-technology-pist-/blob/main/backend/students/models.py): `backend/students/models.py`

### Other components

- **Applicant**
- **External platform**
- **Admissions staff**

## Connections

- Applicant → Website frontend: uses site
- Website frontend → Public site views: fetches site and tracking data
- Public site views → Campus and program catalog: reads catalog
- Public site views → Applicant and test records: looks up applications
- External platform → External admissions API: submits applications
- External admissions API → API key authentication: authenticates request
- External admissions API → API serializers: validates payload
- External admissions API → Application processing: processes application
- Application processing → Eligibility checks: checks eligibility
- Application processing → Applicant and test records: creates application and scores
- Application processing → Test scheduling: assigns session
- Application processing → Roll number and slip: issues roll slip
- Eligibility checks → Student records: reads academic records
- Eligibility checks → Campus and program catalog: reads program requirements
- Test scheduling → Applicant and test records: reads and updates sessions
- Roll number and slip → Applicant and test records: stores roll assignment
- Applicant → Student portal: registers and manages records
- Student portal → Student ID allocation: allocates student ID
- Student ID allocation → Student records: updates ID sequence
- Student portal → Student records: reads and updates records
- Student portal → Application processing: applies to programs
- Admissions staff → Staff dashboard: manages admissions
- Staff dashboard → Applicant and test records: reviews and updates applicants
- Staff dashboard → Applicant exports: requests exports
- Applicant exports → Applicant and test records: exports applicant data
