# ahmed252832/obe-track architecture

> Architecture diagram of the GitHub repository ahmed252832/obe-track, 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/ahmed252832/obe-track
- Repository: https://github.com/ahmed252832/obe-track

## Overview

CSE-OBETrack is a browser-only, role-based demonstration portal for academic outcomes, project work, stakeholder feedback, and accreditation readiness. Users enter through the sign-in page and role-specific portal; course setup and gradebook records feed calculated results and attainment, while project and evidence records support review and reporting. Public visitors can browse published projects and submit feedback for JSON handoff. The README documents localStorage as the shared-in-browser store and explicitly rules out server authentication or cross-device sync. Feature wiring beyond the sampled excerpts is represented only where documented.

Main entry points: [`components/portal.tsx`](https://github.com/ahmed252832/obe-track/blob/main/components/portal.tsx) (Role workspace), [`lib/demo.ts`](https://github.com/ahmed252832/obe-track/blob/main/lib/demo.ts) (Demo browser store), [`components/academic-workspace.tsx`](https://github.com/ahmed252832/obe-track/blob/main/components/academic-workspace.tsx) (Academic workspace), [`components/accreditation.tsx`](https://github.com/ahmed252832/obe-track/blob/main/components/accreditation.tsx) (Accreditation readiness)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and workspace"]
  node_signin["Role sign-in<br/>[page.tsx]"]
  node_portalroute["Portal routes<br/>[page.tsx]"]
  node_portal["Role workspace<br/>[portal.tsx]"]
  node_dashboard["Faculty dashboard"]
end

subgraph group_academics["Academic assessment"]
  node_academic["Academic workspace"]
  node_views["Record views<br/>[views.tsx]"]
  node_academicdata["Assessment calculations<br/>[academic.ts]"]
  node_excel["XLSX exchange<br/>[academic-excel.ts]"]
  node_studentprofile["Student profile<br/>[profile.tsx]"]
end

subgraph group_projects["Projects and feedback"]
  node_repository["Project repository"]
  node_publicprojects["Project showcase"]
  node_feedbackpage["Stakeholder feedback<br/>[page.tsx]"]
  node_feedbackhub["Feedback review<br/>[feedback-hub.tsx]"]
  node_feedbackdata["Feedback data<br/>[feedback.ts]"]
end

subgraph group_assurance["Accreditation assurance"]
  node_accreditation["Accreditation readiness<br/>[accreditation.tsx]"]
  node_evidence["Evidence and CQI<br/>[views.tsx]"]
  node_baete["BAETE reference<br/>[baete.ts]"]
end

subgraph group_state["Browser state"]
  node_store[("Demo browser store<br/>[demo.ts]")]
end

node_visitor(("Portal user"))
node_publicvisitor(("Public visitor"))

node_visitor -->|"signs in"| node_signin
node_signin -->|"reads accounts"| node_store
node_signin -->|"routes session"| node_portalroute
node_portalroute -->|"opens section"| node_portal
node_portal -->|"loads and saves"| node_store
node_portal -->|"shows workflows"| node_academic
node_portal -->|"opens projects"| node_repository
node_portal -->|"opens feedback"| node_feedbackhub
node_portal -->|"opens readiness"| node_accreditation
node_portal -->|"shows overview"| node_dashboard
node_academic -->|"renders records"| node_views
node_academic -->|"calculates results"| node_academicdata
node_academic -->|"imports and exports"| node_excel
node_excel -->|"reads assessment data"| node_academicdata
node_academic -->|"saves marks and attendance"| node_store
node_studentprofile -->|"reads and updates profile"| node_store
node_repository -->|"saves projects"| node_store
node_repository -->|"opens evaluation"| node_accreditation
node_repository -->|"publishes projects"| node_publicprojects
node_publicvisitor -->|"browses projects"| node_publicprojects
node_publicvisitor -->|"submits feedback"| node_feedbackpage
node_publicprojects -->|"opens feedback form"| node_feedbackpage
node_feedbackpage -->|"records submission"| node_feedbackdata
node_feedbackhub -->|"imports receipts"| node_feedbackdata
node_feedbackhub -->|"saves reviews"| node_store
node_accreditation -->|"uses criteria"| node_baete
node_accreditation -->|"reviews linked evidence"| node_evidence
node_accreditation -->|"saves reviews"| node_store
node_evidence -->|"reads and saves records"| node_store

click node_signin "https://github.com/ahmed252832/obe-track/blob/main/app/page.tsx"
click node_portalroute "https://github.com/ahmed252832/obe-track/blob/main/app/portal/%5Bsection%5D/page.tsx"
click node_portal "https://github.com/ahmed252832/obe-track/blob/main/components/portal.tsx"
click node_dashboard "https://github.com/ahmed252832/obe-track/blob/main/components/faculty-dashboard.tsx"
click node_academic "https://github.com/ahmed252832/obe-track/blob/main/components/academic-workspace.tsx"
click node_views "https://github.com/ahmed252832/obe-track/blob/main/components/views.tsx"
click node_academicdata "https://github.com/ahmed252832/obe-track/blob/main/lib/academic.ts"
click node_excel "https://github.com/ahmed252832/obe-track/blob/main/lib/academic-excel.ts"
click node_studentprofile "https://github.com/ahmed252832/obe-track/blob/main/components/profile.tsx"
click node_repository "https://github.com/ahmed252832/obe-track/blob/main/components/project-repository.tsx"
click node_publicprojects "https://github.com/ahmed252832/obe-track/blob/main/components/public-projects.tsx"
click node_feedbackpage "https://github.com/ahmed252832/obe-track/blob/main/app/stakeholder-feedback/page.tsx"
click node_feedbackhub "https://github.com/ahmed252832/obe-track/blob/main/components/feedback-hub.tsx"
click node_feedbackdata "https://github.com/ahmed252832/obe-track/blob/main/lib/feedback.ts"
click node_accreditation "https://github.com/ahmed252832/obe-track/blob/main/components/accreditation.tsx"
click node_evidence "https://github.com/ahmed252832/obe-track/blob/main/components/views.tsx"
click node_baete "https://github.com/ahmed252832/obe-track/blob/main/lib/baete.ts"
click node_store "https://github.com/ahmed252832/obe-track/blob/main/lib/demo.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_signin,node_portalroute,node_portal,node_dashboard,node_visitor toneBlue
class node_academic,node_views,node_academicdata,node_excel,node_studentprofile toneAmber
class node_repository,node_publicprojects,node_feedbackpage,node_feedbackhub,node_feedbackdata toneMint
class node_accreditation,node_evidence,node_baete toneRose
class node_store,node_publicvisitor toneIndigo
```

## Components

### Entry and workspace

- [Role sign-in](https://github.com/ahmed252832/obe-track/blob/main/app/page.tsx): `app/page.tsx`
- [Portal routes](https://github.com/ahmed252832/obe-track/blob/main/app/portal/%5Bsection%5D/page.tsx): `app/portal/[section]/page.tsx`
- [Role workspace](https://github.com/ahmed252832/obe-track/blob/main/components/portal.tsx): `components/portal.tsx`
- [Faculty dashboard](https://github.com/ahmed252832/obe-track/blob/main/components/faculty-dashboard.tsx): `components/faculty-dashboard.tsx`

### Academic assessment

- [Academic workspace](https://github.com/ahmed252832/obe-track/blob/main/components/academic-workspace.tsx): `components/academic-workspace.tsx`
- [Record views](https://github.com/ahmed252832/obe-track/blob/main/components/views.tsx): `components/views.tsx`
- [Assessment calculations](https://github.com/ahmed252832/obe-track/blob/main/lib/academic.ts): `lib/academic.ts`
- [XLSX exchange](https://github.com/ahmed252832/obe-track/blob/main/lib/academic-excel.ts): `lib/academic-excel.ts`
- [Student profile](https://github.com/ahmed252832/obe-track/blob/main/components/profile.tsx): `components/profile.tsx`

### Projects and feedback

- [Project repository](https://github.com/ahmed252832/obe-track/blob/main/components/project-repository.tsx): `components/project-repository.tsx`
- [Project showcase](https://github.com/ahmed252832/obe-track/blob/main/components/public-projects.tsx): `components/public-projects.tsx`
- [Stakeholder feedback](https://github.com/ahmed252832/obe-track/blob/main/app/stakeholder-feedback/page.tsx): `app/stakeholder-feedback/page.tsx`
- [Feedback review](https://github.com/ahmed252832/obe-track/blob/main/components/feedback-hub.tsx): `components/feedback-hub.tsx`
- [Feedback data](https://github.com/ahmed252832/obe-track/blob/main/lib/feedback.ts): `lib/feedback.ts`

### Accreditation assurance

- [Accreditation readiness](https://github.com/ahmed252832/obe-track/blob/main/components/accreditation.tsx): `components/accreditation.tsx`
- [Evidence and CQI](https://github.com/ahmed252832/obe-track/blob/main/components/views.tsx): `components/views.tsx`
- [BAETE reference](https://github.com/ahmed252832/obe-track/blob/main/lib/baete.ts): `lib/baete.ts`

### Browser state

- [Demo browser store](https://github.com/ahmed252832/obe-track/blob/main/lib/demo.ts): `lib/demo.ts`

### Other components

- **Portal user**
- **Public visitor**

## Connections

- Portal user → Role sign-in: signs in
- Role sign-in → Demo browser store: reads accounts
- Role sign-in → Portal routes: routes session
- Portal routes → Role workspace: opens section
- Role workspace → Demo browser store: loads and saves
- Role workspace → Academic workspace: shows workflows
- Role workspace → Project repository: opens projects
- Role workspace → Feedback review: opens feedback
- Role workspace → Accreditation readiness: opens readiness
- Role workspace → Faculty dashboard: shows overview
- Academic workspace → Record views: renders records
- Academic workspace → Assessment calculations: calculates results
- Academic workspace → XLSX exchange: imports and exports
- XLSX exchange → Assessment calculations: reads assessment data
- Academic workspace → Demo browser store: saves marks and attendance
- Student profile → Demo browser store: reads and updates profile
- Project repository → Demo browser store: saves projects
- Project repository → Accreditation readiness: opens evaluation
- Project repository → Project showcase: publishes projects
- Public visitor → Project showcase: browses projects
- Public visitor → Stakeholder feedback: submits feedback
- Project showcase → Stakeholder feedback: opens feedback form
- Stakeholder feedback → Feedback data: records submission
- Feedback review → Feedback data: imports receipts
- Feedback review → Demo browser store: saves reviews
- Accreditation readiness → BAETE reference: uses criteria
- Accreditation readiness → Evidence and CQI: reviews linked evidence
- Accreditation readiness → Demo browser store: saves reviews
- Evidence and CQI → Demo browser store: reads and saves records
