# mikhail2574/sdt-213-final architecture

> Architecture diagram of the GitHub repository mikhail2574/sdt-213-final, 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/mikhail2574/sdt-213-final
- Repository: https://github.com/mikhail2574/sdt-213-final

## Overview

Core Platform Admin App is an administrative console and REST backend for account, access, communication, reporting, and platform configuration workflows. Users enter through the web app; authenticated routes expose feature pages, whose API calls use a shared bearer-token client to reach the backend. The excerpts establish several service-to-repository relationships, but most backend controllers and feature API wiring were not sampled, so those links are omitted rather than inferred.

Main entry points: [`Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx) (Route access), [`Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuthService.java`](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuthService.java) (Authentication), [`Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AccessService.java`](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AccessService.java) (Permission checks), [`Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java`](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java) (Email link flows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web console"]
  node_app["Web application<br/>[App.tsx]"]
  node_routes["Route access<br/>[AppRoutes.tsx]"]
  node_api_client["API client<br/>[client.ts]"]
end

subgraph group_identity["Identity and access"]
  node_auth_pages["Sign-in pages"]
  node_auth_service["Authentication<br/>[AuthService.java]"]
  node_email_links["Email link flows"]
  node_access["Permission checks<br/>[AccessService.java]"]
  node_profile_ui["Profile<br/>[ProfilePage.tsx]"]
end

subgraph group_operations["Administration"]
  node_users["User administration<br/>[UserService.java]"]
  node_audit["Audit history"]
  node_admin_ui["Admin console<br/>[DashboardPage.tsx]"]
  node_directory_ui["People directory<br/>[DirectoryPage.tsx]"]
  node_reports_ui["Reports<br/>[ReportsPage.tsx]"]
  node_roles_ui["Role management<br/>[RolesPage.tsx]"]
  node_settings_ui["Platform settings<br/>[SettingsPage.tsx]"]
  node_audit_ui["Audit viewer<br/>[AuditLogPage.tsx]"]
end

subgraph group_communication["Communication"]
  node_notifications["Notifications"]
  node_messages["Messaging"]
  node_messages_ui["Messaging UI<br/>[MessagesPage.tsx]"]
  node_announcements_ui["Announcements"]
end

subgraph group_backend["Backend services"]
  node_user_records["User records"]
  node_platform_store[("Platform data access")]
end

node_administrator(("Console user"))

node_administrator -->|"uses"| node_app
node_app -->|"renders"| node_routes
node_routes -->|"routes to"| node_auth_pages
node_routes -->|"routes to"| node_admin_ui
node_routes -->|"routes to"| node_directory_ui
node_routes -->|"routes to"| node_reports_ui
node_routes -->|"routes to"| node_roles_ui
node_routes -->|"routes to"| node_settings_ui
node_routes -->|"routes to"| node_messages_ui
node_routes -->|"routes to"| node_announcements_ui
node_routes -->|"routes to"| node_audit_ui
node_auth_service -->|"reads and updates"| node_user_records
node_auth_service -->|"records events"| node_audit
node_auth_service -.->|"starts sessions"| node_access
node_email_links -->|"reads and writes"| node_user_records
node_email_links -->|"records events"| node_audit
node_email_links -.->|"delegates to"| node_auth_service
node_users -->|"manages accounts"| node_user_records
node_users -->|"checks permissions"| node_access
node_users -.->|"records events"| node_audit
node_notifications -->|"checks permissions"| node_access
node_notifications -->|"reads and writes"| node_platform_store
node_messages -->|"checks permissions"| node_access
node_messages -->|"dispatches notices"| node_notifications
node_api_client -.->|"calls REST API"| node_auth_service
node_profile_ui -.->|"uses API"| node_api_client
node_messages_ui -.->|"uses API"| node_api_client

click node_app "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/App.tsx"
click node_routes "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx"
click node_api_client "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/api/client.ts"
click node_auth_pages "https://github.com/mikhail2574/sdt-213-final/tree/main/Core_Platform_Admin_App/frontend/src/features/auth"
click node_auth_service "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuthService.java"
click node_email_links "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java"
click node_users "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserService.java"
click node_user_records "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserRepository.java"
click node_access "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AccessService.java"
click node_platform_store "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/PlatformRepository.java"
click node_audit "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuditRepository.java"
click node_notifications "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/NotificationService.java"
click node_messages "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/MessageService.java"
click node_admin_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/dashboard/DashboardPage.tsx"
click node_directory_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/directory/DirectoryPage.tsx"
click node_reports_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/reports/ReportsPage.tsx"
click node_roles_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/roles/RolesPage.tsx"
click node_settings_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/settings/SettingsPage.tsx"
click node_messages_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/messages/MessagesPage.tsx"
click node_announcements_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/announcements/AnnouncementsPage.tsx"
click node_audit_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/audit/AuditLogPage.tsx"
click node_profile_ui "https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/profile/ProfilePage.tsx"

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_routes,node_api_client,node_administrator toneBlue
class node_auth_pages,node_auth_service,node_email_links,node_access,node_profile_ui toneAmber
class node_users,node_audit,node_admin_ui,node_directory_ui,node_reports_ui,node_roles_ui,node_settings_ui,node_audit_ui toneMint
class node_notifications,node_messages,node_messages_ui,node_announcements_ui toneRose
class node_user_records,node_platform_store toneIndigo
```

## Components

### Web console

- [Web application](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/App.tsx): `Core_Platform_Admin_App/frontend/src/App.tsx`
- [Route access](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx): `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`
- [API client](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/api/client.ts): `Core_Platform_Admin_App/frontend/src/api/client.ts`

### Identity and access

- [Sign-in pages](https://github.com/mikhail2574/sdt-213-final/tree/main/Core_Platform_Admin_App/frontend/src/features/auth): `Core_Platform_Admin_App/frontend/src/features/auth`
- [Authentication](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuthService.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuthService.java`
- [Email link flows](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java`
- [Permission checks](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AccessService.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AccessService.java`
- [Profile](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/profile/ProfilePage.tsx): `Core_Platform_Admin_App/frontend/src/features/profile/ProfilePage.tsx`

### Administration

- [User administration](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserService.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserService.java`
- [Audit history](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuditRepository.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuditRepository.java`
- [Admin console](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/dashboard/DashboardPage.tsx): `Core_Platform_Admin_App/frontend/src/features/dashboard/DashboardPage.tsx`
- [People directory](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/directory/DirectoryPage.tsx): `Core_Platform_Admin_App/frontend/src/features/directory/DirectoryPage.tsx`
- [Reports](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/reports/ReportsPage.tsx): `Core_Platform_Admin_App/frontend/src/features/reports/ReportsPage.tsx`
- [Role management](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/roles/RolesPage.tsx): `Core_Platform_Admin_App/frontend/src/features/roles/RolesPage.tsx`
- [Platform settings](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/settings/SettingsPage.tsx): `Core_Platform_Admin_App/frontend/src/features/settings/SettingsPage.tsx`
- [Audit viewer](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/audit/AuditLogPage.tsx): `Core_Platform_Admin_App/frontend/src/features/audit/AuditLogPage.tsx`

### Communication

- [Notifications](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/NotificationService.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/NotificationService.java`
- [Messaging](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/MessageService.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/MessageService.java`
- [Messaging UI](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/messages/MessagesPage.tsx): `Core_Platform_Admin_App/frontend/src/features/messages/MessagesPage.tsx`
- [Announcements](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/frontend/src/features/announcements/AnnouncementsPage.tsx): `Core_Platform_Admin_App/frontend/src/features/announcements/AnnouncementsPage.tsx`

### Backend services

- [User records](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserRepository.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserRepository.java`
- [Platform data access](https://github.com/mikhail2574/sdt-213-final/blob/main/Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/PlatformRepository.java): `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/PlatformRepository.java`

### Other components

- **Console user**

## Connections

- Console user → Web application: uses
- Web application → Route access: renders (evidence: `Core_Platform_Admin_App/frontend/src/App.tsx`)
- Route access → Sign-in pages: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → Admin console: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → People directory: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → Reports: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → Role management: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → Platform settings: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → Messaging UI: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → Announcements: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Route access → Audit viewer: routes to (evidence: `Core_Platform_Admin_App/frontend/src/routes/AppRoutes.tsx`)
- Authentication → User records: reads and updates (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuthService.java`)
- Authentication → Audit history: records events (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/AuthService.java`)
- Authentication → Permission checks: starts sessions
- Email link flows → User records: reads and writes (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java`)
- Email link flows → Audit history: records events (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java`)
- Email link flows → Authentication: delegates to (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/EmailLinkService.java`)
- User administration → User records: manages accounts (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserService.java`)
- User administration → Permission checks: checks permissions (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserService.java`)
- User administration → Audit history: records events (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/UserService.java`)
- Notifications → Permission checks: checks permissions (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/NotificationService.java`)
- Notifications → Platform data access: reads and writes (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/NotificationService.java`)
- Messaging → Permission checks: checks permissions (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/MessageService.java`)
- Messaging → Notifications: dispatches notices (evidence: `Core_Platform_Admin_App/backend/src/main/java/dev/coreplatform/MessageService.java`)
- API client → Authentication: calls REST API
- Profile → API client: uses API
- Messaging UI → API client: uses API
