# manurvdevv001-create/odsm-v2.0 architecture

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

- Interactive diagram: https://gitdiagram.com/manurvdevv001-create/odsm-v2.0
- Repository: https://github.com/manurvdevv001-create/odsm-v2.0

## Overview

This tree is an ODSM school-management application, despite the README describing an unrelated GSD coding workflow. The visible runtime includes school and staff APIs, teacher grade workflows, session authentication, and shared database/domain utilities; the tree also identifies student, classroom, finance, calendar, and administration areas. The latter are represented as product subsystems, but their internal behavior and connections are not verified by the sampled source. The graph therefore uses only source-supported edges and omits inferred user-to-route links.

Main entry points: [`src/lib/db.ts`](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/db.ts) (Prisma database), [`src/app/api/school/route.ts`](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/school/route.ts) (School data API), [`src/app/api/staff/route.ts`](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/staff/route.ts) (Staff API), [`src/lib/classroom-utils.ts`](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/classroom-utils.ts) (Classroom utilities)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_school["School operations"]
  node_school_api["School data API<br/>[route.ts]"]
  node_staff_api["Staff API<br/>[route.ts]"]
  node_students["Student records"]
  node_classrooms["Classroom management"]
  node_finance["Finance operations<br/>[page.tsx]"]
  node_calendar["School calendar<br/>[page.tsx]"]
end

subgraph group_teaching["Teaching and assessment"]
  node_grade_api["Grade API<br/>[route.ts]"]
  node_grade_closure["Grade closure<br/>[route.ts]"]
  node_monitoring["Period monitoring<br/>[route.ts]"]
  node_teacher_ui["Teacher workspace"]
end

subgraph group_platform["Application platform"]
  node_db[("Prisma database<br/>[db.ts]")]
  node_auth["Session authentication<br/>[auth.ts]"]
  node_activity["Activity logging<br/>[activity-logger.ts]"]
end

subgraph group_domain["Shared domain services"]
  node_classroom_utils["Classroom utilities<br/>[classroom-utils.ts]"]
  node_school_settings["School settings<br/>[school-settings.ts]"]
  node_staff_numbering["Staff numbering<br/>[staff-numbering.ts]"]
  node_person_contact["Person contacts<br/>[person-contact.ts]"]
end

node_school_user(("School user"))

node_school_api -->|"checks session"| node_auth
node_school_api -->|"reads and updates"| node_db
node_school_api -->|"loads settings"| node_school_settings
node_school_api -->|"resolves classrooms"| node_classroom_utils
node_staff_api -->|"reads and writes"| node_db
node_staff_api -->|"generates number"| node_staff_numbering
node_staff_api -->|"resolves contact"| node_person_contact
node_staff_api -->|"logs activity"| node_activity
node_grade_api -->|"reads and writes"| node_db
node_grade_api -->|"infers level"| node_classroom_utils
node_grade_closure -->|"reads and updates"| node_db
node_grade_closure -->|"infers level"| node_classroom_utils
node_monitoring -->|"checks session"| node_auth
node_monitoring -->|"reads and updates"| node_db
node_monitoring -->|"matches names"| node_classroom_utils
node_activity -->|"writes log"| node_db
node_auth -.->|"authenticates"| node_school_user

click node_school_api "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/school/route.ts"
click node_staff_api "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/staff/route.ts"
click node_students "https://github.com/manurvdevv001-create/odsm-v2.0/tree/main/src/app/(main)/students"
click node_classrooms "https://github.com/manurvdevv001-create/odsm-v2.0/tree/main/src/app/(main)/classrooms"
click node_finance "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/(main)/finances/page.tsx"
click node_calendar "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/(main)/calendar/page.tsx"
click node_grade_api "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/teacher/grades/route.ts"
click node_grade_closure "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/teacher/grades/close/route.ts"
click node_monitoring "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/admin/period-monitoring/details/route.ts"
click node_teacher_ui "https://github.com/manurvdevv001-create/odsm-v2.0/tree/main/src/app/(main)/teacher"
click node_db "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/db.ts"
click node_auth "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/auth.ts"
click node_activity "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/activity-logger.ts"
click node_classroom_utils "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/classroom-utils.ts"
click node_school_settings "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/school-settings.ts"
click node_staff_numbering "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/staff-numbering.ts"
click node_person_contact "https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/person-contact.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_school_api,node_staff_api,node_students,node_classrooms,node_finance,node_calendar,node_school_user toneBlue
class node_grade_api,node_grade_closure,node_monitoring,node_teacher_ui toneAmber
class node_db,node_auth,node_activity toneMint
class node_classroom_utils,node_school_settings,node_staff_numbering,node_person_contact toneRose
```

## Components

### School operations

- [School data API](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/school/route.ts): `src/app/api/school/route.ts`
- [Staff API](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/staff/route.ts): `src/app/api/staff/route.ts`
- [Student records](https://github.com/manurvdevv001-create/odsm-v2.0/tree/main/src/app/(main)/students): `src/app/(main)/students`
- [Classroom management](https://github.com/manurvdevv001-create/odsm-v2.0/tree/main/src/app/(main)/classrooms): `src/app/(main)/classrooms`
- [Finance operations](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/(main)/finances/page.tsx): `src/app/(main)/finances/page.tsx`
- [School calendar](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/(main)/calendar/page.tsx): `src/app/(main)/calendar/page.tsx`

### Teaching and assessment

- [Grade API](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/teacher/grades/route.ts): `src/app/api/teacher/grades/route.ts`
- [Grade closure](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/teacher/grades/close/route.ts): `src/app/api/teacher/grades/close/route.ts`
- [Period monitoring](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/app/api/admin/period-monitoring/details/route.ts): `src/app/api/admin/period-monitoring/details/route.ts`
- [Teacher workspace](https://github.com/manurvdevv001-create/odsm-v2.0/tree/main/src/app/(main)/teacher): `src/app/(main)/teacher`

### Application platform

- [Prisma database](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/db.ts): `src/lib/db.ts`
- [Session authentication](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/auth.ts): `src/lib/auth.ts`
- [Activity logging](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/activity-logger.ts): `src/lib/activity-logger.ts`

### Shared domain services

- [Classroom utilities](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/classroom-utils.ts): `src/lib/classroom-utils.ts`
- [School settings](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/school-settings.ts): `src/lib/school-settings.ts`
- [Staff numbering](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/staff-numbering.ts): `src/lib/staff-numbering.ts`
- [Person contacts](https://github.com/manurvdevv001-create/odsm-v2.0/blob/main/src/lib/person-contact.ts): `src/lib/person-contact.ts`

### Other components

- **School user**

## Connections

- School data API → Session authentication: checks session (evidence: `src/app/api/school/route.ts`)
- School data API → Prisma database: reads and updates (evidence: `src/app/api/school/route.ts`)
- School data API → School settings: loads settings (evidence: `src/app/api/school/route.ts`)
- School data API → Classroom utilities: resolves classrooms (evidence: `src/app/api/school/route.ts`)
- Staff API → Prisma database: reads and writes (evidence: `src/app/api/staff/route.ts`)
- Staff API → Staff numbering: generates number (evidence: `src/app/api/staff/route.ts`)
- Staff API → Person contacts: resolves contact (evidence: `src/app/api/staff/route.ts`)
- Staff API → Activity logging: logs activity (evidence: `src/app/api/staff/route.ts`)
- Grade API → Prisma database: reads and writes (evidence: `src/app/api/teacher/grades/route.ts`)
- Grade API → Classroom utilities: infers level (evidence: `src/app/api/teacher/grades/route.ts`)
- Grade closure → Prisma database: reads and updates (evidence: `src/app/api/teacher/grades/close/route.ts`)
- Grade closure → Classroom utilities: infers level (evidence: `src/app/api/teacher/grades/close/route.ts`)
- Period monitoring → Session authentication: checks session (evidence: `src/app/api/admin/period-monitoring/details/route.ts`)
- Period monitoring → Prisma database: reads and updates (evidence: `src/app/api/admin/period-monitoring/details/route.ts`)
- Period monitoring → Classroom utilities: matches names (evidence: `src/app/api/admin/period-monitoring/details/route.ts`)
- Activity logging → Prisma database: writes log (evidence: `src/lib/activity-logger.ts`)
- Session authentication → School user: authenticates
