# princepal09/ieit---computer-institute architecture

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

- Interactive diagram: https://gitdiagram.com/princepal09/ieit---computer-institute
- Repository: https://github.com/princepal09/ieit---computer-institute

## Overview

This is a public-facing institute website with an administrative CMS. Visitors browse institute information and submit contact or course enquiries; administrators sign in to manage branches, courses, notices, gallery content, site settings, and incoming messages, and review dashboard summaries. The tree and sampled controllers show the backend’s service-oriented modules and Prisma integration; source for application routing and most frontend hooks/API calls was not sampled, so uncertain connections are omitted. Cloudinary and email services are present as integrations, but their complete call paths are not established here.

Main entry points: [`backend/src/app.ts`](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/app.ts) (HTTP application), [`backend/src/lib/prisma.ts`](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/lib/prisma.ts) (Database client), [`backend/src/modules/branch`](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/branch) (Branches), [`backend/src/modules/course`](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/course) (Courses)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web application"]
  node_public["Public pages"]
  node_adminui["Admin pages"]
end

subgraph group_content["Institute content"]
  node_branch["Branches"]
  node_course["Courses"]
  node_gallery["Gallery"]
  node_notice["Notices"]
  node_settings["Site settings"]
end

subgraph group_engagement["Enquiries and reporting"]
  node_contact["Contact messages"]
  node_enquiry["Course enquiries"]
  node_dashboard["Dashboard"]
end

subgraph group_backend["Backend services"]
  node_auth["Admin auth"]
  node_app["HTTP application<br/>[app.ts]"]
  node_branchcontroller["Branch controller"]
  node_coursecontroller["Course controller"]
  node_gallerycontroller["Gallery controller"]
  node_noticecontroller["Notice controller"]
  node_contactcontroller["Contact controller"]
  node_enquirycontroller["Enquiry controller"]
  node_dashboardcontroller["Dashboard controller"]
  node_settingscontroller["Settings controller"]
  node_prisma[("Database client<br/>[prisma.ts]")]
end

node_visitor(("Visitor"))
node_admin(("Administrator"))
node_cloudinary["Cloudinary"]
node_email["Email provider"]

node_visitor -->|"browses"| node_public
node_admin -->|"manages content"| node_adminui
node_adminui -->|"admin access"| node_auth
node_app -->|"dispatches"| node_branchcontroller
node_app -->|"dispatches"| node_coursecontroller
node_app -->|"dispatches"| node_gallerycontroller
node_app -->|"dispatches"| node_noticecontroller
node_app -->|"dispatches"| node_contactcontroller
node_app -->|"dispatches"| node_enquirycontroller
node_app -->|"dispatches"| node_dashboardcontroller
node_app -->|"dispatches"| node_settingscontroller
node_branchcontroller -->|"calls service"| node_branch
node_coursecontroller -->|"calls service"| node_course
node_gallerycontroller -->|"calls service"| node_gallery
node_noticecontroller -->|"calls service"| node_notice
node_contactcontroller -->|"calls service"| node_contact
node_enquirycontroller -->|"calls service"| node_enquiry
node_dashboardcontroller -->|"calls service"| node_dashboard
node_settingscontroller -->|"calls service"| node_settings
node_branch -->|"data access"| node_prisma
node_course -->|"data access"| node_prisma
node_gallery -->|"data access"| node_prisma
node_notice -->|"data access"| node_prisma
node_contact -->|"data access"| node_prisma
node_enquiry -->|"data access"| node_prisma
node_dashboard -->|"data access"| node_prisma
node_settings -->|"data access"| node_prisma
node_branch -.->|"image storage"| node_cloudinary
node_course -.->|"image storage"| node_cloudinary
node_gallery -.->|"image storage"| node_cloudinary
node_notice -.->|"image storage"| node_cloudinary
node_settings -.->|"image storage"| node_cloudinary
node_contact -.->|"email notices"| node_email
node_enquiry -.->|"email notices"| node_email

click node_public "https://github.com/princepal09/ieit---computer-institute/tree/main/frontend/src/pages/public"
click node_adminui "https://github.com/princepal09/ieit---computer-institute/tree/main/frontend/src/pages/admin"
click node_branch "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/branch"
click node_course "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/course"
click node_gallery "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/gallery"
click node_notice "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/notice"
click node_settings "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/siteSettings"
click node_contact "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/contact"
click node_enquiry "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/enquiry"
click node_dashboard "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/dashboard"
click node_auth "https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/auth"
click node_app "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/app.ts"
click node_branchcontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/branch/branch.controller.ts"
click node_coursecontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/course/course.controller.ts"
click node_gallerycontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/gallery/gallery.controller.ts"
click node_noticecontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/notice/notice.controller.ts"
click node_contactcontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/contact/contact.controller.ts"
click node_enquirycontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/enquiry/enquiry.controller.ts"
click node_dashboardcontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/dashboard/dashboard.controller.ts"
click node_settingscontroller "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/siteSettings/siteSettings.controller.ts"
click node_prisma "https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/lib/prisma.ts"

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,node_adminui toneBlue
class node_branch,node_course,node_gallery,node_notice,node_settings toneAmber
class node_contact,node_enquiry,node_dashboard toneMint
class node_auth,node_app,node_branchcontroller,node_coursecontroller,node_gallerycontroller,node_noticecontroller,node_contactcontroller,node_enquirycontroller,node_dashboardcontroller,node_settingscontroller,node_prisma toneRose
class node_visitor,node_admin,node_cloudinary,node_email toneIndigo
```

## Components

### Web application

- [Public pages](https://github.com/princepal09/ieit---computer-institute/tree/main/frontend/src/pages/public): `frontend/src/pages/public`
- [Admin pages](https://github.com/princepal09/ieit---computer-institute/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`

### Institute content

- [Branches](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/branch): `backend/src/modules/branch`
- [Courses](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/course): `backend/src/modules/course`
- [Gallery](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/gallery): `backend/src/modules/gallery`
- [Notices](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/notice): `backend/src/modules/notice`
- [Site settings](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/siteSettings): `backend/src/modules/siteSettings`

### Enquiries and reporting

- [Contact messages](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/contact): `backend/src/modules/contact`
- [Course enquiries](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/enquiry): `backend/src/modules/enquiry`
- [Dashboard](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/dashboard): `backend/src/modules/dashboard`

### Backend services

- [Admin auth](https://github.com/princepal09/ieit---computer-institute/tree/main/backend/src/modules/auth): `backend/src/modules/auth`
- [HTTP application](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/app.ts): `backend/src/app.ts`
- [Branch controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/branch/branch.controller.ts): `backend/src/modules/branch/branch.controller.ts`
- [Course controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/course/course.controller.ts): `backend/src/modules/course/course.controller.ts`
- [Gallery controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/gallery/gallery.controller.ts): `backend/src/modules/gallery/gallery.controller.ts`
- [Notice controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/notice/notice.controller.ts): `backend/src/modules/notice/notice.controller.ts`
- [Contact controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/contact/contact.controller.ts): `backend/src/modules/contact/contact.controller.ts`
- [Enquiry controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/enquiry/enquiry.controller.ts): `backend/src/modules/enquiry/enquiry.controller.ts`
- [Dashboard controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/dashboard/dashboard.controller.ts): `backend/src/modules/dashboard/dashboard.controller.ts`
- [Settings controller](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/modules/siteSettings/siteSettings.controller.ts): `backend/src/modules/siteSettings/siteSettings.controller.ts`
- [Database client](https://github.com/princepal09/ieit---computer-institute/blob/main/backend/src/lib/prisma.ts): `backend/src/lib/prisma.ts`

### Other components

- **Visitor**
- **Administrator**
- **Cloudinary**
- **Email provider**

## Connections

- Visitor → Public pages: browses
- Administrator → Admin pages: manages content
- Admin pages → Admin auth: admin access
- HTTP application → Branch controller: dispatches
- HTTP application → Course controller: dispatches
- HTTP application → Gallery controller: dispatches
- HTTP application → Notice controller: dispatches
- HTTP application → Contact controller: dispatches
- HTTP application → Enquiry controller: dispatches
- HTTP application → Dashboard controller: dispatches
- HTTP application → Settings controller: dispatches
- Branch controller → Branches: calls service
- Course controller → Courses: calls service
- Gallery controller → Gallery: calls service
- Notice controller → Notices: calls service
- Contact controller → Contact messages: calls service
- Enquiry controller → Course enquiries: calls service
- Dashboard controller → Dashboard: calls service
- Settings controller → Site settings: calls service
- Branches → Database client: data access
- Courses → Database client: data access
- Gallery → Database client: data access
- Notices → Database client: data access
- Contact messages → Database client: data access
- Course enquiries → Database client: data access
- Dashboard → Database client: data access
- Site settings → Database client: data access
- Branches → Cloudinary: image storage
- Courses → Cloudinary: image storage
- Gallery → Cloudinary: image storage
- Notices → Cloudinary: image storage
- Site settings → Cloudinary: image storage
- Contact messages → Email provider: email notices
- Course enquiries → Email provider: email notices
