# tech4ward2027/registrar-information-system architecture

> Architecture diagram of the GitHub repository tech4ward2027/registrar-information-system, 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/tech4ward2027/registrar-information-system
- Repository: https://github.com/tech4ward2027/registrar-information-system

## Overview

This repository is a Registrar Information System: a React frontend and Laravel API for document-request filing and processing, account access, and registrar operations. The clearest user journey is a student entering the request experience, with the frontend routing to the request form and the API exposing document-request endpoints; the supplied excerpts do not show the form’s API calls or the request service’s internal flow. Other visible capabilities include SSO, AI analytics, audit logging, and undergraduate-requestor enrollment checks. Some major modules are listed but unsampled, so uncertain links are omitted.

Main entry points: [`registrar-backend/app/Services/Sso/SsoAuthService.php`](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/Sso/SsoAuthService.php) (SSO authentication), [`registrar-frontend/src/App.jsx`](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-frontend/src/App.jsx) (Application routes), [`registrar-backend/app/Services/AuditLogger.php`](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/AuditLogger.php) (Audit logging), [`registrar-frontend/src/context/AuthProvider.jsx`](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-frontend/src/context/AuthProvider.jsx) (Auth provider)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Application routes<br/>[App.jsx]"]
  node_requestform["Request form"]
  node_frontend_auth["Auth provider<br/>[AuthProvider.jsx]"]
  node_api_client["API client"]
end

subgraph group_request["Request operations"]
  node_api_routes["API routes<br/>[api.php]"]
  node_request_controller["Document requests"]
  node_request_service["Request processing"]
  node_request_store[("Request records")]
end

subgraph group_identity["Identity and access"]
  node_sso["SSO authentication<br/>[SsoAuthService.php]"]
  node_users[("User accounts<br/>[SystemUser.php]")]
  node_policies[("Access policies<br/>[Policy.php]")]
end

subgraph group_insight["Analytics and audit"]
  node_analytics["Analytics service"]
  node_ai_query["AI query endpoint"]
  node_audit_logger["Audit logging<br/>[AuditLogger.php]"]
  node_audit_store[("Audit records<br/>[AuditLog.php]")]
end

subgraph group_integrations["External systems"]
  node_idp{{"Identity provider"}}
  node_enrollment_lookup["Enrollment check"]
  node_ogos{{"OGOS system"}}
end

node_user(("Registrar user"))

node_user -.->|"uses"| node_app
node_app -->|"routes to"| node_requestform
node_api_routes -->|"routes to"| node_request_controller
node_sso -->|"exchanges credentials"| node_idp
node_sso -->|"provisions account"| node_users
node_sso -->|"records login"| node_audit_logger
node_audit_logger -->|"writes entries"| node_audit_store
node_enrollment_lookup -->|"looks up enrollment"| node_ogos
node_ai_query -->|"injects dependency"| node_analytics
node_frontend_auth -->|"calls API"| node_api_client

click node_app "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-frontend/src/App.jsx"
click node_requestform "https://github.com/tech4ward2027/registrar-information-system/tree/main/registrar-frontend/src/layouts"
click node_frontend_auth "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-frontend/src/context/AuthProvider.jsx"
click node_api_client "https://github.com/tech4ward2027/registrar-information-system/tree/main/registrar-frontend/src/services"
click node_api_routes "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/routes/api.php"
click node_request_controller "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Http/Controllers/DocumentRequestController.php"
click node_request_service "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/DocumentRequestService.php"
click node_request_store "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/DocumentRequest.php"
click node_sso "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/Sso/SsoAuthService.php"
click node_users "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/SystemUser.php"
click node_policies "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/Policy.php"
click node_enrollment_lookup "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/Ogos/OgosEnrollmentLookupClient.php"
click node_analytics "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/AnalyticsService.php"
click node_ai_query "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Http/Controllers/AiQueryController.php"
click node_audit_logger "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/AuditLogger.php"
click node_audit_store "https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/AuditLog.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_app,node_requestform,node_frontend_auth,node_api_client,node_user toneBlue
class node_api_routes,node_request_controller,node_request_service,node_request_store toneAmber
class node_sso,node_users,node_policies toneMint
class node_analytics,node_ai_query,node_audit_logger,node_audit_store toneRose
class node_idp,node_enrollment_lookup,node_ogos toneIndigo
```

## Components

### Web client

- [Application routes](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-frontend/src/App.jsx): `registrar-frontend/src/App.jsx`
- [Request form](https://github.com/tech4ward2027/registrar-information-system/tree/main/registrar-frontend/src/layouts): `registrar-frontend/src/layouts`
- [Auth provider](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-frontend/src/context/AuthProvider.jsx): `registrar-frontend/src/context/AuthProvider.jsx`
- [API client](https://github.com/tech4ward2027/registrar-information-system/tree/main/registrar-frontend/src/services): `registrar-frontend/src/services`

### Request operations

- [API routes](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/routes/api.php): `registrar-backend/routes/api.php`
- [Document requests](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Http/Controllers/DocumentRequestController.php): `registrar-backend/app/Http/Controllers/DocumentRequestController.php`
- [Request processing](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/DocumentRequestService.php): `registrar-backend/app/Services/DocumentRequestService.php`
- [Request records](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/DocumentRequest.php): `registrar-backend/app/Models/DocumentRequest.php`

### Identity and access

- [SSO authentication](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/Sso/SsoAuthService.php): `registrar-backend/app/Services/Sso/SsoAuthService.php`
- [User accounts](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/SystemUser.php): `registrar-backend/app/Models/SystemUser.php`
- [Access policies](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/Policy.php): `registrar-backend/app/Models/Policy.php`

### Analytics and audit

- [Analytics service](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/AnalyticsService.php): `registrar-backend/app/Services/AnalyticsService.php`
- [AI query endpoint](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Http/Controllers/AiQueryController.php): `registrar-backend/app/Http/Controllers/AiQueryController.php`
- [Audit logging](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/AuditLogger.php): `registrar-backend/app/Services/AuditLogger.php`
- [Audit records](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Models/AuditLog.php): `registrar-backend/app/Models/AuditLog.php`

### External systems

- **Identity provider**
- [Enrollment check](https://github.com/tech4ward2027/registrar-information-system/blob/main/registrar-backend/app/Services/Ogos/OgosEnrollmentLookupClient.php): `registrar-backend/app/Services/Ogos/OgosEnrollmentLookupClient.php`
- **OGOS system**

### Other components

- **Registrar user**

## Connections

- Registrar user → Application routes: uses
- Application routes → Request form: routes to (evidence: `registrar-frontend/src/App.jsx`)
- API routes → Document requests: routes to (evidence: `registrar-backend/routes/api.php`)
- SSO authentication → Identity provider: exchanges credentials (evidence: `registrar-backend/app/Services/Sso/SsoAuthService.php`)
- SSO authentication → User accounts: provisions account (evidence: `registrar-backend/app/Services/Sso/SsoAuthService.php`)
- SSO authentication → Audit logging: records login (evidence: `registrar-backend/app/Services/Sso/SsoAuthService.php`)
- Audit logging → Audit records: writes entries (evidence: `registrar-backend/app/Services/AuditLogger.php`)
- Enrollment check → OGOS system: looks up enrollment (evidence: `registrar-backend/app/Services/Ogos/OgosEnrollmentLookupClient.php`)
- AI query endpoint → Analytics service: injects dependency (evidence: `registrar-backend/app/Http/Controllers/AiQueryController.php`)
- Auth provider → API client: calls API (evidence: `registrar-frontend/src/services/authService.js`)
