# westliecasuncad06/grc-enrollment architecture

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

- Interactive diagram: https://gitdiagram.com/westliecasuncad06/grc-enrollment
- Repository: https://github.com/westliecasuncad06/grc-enrollment

## Overview

GRC Automated Enrollment System is an API-first college enrollment platform: students and staff use a browser SPA, which calls a versioned Laravel API for enrollment, academic, billing, identity, curriculum, scheduling, and reporting workflows. The API also exposes a private prediction service for advisory demand and attrition predictions. The principal enrollment path covers subject selection, submission, staff decisions, payment confirmation, and certificate-of-registration views. Sampled controllers show selected action calls; other branches reflect documented capabilities and the source tree, so their internal wiring is not inferred.

Main entry points: [`frontend/src`](https://github.com/westliecasuncad06/grc-enrollment/tree/main/frontend/src) (Web application), [`backend/app/Http/Controllers/Api/V1/EnrollmentController.php`](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentController.php) (Enrollment endpoint), [`backend/app/Http/Controllers/Api/V1/EnrollmentWindowController.php`](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentWindowController.php) (Window endpoint), [`frontend/src/features/services/enrollment-service.ts`](https://github.com/westliecasuncad06/grc-enrollment/blob/main/frontend/src/features/services/enrollment-service.ts) (Enrollment client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Browser client"]
  node_frontend["Web application"]
  node_enrollment_service["Enrollment client"]
  node_window_service["Schedule client"]
end

subgraph group_api["Enrollment API"]
  node_enrollment_controller["Enrollment endpoint"]
  node_change_controller["Change requests"]
  node_document_controller["Enrollment documents"]
  node_window_controller["Window endpoint"]
  node_submit_enrollment["Submit enrollment"]
  node_cor_snapshot["COR snapshot"]
  node_change_actions["Change workflow"]
  node_window_actions["Window management"]
end

subgraph group_operations["Academic operations"]
  node_identity["Identity and access"]
  node_billing["Billing and payments"]
  node_curriculum["Curriculum management"]
  node_academic["Grades and records"]
  node_scheduling["Sections and schedules"]
end

subgraph group_insight["Analytics and prediction"]
  node_analytics["Reports and forecasts"]
  node_dashboard["Operational dashboards"]
  node_prediction["Prediction service<br/>[main.py]"]
end

node_student(("Students and staff"))

node_student -->|"uses"| node_frontend
node_frontend -->|"requests enrollment"| node_enrollment_service
node_enrollment_service -->|"calls API"| node_enrollment_controller
node_enrollment_controller -->|"submits"| node_submit_enrollment
node_enrollment_controller -->|"builds preview"| node_cor_snapshot
node_frontend -->|"manages windows"| node_window_service
node_window_service -->|"calls API"| node_window_controller
node_window_controller -->|"saves schedule"| node_window_actions
node_window_controller -->|"builds summary"| node_window_actions
node_change_controller -->|"manages requests"| node_change_actions
node_document_controller -->|"builds snapshot"| node_cor_snapshot
node_analytics -.->|"requests predictions"| node_prediction

click node_frontend "https://github.com/westliecasuncad06/grc-enrollment/tree/main/frontend/src"
click node_enrollment_service "https://github.com/westliecasuncad06/grc-enrollment/blob/main/frontend/src/features/services/enrollment-service.ts"
click node_window_service "https://github.com/westliecasuncad06/grc-enrollment/blob/main/frontend/src/features/services/enrollment-window-service.ts"
click node_enrollment_controller "https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentController.php"
click node_change_controller "https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentChangeRequestController.php"
click node_document_controller "https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentDocumentController.php"
click node_window_controller "https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentWindowController.php"
click node_submit_enrollment "https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Actions/Enrollment/SubmitEnrollment.php"
click node_cor_snapshot "https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Actions/Enrollment/BuildCorSnapshot.php"
click node_change_actions "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Enrollment"
click node_window_actions "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Organization"
click node_identity "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Auth"
click node_billing "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Billing"
click node_curriculum "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Curriculum"
click node_academic "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Academic"
click node_scheduling "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Scheduling"
click node_analytics "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Analytics"
click node_dashboard "https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Dashboard"
click node_prediction "https://github.com/westliecasuncad06/grc-enrollment/blob/main/ml-service/app/main.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_frontend,node_enrollment_service,node_window_service toneBlue
class node_enrollment_controller,node_change_controller,node_document_controller,node_window_controller,node_submit_enrollment,node_cor_snapshot,node_change_actions,node_window_actions toneAmber
class node_identity,node_billing,node_curriculum,node_academic,node_scheduling toneMint
class node_analytics,node_dashboard,node_prediction toneRose
class node_student toneIndigo
```

## Components

### Browser client

- [Web application](https://github.com/westliecasuncad06/grc-enrollment/tree/main/frontend/src): `frontend/src`
- [Enrollment client](https://github.com/westliecasuncad06/grc-enrollment/blob/main/frontend/src/features/services/enrollment-service.ts): `frontend/src/features/services/enrollment-service.ts`
- [Schedule client](https://github.com/westliecasuncad06/grc-enrollment/blob/main/frontend/src/features/services/enrollment-window-service.ts): `frontend/src/features/services/enrollment-window-service.ts`

### Enrollment API

- [Enrollment endpoint](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentController.php): `backend/app/Http/Controllers/Api/V1/EnrollmentController.php`
- [Change requests](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentChangeRequestController.php): `backend/app/Http/Controllers/Api/V1/EnrollmentChangeRequestController.php`
- [Enrollment documents](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentDocumentController.php): `backend/app/Http/Controllers/Api/V1/EnrollmentDocumentController.php`
- [Window endpoint](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Http/Controllers/Api/V1/EnrollmentWindowController.php): `backend/app/Http/Controllers/Api/V1/EnrollmentWindowController.php`
- [Submit enrollment](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Actions/Enrollment/SubmitEnrollment.php): `backend/app/Actions/Enrollment/SubmitEnrollment.php`
- [COR snapshot](https://github.com/westliecasuncad06/grc-enrollment/blob/main/backend/app/Actions/Enrollment/BuildCorSnapshot.php): `backend/app/Actions/Enrollment/BuildCorSnapshot.php`
- [Change workflow](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Enrollment): `backend/app/Actions/Enrollment`
- [Window management](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Organization): `backend/app/Actions/Organization`

### Academic operations

- [Identity and access](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Auth): `backend/app/Actions/Auth`
- [Billing and payments](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Billing): `backend/app/Actions/Billing`
- [Curriculum management](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Curriculum): `backend/app/Actions/Curriculum`
- [Grades and records](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Academic): `backend/app/Actions/Academic`
- [Sections and schedules](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Scheduling): `backend/app/Actions/Scheduling`

### Analytics and prediction

- [Reports and forecasts](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Analytics): `backend/app/Actions/Analytics`
- [Operational dashboards](https://github.com/westliecasuncad06/grc-enrollment/tree/main/backend/app/Actions/Dashboard): `backend/app/Actions/Dashboard`
- [Prediction service](https://github.com/westliecasuncad06/grc-enrollment/blob/main/ml-service/app/main.py): `ml-service/app/main.py`

### Other components

- **Students and staff**

## Connections

- Students and staff → Web application: uses
- Web application → Enrollment client: requests enrollment
- Enrollment client → Enrollment endpoint: calls API
- Enrollment endpoint → Submit enrollment: submits
- Enrollment endpoint → COR snapshot: builds preview
- Web application → Schedule client: manages windows
- Schedule client → Window endpoint: calls API
- Window endpoint → Window management: saves schedule
- Window endpoint → Window management: builds summary
- Change requests → Change workflow: manages requests
- Enrollment documents → COR snapshot: builds snapshot
- Reports and forecasts → Prediction service: requests predictions
