# harveeofficial/csua-intrams architecture

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

- Interactive diagram: https://gitdiagram.com/harveeofficial/csua-intrams
- Repository: https://github.com/harveeofficial/csua-intrams

## Overview

CsuaIntrams is a university intramural sports and University Meet information system. Visitors browse event programs, schedules, standings, polls, downloads, and event information; staff and administrators manage schedules, colleges, sports, scores, and other operational content through an Angular application backed by a Laravel API and MySQL. The graph preserves major documented and routed capabilities, but several feature implementations were not excerpted; those subsystems are shown without speculative internal call chains.

Main entry points: [`src/app/app.routes.ts`](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/app.routes.ts) (Application routes), [`laravel-api/routes/api.php`](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/routes/api.php) (API route dispatch), [`laravel-api/app/Http/Controllers/Api/ScheduleController.php`](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/ScheduleController.php) (Schedule API), [`src/app/admin/admin.routes.ts`](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/admin.routes.ts) (Admin routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Angular application"]
  node_angular["Application routes<br/>[app.routes.ts]"]
  node_adminroutes["Admin routes<br/>[admin.routes.ts]"]
  node_authui["Login and session"]
  node_dataapi["Data API client"]
  node_program["Program of events"]
  node_standings["Standings and rankings<br/>[standings.ts]"]
  node_scheduleui["Schedule views"]
  node_collegeadmin["College management<br/>[college-details.ts]"]
  node_scheduleadmin["Schedule administration"]
  node_sportsadmin["Sports administration<br/>[sports.ts]"]
  node_meetui["University Meet<br/>[university-meet.ts]"]
  node_pollui["Polls<br/>[polls.ts]"]
  node_otherui["Public and admin features"]
end

subgraph group_api["Laravel API"]
  node_routes["API route dispatch<br/>[api.php]"]
  node_authcontroller["Authentication API<br/>[AuthController.php]"]
  node_collegecontroller["College and score API"]
  node_schedulecontroller["Schedule API"]
  node_pollcontroller["Poll API<br/>[PollController.php]"]
  node_othercontrollers["Other feature APIs"]
end

subgraph group_domain["Competition data"]
  node_collegedata[("Colleges and scores<br/>[College.php]")]
  node_eventdata[("Event definitions")]
  node_sportdata[("Sports<br/>[Sport.php]")]
  node_scheduledata[("Schedules and teams<br/>[ScheduleEntry.php]")]
  node_userdata[("Accounts and roles<br/>[User.php]")]
  node_pollsdata[("Polls and votes<br/>[Poll.php]")]
end

subgraph group_features["Meet features"]
end

node_visitor(("Visitor or staff"))
node_mysql[("MySQL")]

node_visitor -->|"uses"| node_angular
node_angular -->|"routes to"| node_program
node_angular -->|"routes to"| node_standings
node_angular -->|"routes to"| node_scheduleui
node_angular -->|"routes to"| node_meetui
node_angular -->|"routes to"| node_pollui
node_angular -->|"routes to"| node_otherui
node_angular -->|"loads"| node_adminroutes
node_adminroutes -->|"routes to"| node_collegeadmin
node_adminroutes -->|"routes to"| node_scheduleadmin
node_adminroutes -->|"routes to"| node_sportsadmin
node_authui -.->|"requests API"| node_routes
node_dataapi -.->|"requests API"| node_routes
node_routes -->|"dispatches"| node_authcontroller
node_routes -->|"dispatches"| node_collegecontroller
node_routes -->|"dispatches"| node_schedulecontroller
node_routes -->|"dispatches"| node_pollcontroller
node_routes -->|"dispatches"| node_othercontrollers
node_collegecontroller -->|"reads and writes"| node_collegedata
node_collegecontroller -->|"reads and writes"| node_eventdata
node_schedulecontroller -->|"reads and writes"| node_scheduledata
node_schedulecontroller -->|"resolves teams"| node_collegedata
node_schedulecontroller -->|"uses definitions"| node_eventdata
node_schedulecontroller -->|"uses sports"| node_sportdata
node_authcontroller -->|"authenticates"| node_userdata
node_pollcontroller -->|"reads and writes"| node_pollsdata
node_othercontrollers -.->|"persists data"| node_mysql
node_collegedata -.->|"persists data"| node_mysql
node_eventdata -.->|"persists data"| node_mysql
node_sportdata -.->|"persists data"| node_mysql
node_scheduledata -.->|"persists data"| node_mysql
node_userdata -.->|"persists data"| node_mysql
node_pollsdata -.->|"persists data"| node_mysql

click node_angular "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/app.routes.ts"
click node_adminroutes "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/admin.routes.ts"
click node_authui "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/auth-api.service.ts"
click node_dataapi "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/data-api.service.ts"
click node_program "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/program-of-events/program-of-events.ts"
click node_standings "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/standings/standings.ts"
click node_scheduleui "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/event-sched-and-stats/event-sched-and-stats.ts"
click node_collegeadmin "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/colleges/college-details/college-details.ts"
click node_scheduleadmin "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/event-sched-and-stats/event-sched-and-stats.ts"
click node_sportsadmin "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/sports/sports.ts"
click node_meetui "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/university-meet/university-meet.ts"
click node_pollui "https://github.com/harveeofficial/csua-intrams/blob/main/src/app/polls/polls.ts"
click node_otherui "https://github.com/harveeofficial/csua-intrams/tree/main/src/app"
click node_routes "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/routes/api.php"
click node_authcontroller "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/AuthController.php"
click node_collegecontroller "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/CollegeController.php"
click node_schedulecontroller "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/ScheduleController.php"
click node_pollcontroller "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/PollController.php"
click node_othercontrollers "https://github.com/harveeofficial/csua-intrams/tree/main/laravel-api/app/Http/Controllers/Api"
click node_collegedata "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/College.php"
click node_eventdata "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/EventDefinition.php"
click node_sportdata "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/Sport.php"
click node_scheduledata "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/ScheduleEntry.php"
click node_userdata "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/User.php"
click node_pollsdata "https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/Poll.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_angular,node_adminroutes,node_authui,node_dataapi,node_program,node_standings,node_scheduleui,node_collegeadmin,node_scheduleadmin,node_sportsadmin,node_meetui,node_pollui,node_otherui toneBlue
class node_routes,node_authcontroller,node_collegecontroller,node_schedulecontroller,node_pollcontroller,node_othercontrollers,node_mysql toneAmber
class node_collegedata,node_eventdata,node_sportdata,node_scheduledata,node_userdata,node_pollsdata toneMint
class node_visitor toneIndigo
```

## Components

### Angular application

- [Application routes](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/app.routes.ts): `src/app/app.routes.ts`
- [Admin routes](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/admin.routes.ts): `src/app/admin/admin.routes.ts`
- [Login and session](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/auth-api.service.ts): `src/app/auth-api.service.ts`
- [Data API client](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/data-api.service.ts): `src/app/data-api.service.ts`
- [Program of events](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/program-of-events/program-of-events.ts): `src/app/program-of-events/program-of-events.ts`
- [Standings and rankings](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/standings/standings.ts): `src/app/standings/standings.ts`
- [Schedule views](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/event-sched-and-stats/event-sched-and-stats.ts): `src/app/event-sched-and-stats/event-sched-and-stats.ts`
- [College management](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/colleges/college-details/college-details.ts): `src/app/admin/colleges/college-details/college-details.ts`
- [Schedule administration](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/event-sched-and-stats/event-sched-and-stats.ts): `src/app/admin/event-sched-and-stats/event-sched-and-stats.ts`
- [Sports administration](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/admin/sports/sports.ts): `src/app/admin/sports/sports.ts`
- [University Meet](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/university-meet/university-meet.ts): `src/app/university-meet/university-meet.ts`
- [Polls](https://github.com/harveeofficial/csua-intrams/blob/main/src/app/polls/polls.ts): `src/app/polls/polls.ts`
- [Public and admin features](https://github.com/harveeofficial/csua-intrams/tree/main/src/app): `src/app`

### Laravel API

- [API route dispatch](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/routes/api.php): `laravel-api/routes/api.php`
- [Authentication API](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/AuthController.php): `laravel-api/app/Http/Controllers/Api/AuthController.php`
- [College and score API](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/CollegeController.php): `laravel-api/app/Http/Controllers/Api/CollegeController.php`
- [Schedule API](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/ScheduleController.php): `laravel-api/app/Http/Controllers/Api/ScheduleController.php`
- [Poll API](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Http/Controllers/Api/PollController.php): `laravel-api/app/Http/Controllers/Api/PollController.php`
- [Other feature APIs](https://github.com/harveeofficial/csua-intrams/tree/main/laravel-api/app/Http/Controllers/Api): `laravel-api/app/Http/Controllers/Api`

### Competition data

- [Colleges and scores](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/College.php): `laravel-api/app/Models/College.php`
- [Event definitions](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/EventDefinition.php): `laravel-api/app/Models/EventDefinition.php`
- [Sports](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/Sport.php): `laravel-api/app/Models/Sport.php`
- [Schedules and teams](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/ScheduleEntry.php): `laravel-api/app/Models/ScheduleEntry.php`
- [Accounts and roles](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/User.php): `laravel-api/app/Models/User.php`
- [Polls and votes](https://github.com/harveeofficial/csua-intrams/blob/main/laravel-api/app/Models/Poll.php): `laravel-api/app/Models/Poll.php`

### Other components

- **Visitor or staff**
- **MySQL**

## Connections

- Visitor or staff → Application routes: uses (evidence: `src/app/app.routes.ts`)
- Application routes → Program of events: routes to (evidence: `src/app/app.routes.ts`)
- Application routes → Standings and rankings: routes to (evidence: `src/app/app.routes.ts`)
- Application routes → Schedule views: routes to (evidence: `src/app/app.routes.ts`)
- Application routes → University Meet: routes to (evidence: `src/app/app.routes.ts`)
- Application routes → Polls: routes to (evidence: `src/app/app.routes.ts`)
- Application routes → Public and admin features: routes to (evidence: `src/app/app.routes.ts`)
- Application routes → Admin routes: loads (evidence: `src/app/app.routes.ts`)
- Admin routes → College management: routes to (evidence: `src/app/admin/admin.routes.ts`)
- Admin routes → Schedule administration: routes to (evidence: `src/app/admin/admin.routes.ts`)
- Admin routes → Sports administration: routes to (evidence: `src/app/admin/admin.routes.ts`)
- Login and session → API route dispatch: requests API
- Data API client → API route dispatch: requests API
- API route dispatch → Authentication API: dispatches (evidence: `laravel-api/routes/api.php`)
- API route dispatch → College and score API: dispatches (evidence: `laravel-api/routes/api.php`)
- API route dispatch → Schedule API: dispatches (evidence: `laravel-api/routes/api.php`)
- API route dispatch → Poll API: dispatches (evidence: `laravel-api/routes/api.php`)
- API route dispatch → Other feature APIs: dispatches (evidence: `laravel-api/routes/api.php`)
- College and score API → Colleges and scores: reads and writes (evidence: `laravel-api/app/Http/Controllers/Api/CollegeController.php`)
- College and score API → Event definitions: reads and writes (evidence: `laravel-api/app/Http/Controllers/Api/CollegeController.php`)
- Schedule API → Schedules and teams: reads and writes (evidence: `laravel-api/app/Http/Controllers/Api/ScheduleController.php`)
- Schedule API → Colleges and scores: resolves teams (evidence: `laravel-api/app/Http/Controllers/Api/ScheduleController.php`)
- Schedule API → Event definitions: uses definitions (evidence: `laravel-api/app/Http/Controllers/Api/ScheduleController.php`)
- Schedule API → Sports: uses sports (evidence: `laravel-api/app/Http/Controllers/Api/ScheduleController.php`)
- Authentication API → Accounts and roles: authenticates (evidence: `laravel-api/app/Http/Controllers/Api/AuthController.php`)
- Poll API → Polls and votes: reads and writes (evidence: `laravel-api/app/Http/Controllers/Api/PollController.php`)
- Other feature APIs → MySQL: persists data
- Colleges and scores → MySQL: persists data
- Event definitions → MySQL: persists data
- Sports → MySQL: persists data
- Schedules and teams → MySQL: persists data
- Accounts and roles → MySQL: persists data
- Polls and votes → MySQL: persists data
