# summerflamme/bajon-consulting architecture

> Architecture diagram of the GitHub repository summerflamme/bajon-consulting, 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/summerflamme/bajon-consulting
- Repository: https://github.com/summerflamme/bajon-consulting

## Overview

Bajon Consulting Audit is an internal web application for managing clients, users, audit templates and audits, with audit answers used to generate downloadable PowerPoint reports. The frontend routes users through authentication into those management screens; client editing and listing directly access Supabase, while the backend exposes user-management and PPTX endpoints. The README documents audit and template workflows, but their source excerpts were not provided, so uncertain service-call wiring is omitted.

Main entry points: [`Code/Front/Bajon_Consulting_Audit_App/src/routes/AppRoutes.tsx`](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/routes/AppRoutes.tsx) (Application routes), [`Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/PptxService.java`](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/PptxService.java) (PPTX orchestration), [`Code/Front/Bajon_Consulting_Audit_App/src/supabaseClient.ts`](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/supabaseClient.ts) (Supabase client), [`Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientListPage.tsx`](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientListPage.tsx) (Client management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web application"]
  node_app["Application routes<br/>[AppRoutes.tsx]"]
  node_auth["Authentication<br/>[AuthProvider.tsx]"]
end

subgraph group_audit["Audit workflow"]
  node_auditui["Audit management"]
  node_templates["Template management"]
end

subgraph group_management["Administration"]
  node_clients["Client management<br/>[ClientListPage.tsx]"]
  node_clientedit["Client editing<br/>[ClientEdit.tsx]"]
  node_usersui["User management<br/>[UserListPage.tsx]"]
end

subgraph group_backend["Backend API"]
  node_userapi["User endpoints"]
  node_userops["Supabase user service"]
  node_pptxapi["PPTX endpoint"]
  node_pptxservice["PPTX orchestration<br/>[PptxService.java]"]
  node_answers["Audit answer retrieval"]
  node_generator["PowerPoint generation<br/>[PptxGenerator.java]"]
  node_pptxfile["Generated presentation"]
end

subgraph group_integrations["External services"]
  node_supabaseclient["Supabase client<br/>[supabaseClient.ts]"]
  node_supabase[("Supabase platform")]
end

node_staff(("Consulting staff"))
node_backenduser(("API user"))

node_staff -->|"uses"| node_app
node_app -->|"provides routes"| node_auth
node_app -->|"routes to"| node_auditui
node_app -->|"routes to"| node_templates
node_app -->|"routes to"| node_clients
node_app -->|"routes to"| node_usersui
node_clients -->|"queries clients"| node_supabaseclient
node_clientedit -->|"reads and updates"| node_supabaseclient
node_supabaseclient -->|"accesses"| node_supabase
node_backenduser -->|"requests users"| node_userapi
node_userapi -->|"delegates"| node_userops
node_userops -->|"manages accounts"| node_supabase
node_backenduser -->|"requests report"| node_pptxapi
node_pptxapi -->|"generates report"| node_pptxservice
node_pptxservice -->|"fetches answers"| node_answers
node_answers -->|"queries answers"| node_supabase
node_pptxservice -->|"generates slides"| node_generator
node_pptxservice -->|"writes and returns"| node_pptxfile

click node_app "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/routes/AppRoutes.tsx"
click node_auth "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/auth/AuthProvider.tsx"
click node_auditui "https://github.com/summerflamme/bajon-consulting/tree/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/audits"
click node_templates "https://github.com/summerflamme/bajon-consulting/tree/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/templates"
click node_clients "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientListPage.tsx"
click node_clientedit "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientEdit.tsx"
click node_usersui "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/users/UserListPage.tsx"
click node_userapi "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/controller/UsersRestController.java"
click node_userops "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/SupabaseUsersService.java"
click node_pptxapi "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/controller/PptxController.java"
click node_pptxservice "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/PptxService.java"
click node_answers "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/SupabaseAnswersService.java"
click node_generator "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/generator/PptxGenerator.java"
click node_supabaseclient "https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/supabaseClient.ts"

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_auth,node_backenduser toneBlue
class node_auditui,node_templates toneAmber
class node_clients,node_clientedit,node_usersui toneMint
class node_userapi,node_userops,node_pptxapi,node_pptxservice,node_answers,node_generator,node_pptxfile toneRose
class node_supabaseclient,node_supabase,node_staff toneIndigo
```

## Components

### Web application

- [Application routes](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/routes/AppRoutes.tsx): `Code/Front/Bajon_Consulting_Audit_App/src/routes/AppRoutes.tsx`
- [Authentication](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/auth/AuthProvider.tsx): `Code/Front/Bajon_Consulting_Audit_App/src/feature/auth/AuthProvider.tsx`

### Audit workflow

- [Audit management](https://github.com/summerflamme/bajon-consulting/tree/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/audits): `Code/Front/Bajon_Consulting_Audit_App/src/feature/audits`
- [Template management](https://github.com/summerflamme/bajon-consulting/tree/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/templates): `Code/Front/Bajon_Consulting_Audit_App/src/feature/templates`

### Administration

- [Client management](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientListPage.tsx): `Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientListPage.tsx`
- [Client editing](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientEdit.tsx): `Code/Front/Bajon_Consulting_Audit_App/src/feature/clients/ClientEdit.tsx`
- [User management](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/feature/users/UserListPage.tsx): `Code/Front/Bajon_Consulting_Audit_App/src/feature/users/UserListPage.tsx`

### Backend API

- [User endpoints](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/controller/UsersRestController.java): `Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/controller/UsersRestController.java`
- [Supabase user service](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/SupabaseUsersService.java): `Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/SupabaseUsersService.java`
- [PPTX endpoint](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/controller/PptxController.java): `Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/controller/PptxController.java`
- [PPTX orchestration](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/PptxService.java): `Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/PptxService.java`
- [Audit answer retrieval](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/SupabaseAnswersService.java): `Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/service/SupabaseAnswersService.java`
- [PowerPoint generation](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/generator/PptxGenerator.java): `Code/Back/Bajon_audit_App/src/main/java/com/bajonconsulting/Bajon_audit_App/generator/PptxGenerator.java`
- **Generated presentation**

### External services

- [Supabase client](https://github.com/summerflamme/bajon-consulting/blob/main/Code/Front/Bajon_Consulting_Audit_App/src/supabaseClient.ts): `Code/Front/Bajon_Consulting_Audit_App/src/supabaseClient.ts`
- **Supabase platform**

### Other components

- **Consulting staff**
- **API user**

## Connections

- Consulting staff → Application routes: uses
- Application routes → Authentication: provides routes
- Application routes → Audit management: routes to
- Application routes → Template management: routes to
- Application routes → Client management: routes to
- Application routes → User management: routes to
- Client management → Supabase client: queries clients
- Client editing → Supabase client: reads and updates
- Supabase client → Supabase platform: accesses
- API user → User endpoints: requests users
- User endpoints → Supabase user service: delegates
- Supabase user service → Supabase platform: manages accounts
- API user → PPTX endpoint: requests report
- PPTX endpoint → PPTX orchestration: generates report
- PPTX orchestration → Audit answer retrieval: fetches answers
- Audit answer retrieval → Supabase platform: queries answers
- PPTX orchestration → PowerPoint generation: generates slides
- PPTX orchestration → Generated presentation: writes and returns
