# bigelazo/u-roadmaps architecture

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

- Interactive diagram: https://gitdiagram.com/bigelazo/u-roadmaps
- Repository: https://github.com/bigelazo/u-roadmaps

## Overview

This is a Next.js academic roadmap application: students and teaching staff access course roadmaps, while institutional login, academic overviews, and notifications support that workflow. The main roadmap surface has API routes delegating to roadmap server operations; the tree also shows editing, completion, resources, dependencies, and simulation capabilities. Other branches cover institutional authentication, academic-overview retrieval, and notifications. Source excerpts and the index establish some server-side relationships; UI wiring and several roadmap internals were not sampled, so those links are omitted or marked unverified.

Main entry points: [`src/app/api/[courseCode]/[year]/[semester]/roadmap`](https://github.com/bigelazo/u-roadmaps/tree/main/src/app/api/%5BcourseCode%5D/%5Byear%5D/%5Bsemester%5D/roadmap) (Roadmap API), [`src/features/roadmap/server.ts`](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/server.ts) (Roadmap operations), [`src/features/notifications/server.ts`](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/notifications/server.ts) (Notification service), [`src/features/roadmap/session/session.tsx`](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/session/session.tsx) (Roadmap session)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_roadmap["Course roadmaps"]
  node_course_page["Course page<br/>[page.tsx]"]
  node_roadmap_session["Roadmap session<br/>[session.tsx]"]
  node_roadmap_api["Roadmap API"]
  node_roadmap_adapters["Request adapters<br/>[roadmap.ts]"]
  node_roadmap_server["Roadmap operations<br/>[server.ts]"]
  node_roadmap_editor["Roadmap editing<br/>[editor.ts]"]
  node_roadmap_completion["Completion tracking<br/>[completion.ts]"]
  node_roadmap_resources["Learning resources"]
  node_roadmap_graph["Roadmap graph<br/>[RoadmapGraph.tsx]"]
end

subgraph group_identity["Institutional access"]
  node_institutional_api["Login callback<br/>[route.ts]"]
  node_institutional_access["Login handling<br/>[server.ts]"]
  node_vti["VTI integration<br/>[server.ts]"]
end

subgraph group_academics["Academic overview"]
  node_overview_api["Overview API<br/>[route.ts]"]
  node_overview_service["Overview service<br/>[server.ts]"]
  node_overview_query["Overview retrieval"]
  node_ucampus["UCampus integration<br/>[server.ts]"]
end

subgraph group_messaging["Notifications"]
  node_notifications["Notification service<br/>[server.ts]"]
  node_novu["Novu transport<br/>[novu-transport.ts]"]
end

subgraph group_platform["Shared services"]
  node_database[("PostgreSQL data<br/>[index.ts]")]
  node_http_adapter["HTTP handling<br/>[http.ts]"]
end

node_student(("Student or teacher"))

node_student -.->|"opens course"| node_course_page
node_course_page -.->|"shows roadmap"| node_roadmap_session
node_roadmap_session -.->|"persists changes"| node_roadmap_api
node_roadmap_api -->|"validates identity"| node_roadmap_adapters
node_roadmap_api -->|"dispatches operations"| node_roadmap_server
node_roadmap_api -->|"handles results"| node_http_adapter
node_roadmap_server -->|"exports editing"| node_roadmap_editor
node_roadmap_server -->|"exports completion"| node_roadmap_completion
node_roadmap_server -->|"exports resources"| node_roadmap_resources
node_roadmap_graph -.->|"renders session"| node_roadmap_session
node_institutional_api -->|"completes login"| node_institutional_access
node_institutional_access -->|"authenticates callback"| node_vti
node_overview_api -->|"requests overview"| node_overview_service
node_overview_service -->|"delegates retrieval"| node_overview_query
node_overview_query -->|"queries academic data"| node_ucampus
node_notifications -->|"reads recipient data"| node_database
node_notifications -->|"emits notices"| node_novu
node_roadmap_api -->|"signals mutations"| node_notifications

click node_course_page "https://github.com/bigelazo/u-roadmaps/blob/main/src/app/courses/%5BcourseCode%5D/%5Byear%5D/%5Bsemester%5D/page.tsx"
click node_roadmap_session "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/session/session.tsx"
click node_roadmap_api "https://github.com/bigelazo/u-roadmaps/tree/main/src/app/api/%5BcourseCode%5D/%5Byear%5D/%5Bsemester%5D/roadmap"
click node_roadmap_adapters "https://github.com/bigelazo/u-roadmaps/blob/main/src/app/_adapters/roadmap.ts"
click node_roadmap_server "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/server.ts"
click node_roadmap_editor "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/application/editor.ts"
click node_roadmap_completion "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/application/completion.ts"
click node_roadmap_resources "https://github.com/bigelazo/u-roadmaps/tree/main/src/features/roadmap/application/resources"
click node_roadmap_graph "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/graph/RoadmapGraph.tsx"
click node_institutional_api "https://github.com/bigelazo/u-roadmaps/blob/main/src/app/api/plogin/route.ts"
click node_institutional_access "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/institutional-access/server.ts"
click node_vti "https://github.com/bigelazo/u-roadmaps/blob/main/src/integrations/vti/server.ts"
click node_overview_api "https://github.com/bigelazo/u-roadmaps/blob/main/src/app/api/academic-overview/route.ts"
click node_overview_service "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/academic-overview/server.ts"
click node_overview_query "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/academic-overview/application/get-academic-overview.ts"
click node_ucampus "https://github.com/bigelazo/u-roadmaps/blob/main/src/integrations/ucampus/server.ts"
click node_notifications "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/notifications/server.ts"
click node_novu "https://github.com/bigelazo/u-roadmaps/blob/main/src/features/notifications/infrastructure/novu-transport.ts"
click node_database "https://github.com/bigelazo/u-roadmaps/blob/main/src/shared/server/db/index.ts"
click node_http_adapter "https://github.com/bigelazo/u-roadmaps/blob/main/src/app/_adapters/http.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_course_page,node_roadmap_session,node_roadmap_api,node_roadmap_adapters,node_roadmap_server,node_roadmap_editor,node_roadmap_completion,node_roadmap_resources,node_roadmap_graph toneBlue
class node_institutional_api,node_institutional_access,node_vti toneAmber
class node_overview_api,node_overview_service,node_overview_query,node_ucampus toneMint
class node_notifications,node_novu toneRose
class node_database,node_http_adapter,node_student toneIndigo
```

## Components

### Course roadmaps

- [Course page](https://github.com/bigelazo/u-roadmaps/blob/main/src/app/courses/%5BcourseCode%5D/%5Byear%5D/%5Bsemester%5D/page.tsx): `src/app/courses/[courseCode]/[year]/[semester]/page.tsx`
- [Roadmap session](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/session/session.tsx): `src/features/roadmap/session/session.tsx`
- [Roadmap API](https://github.com/bigelazo/u-roadmaps/tree/main/src/app/api/%5BcourseCode%5D/%5Byear%5D/%5Bsemester%5D/roadmap): `src/app/api/[courseCode]/[year]/[semester]/roadmap`
- [Request adapters](https://github.com/bigelazo/u-roadmaps/blob/main/src/app/_adapters/roadmap.ts): `src/app/_adapters/roadmap.ts`
- [Roadmap operations](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/server.ts): `src/features/roadmap/server.ts`
- [Roadmap editing](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/application/editor.ts): `src/features/roadmap/application/editor.ts`
- [Completion tracking](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/application/completion.ts): `src/features/roadmap/application/completion.ts`
- [Learning resources](https://github.com/bigelazo/u-roadmaps/tree/main/src/features/roadmap/application/resources): `src/features/roadmap/application/resources`
- [Roadmap graph](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/roadmap/graph/RoadmapGraph.tsx): `src/features/roadmap/graph/RoadmapGraph.tsx`

### Institutional access

- [Login callback](https://github.com/bigelazo/u-roadmaps/blob/main/src/app/api/plogin/route.ts): `src/app/api/plogin/route.ts`
- [Login handling](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/institutional-access/server.ts): `src/features/institutional-access/server.ts`
- [VTI integration](https://github.com/bigelazo/u-roadmaps/blob/main/src/integrations/vti/server.ts): `src/integrations/vti/server.ts`

### Academic overview

- [Overview API](https://github.com/bigelazo/u-roadmaps/blob/main/src/app/api/academic-overview/route.ts): `src/app/api/academic-overview/route.ts`
- [Overview service](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/academic-overview/server.ts): `src/features/academic-overview/server.ts`
- [Overview retrieval](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/academic-overview/application/get-academic-overview.ts): `src/features/academic-overview/application/get-academic-overview.ts`
- [UCampus integration](https://github.com/bigelazo/u-roadmaps/blob/main/src/integrations/ucampus/server.ts): `src/integrations/ucampus/server.ts`

### Notifications

- [Notification service](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/notifications/server.ts): `src/features/notifications/server.ts`
- [Novu transport](https://github.com/bigelazo/u-roadmaps/blob/main/src/features/notifications/infrastructure/novu-transport.ts): `src/features/notifications/infrastructure/novu-transport.ts`

### Shared services

- [PostgreSQL data](https://github.com/bigelazo/u-roadmaps/blob/main/src/shared/server/db/index.ts): `src/shared/server/db/index.ts`
- [HTTP handling](https://github.com/bigelazo/u-roadmaps/blob/main/src/app/_adapters/http.ts): `src/app/_adapters/http.ts`

### Other components

- **Student or teacher**

## Connections

- Student or teacher → Course page: opens course
- Course page → Roadmap session: shows roadmap
- Roadmap session → Roadmap API: persists changes
- Roadmap API → Request adapters: validates identity (evidence: `src/app/api/[courseCode]/[year]/[semester]/roadmap/route.ts`)
- Roadmap API → Roadmap operations: dispatches operations (evidence: `src/app/api/[courseCode]/[year]/[semester]/roadmap/route.ts`)
- Roadmap API → HTTP handling: handles results (evidence: `src/app/api/[courseCode]/[year]/[semester]/roadmap/route.ts`)
- Roadmap operations → Roadmap editing: exports editing (evidence: `src/features/roadmap/server.ts`)
- Roadmap operations → Completion tracking: exports completion (evidence: `src/features/roadmap/server.ts`)
- Roadmap operations → Learning resources: exports resources (evidence: `src/features/roadmap/server.ts`)
- Roadmap graph → Roadmap session: renders session
- Login callback → Login handling: completes login (evidence: `src/app/api/plogin/route.ts`)
- Login handling → VTI integration: authenticates callback
- Overview API → Overview service: requests overview (evidence: `src/app/api/academic-overview/route.ts`)
- Overview service → Overview retrieval: delegates retrieval (evidence: `src/features/academic-overview/server.ts`)
- Overview retrieval → UCampus integration: queries academic data (evidence: `src/features/academic-overview/application/get-academic-overview.ts`)
- Notification service → PostgreSQL data: reads recipient data (evidence: `src/features/notifications/server.ts`)
- Notification service → Novu transport: emits notices (evidence: `src/features/notifications/server.ts`)
- Roadmap API → Notification service: signals mutations (evidence: `src/app/api/[courseCode]/[year]/[semester]/roadmap/nodes/route.ts`)
