# rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling architecture

> Architecture diagram of the GitHub repository rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling
- Repository: https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling

## Overview

WICARS is an academic scheduling system for department setup, conflict-aware timetable creation, staged Dean/VPAA approval, and schedule reporting and history. The graph preserves that user workflow and the documented catalog, assignment, and room-request capabilities. Internal generation links are based on the named scheduling services and engine modules in the tree; sampled excerpts do not establish all controller-to-service wiring, so uncertain internal calls are omitted.

Main entry points: [`backend/routes/api.php`](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/routes/api.php) (Laravel API routes), [`wicars-ui/src/App.tsx`](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/App.tsx) (WICARS web app), [`backend/app/Http/Controllers/ScheduleRecommendationController.php`](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ScheduleRecommendationController.php) (Generation API), [`wicars-ui/src/pages/ClassSchedules/SchedulerPanel/GenerateSchedule/ConfigurationStep.tsx`](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/pages/ClassSchedules/SchedulerPanel/GenerateSchedule/ConfigurationStep.tsx) (Schedule builder)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_web["WICARS web app<br/>[App.tsx]"]
  node_builder["Schedule builder"]
  node_approval_ui["Approval workspace"]
  node_reports_ui["Reports<br/>[reports.ts]"]
end

subgraph group_setup["Academic setup"]
  node_catalog["Academic catalogs"]
  node_faculty["Faculty assignments"]
  node_rooms["Rooms and requests"]
end

subgraph group_scheduling["Scheduling"]
  node_schedule_api["Schedule operations"]
  node_generation_api["Generation API"]
  node_generation["Plan generation"]
  node_solver["Constraint solver<br/>[CspSolver.php]"]
  node_rules["Schedule rules<br/>[RuleEngine.php]"]
  node_commit["Plan commit"]
end

subgraph group_governance["Approval and oversight"]
  node_approvals["Schedule approvals"]
  node_history["Schedule history"]
  node_oversight["Reports and dashboards"]
end

subgraph group_platform["Application platform"]
  node_api["Laravel API routes<br/>[api.php]"]
  node_models["Domain models"]
  node_database[("Application database<br/>[database.php]")]
end

node_staff(("Academic staff"))

node_staff -->|"uses"| node_web
node_web -->|"opens"| node_builder
node_web -->|"opens"| node_approval_ui
node_web -->|"opens"| node_reports_ui
node_builder -->|"requests generation"| node_generation_api
node_builder -->|"edits timetable"| node_schedule_api
node_staff -->|"maintains setup"| node_catalog
node_staff -->|"assigns instructors"| node_faculty
node_staff -->|"manages rooms"| node_rooms
node_generation_api -->|"generates plans"| node_generation
node_generation -->|"solves constraints"| node_solver
node_schedule_api -->|"checks conflicts"| node_rules
node_generation_api -->|"commits plans"| node_commit
node_staff -->|"reviews schedules"| node_approval_ui
node_approval_ui -->|"submits decisions"| node_approvals
node_staff -->|"views reports"| node_oversight
node_staff -->|"reviews versions"| node_history
node_catalog -->|"serves requests"| node_api
node_faculty -->|"serves requests"| node_api
node_rooms -->|"serves requests"| node_api
node_schedule_api -->|"serves requests"| node_api
node_generation_api -->|"serves requests"| node_api
node_api -->|"accesses records"| node_models
node_models -->|"persists data"| node_database

click node_web "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/App.tsx"
click node_builder "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/pages/ClassSchedules/SchedulerPanel/GenerateSchedule/ConfigurationStep.tsx"
click node_approval_ui "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/components/scheduling/ScheduleApprovalList.tsx"
click node_reports_ui "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/lib/reports.ts"
click node_catalog "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/CoursesController.php"
click node_faculty "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/InstructorAssignmentController.php"
click node_rooms "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/RoomRequestController.php"
click node_schedule_api "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ScheduleController.php"
click node_generation_api "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ScheduleRecommendationController.php"
click node_generation "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Generation/GenerateSchedulePlan.php"
click node_solver "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Engine/CspSolver.php"
click node_rules "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Engine/RuleEngine.php"
click node_commit "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Schedule/CommitSchedulePlan.php"
click node_approvals "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ScheduleController.php"
click node_history "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/ScheduleHistoryRecorder.php"
click node_oversight "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ReportsController.php"
click node_api "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/routes/api.php"
click node_models "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/tree/main/backend/app/Models"
click node_database "https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/config/database.php"

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_web,node_builder,node_approval_ui,node_reports_ui toneBlue
class node_catalog,node_faculty,node_rooms toneAmber
class node_schedule_api,node_generation_api,node_generation,node_solver,node_rules,node_commit toneMint
class node_approvals,node_history,node_oversight toneRose
class node_api,node_models,node_database,node_staff toneIndigo
```

## Components

### User experience

- [WICARS web app](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/App.tsx): `wicars-ui/src/App.tsx`
- [Schedule builder](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/pages/ClassSchedules/SchedulerPanel/GenerateSchedule/ConfigurationStep.tsx): `wicars-ui/src/pages/ClassSchedules/SchedulerPanel/GenerateSchedule/ConfigurationStep.tsx`
- [Approval workspace](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/components/scheduling/ScheduleApprovalList.tsx): `wicars-ui/src/components/scheduling/ScheduleApprovalList.tsx`
- [Reports](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/wicars-ui/src/lib/reports.ts): `wicars-ui/src/lib/reports.ts`

### Academic setup

- [Academic catalogs](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/CoursesController.php): `backend/app/Http/Controllers/CoursesController.php`
- [Faculty assignments](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/InstructorAssignmentController.php): `backend/app/Http/Controllers/InstructorAssignmentController.php`
- [Rooms and requests](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/RoomRequestController.php): `backend/app/Http/Controllers/RoomRequestController.php`

### Scheduling

- [Schedule operations](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ScheduleController.php): `backend/app/Http/Controllers/ScheduleController.php`
- [Generation API](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ScheduleRecommendationController.php): `backend/app/Http/Controllers/ScheduleRecommendationController.php`
- [Plan generation](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Generation/GenerateSchedulePlan.php): `backend/app/Services/Scheduling/Generation/GenerateSchedulePlan.php`
- [Constraint solver](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Engine/CspSolver.php): `backend/app/Services/Scheduling/Engine/CspSolver.php`
- [Schedule rules](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Engine/RuleEngine.php): `backend/app/Services/Scheduling/Engine/RuleEngine.php`
- [Plan commit](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/Scheduling/Schedule/CommitSchedulePlan.php): `backend/app/Services/Scheduling/Schedule/CommitSchedulePlan.php`

### Approval and oversight

- [Schedule approvals](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ScheduleController.php): `backend/app/Http/Controllers/ScheduleController.php`
- [Schedule history](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Services/ScheduleHistoryRecorder.php): `backend/app/Services/ScheduleHistoryRecorder.php`
- [Reports and dashboards](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/app/Http/Controllers/ReportsController.php): `backend/app/Http/Controllers/ReportsController.php`

### Application platform

- [Laravel API routes](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/routes/api.php): `backend/routes/api.php`
- [Domain models](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/tree/main/backend/app/Models): `backend/app/Models`
- [Application database](https://github.com/rtdabz/web-based-intelligent-conflict-detection-and-recommendation-system-for-academic-scheduling/blob/main/backend/config/database.php): `backend/config/database.php`

### Other components

- **Academic staff**

## Connections

- Academic staff → WICARS web app: uses
- WICARS web app → Schedule builder: opens
- WICARS web app → Approval workspace: opens
- WICARS web app → Reports: opens
- Schedule builder → Generation API: requests generation
- Schedule builder → Schedule operations: edits timetable
- Academic staff → Academic catalogs: maintains setup
- Academic staff → Faculty assignments: assigns instructors
- Academic staff → Rooms and requests: manages rooms
- Generation API → Plan generation: generates plans
- Plan generation → Constraint solver: solves constraints
- Schedule operations → Schedule rules: checks conflicts
- Generation API → Plan commit: commits plans
- Academic staff → Approval workspace: reviews schedules
- Approval workspace → Schedule approvals: submits decisions
- Academic staff → Reports and dashboards: views reports
- Academic staff → Schedule history: reviews versions
- Academic catalogs → Laravel API routes: serves requests
- Faculty assignments → Laravel API routes: serves requests
- Rooms and requests → Laravel API routes: serves requests
- Schedule operations → Laravel API routes: serves requests
- Generation API → Laravel API routes: serves requests
- Laravel API routes → Domain models: accesses records
- Domain models → Application database: persists data
