# omclover/clover-rmg-main architecture

> Architecture diagram of the GitHub repository omclover/clover-rmg-main, 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/omclover/clover-rmg-main
- Repository: https://github.com/omclover/clover-rmg-main

## Overview

Clover RMG is a role-based resource management and deployment prototype: users manage employee bench supply and business openings, match people to demand, and track interview/deployment activity. The graph follows the frontend’s routed workspaces and the demonstrated local-data/authentication flow, with resume parsing and storage shown as backend capabilities. The README is empty and several modules are unsampled, so uncertain page-to-service and backend wiring is omitted.

Main entry points: [`frontend/src/App.jsx`](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/App.jsx) (Application routes), [`frontend/src/pages/rmg`](https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/rmg) (RMG workspace), [`frontend/src/pages/admin`](https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/admin) (Admin workspace), [`frontend/src/pages/track-lead`](https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/track-lead) (Track Lead workspace)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and routing"]
  node_app["Application routes<br/>[App.jsx]"]
  node_auth["Auth provider<br/>[AuthContext.jsx]"]
  node_authservice["Demo authentication<br/>[authService.js]"]
  node_protected["Role guards<br/>[ProtectedRoute.jsx]"]
end

subgraph group_workspaces["Resource workflows"]
  node_rmg["RMG workspace"]
  node_tracklead["Track Lead workspace"]
  node_admin["Admin workspace"]
  node_matching["Candidate matching<br/>[dataService.js]"]
  node_interviews["Interview pool<br/>[InterviewPool.jsx]"]
  node_imports["Employee imports<br/>[Imports.jsx]"]
  node_history["History views<br/>[History.jsx]"]
  node_notifications["Notification history"]
end

subgraph group_data["Application data"]
  node_dataservice["Resource data service<br/>[dataService.js]"]
  node_localdata[("Browser data store<br/>[storageService.js]")]
end

subgraph group_resumes["Resume processing"]
  node_resumeapi["Resume API<br/>[resumes.py]"]
  node_parser["Skills parser<br/>[resume_parser.py]"]
  node_resumestore["Resume file storage<br/>[resume_storage.py]"]
end

node_user(("RMG user"))
node_supabase[("Supabase Storage")]

node_user -->|"uses"| node_app
node_app -->|"provides auth"| node_auth
node_app -->|"guards routes"| node_protected
node_app -->|"routes to"| node_rmg
node_app -->|"routes to"| node_tracklead
node_app -->|"routes to"| node_admin
node_auth -->|"authenticates"| node_authservice
node_authservice -->|"loads users"| node_dataservice
node_authservice -->|"stores session"| node_localdata
node_dataservice -->|"reads and writes"| node_localdata
node_rmg -->|"offers matching"| node_matching
node_tracklead -->|"offers matching"| node_matching
node_admin -->|"offers matching"| node_matching
node_rmg -->|"routes to"| node_interviews
node_tracklead -->|"routes to"| node_interviews
node_admin -->|"routes to"| node_interviews
node_rmg -->|"routes to"| node_imports
node_admin -->|"routes to"| node_imports
node_rmg -->|"routes to"| node_history
node_tracklead -->|"routes to"| node_history
node_admin -->|"routes to"| node_history
node_rmg -->|"views notifications"| node_notifications
node_tracklead -->|"views notifications"| node_notifications
node_admin -->|"views notifications"| node_notifications
node_notifications -->|"reads and writes"| node_localdata
node_resumeapi --> node_parser
node_resumeapi --> node_resumestore
node_resumestore -->|"uploads files"| node_supabase

click node_app "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/App.jsx"
click node_auth "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/context/AuthContext.jsx"
click node_authservice "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/authService.js"
click node_protected "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/routes/ProtectedRoute.jsx"
click node_rmg "https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/rmg"
click node_tracklead "https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/track-lead"
click node_admin "https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/admin"
click node_matching "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/dataService.js"
click node_interviews "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/pages/InterviewPool.jsx"
click node_imports "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/pages/rmg/Imports.jsx"
click node_history "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/pages/History.jsx"
click node_notifications "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/notificationService.js"
click node_dataservice "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/dataService.js"
click node_localdata "https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/storageService.js"
click node_resumeapi "https://github.com/omclover/clover-rmg-main/blob/master/backend/app/api/resumes.py"
click node_parser "https://github.com/omclover/clover-rmg-main/blob/master/backend/app/services/resume_parser.py"
click node_resumestore "https://github.com/omclover/clover-rmg-main/blob/master/backend/app/services/resume_storage.py"

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_authservice,node_protected,node_user toneBlue
class node_rmg,node_tracklead,node_admin,node_matching,node_interviews,node_imports,node_history,node_notifications,node_supabase toneAmber
class node_dataservice,node_localdata toneMint
class node_resumeapi,node_parser,node_resumestore toneRose
```

## Components

### Access and routing

- [Application routes](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Auth provider](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Demo authentication](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/authService.js): `frontend/src/services/authService.js`
- [Role guards](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/routes/ProtectedRoute.jsx): `frontend/src/routes/ProtectedRoute.jsx`

### Resource workflows

- [RMG workspace](https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/rmg): `frontend/src/pages/rmg`
- [Track Lead workspace](https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/track-lead): `frontend/src/pages/track-lead`
- [Admin workspace](https://github.com/omclover/clover-rmg-main/tree/master/frontend/src/pages/admin): `frontend/src/pages/admin`
- [Candidate matching](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/dataService.js): `frontend/src/services/dataService.js`
- [Interview pool](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/pages/InterviewPool.jsx): `frontend/src/pages/InterviewPool.jsx`
- [Employee imports](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/pages/rmg/Imports.jsx): `frontend/src/pages/rmg/Imports.jsx`
- [History views](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/pages/History.jsx): `frontend/src/pages/History.jsx`
- [Notification history](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/notificationService.js): `frontend/src/services/notificationService.js`

### Application data

- [Resource data service](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/dataService.js): `frontend/src/services/dataService.js`
- [Browser data store](https://github.com/omclover/clover-rmg-main/blob/master/frontend/src/services/storageService.js): `frontend/src/services/storageService.js`

### Resume processing

- [Resume API](https://github.com/omclover/clover-rmg-main/blob/master/backend/app/api/resumes.py): `backend/app/api/resumes.py`
- [Skills parser](https://github.com/omclover/clover-rmg-main/blob/master/backend/app/services/resume_parser.py): `backend/app/services/resume_parser.py`
- [Resume file storage](https://github.com/omclover/clover-rmg-main/blob/master/backend/app/services/resume_storage.py): `backend/app/services/resume_storage.py`

### Other components

- **RMG user**
- **Supabase Storage**

## Connections

- RMG user → Application routes: uses
- Application routes → Auth provider: provides auth
- Application routes → Role guards: guards routes
- Application routes → RMG workspace: routes to
- Application routes → Track Lead workspace: routes to
- Application routes → Admin workspace: routes to
- Auth provider → Demo authentication: authenticates
- Demo authentication → Resource data service: loads users
- Demo authentication → Browser data store: stores session
- Resource data service → Browser data store: reads and writes
- RMG workspace → Candidate matching: offers matching
- Track Lead workspace → Candidate matching: offers matching
- Admin workspace → Candidate matching: offers matching
- RMG workspace → Interview pool: routes to
- Track Lead workspace → Interview pool: routes to
- Admin workspace → Interview pool: routes to
- RMG workspace → Employee imports: routes to
- Admin workspace → Employee imports: routes to
- RMG workspace → History views: routes to
- Track Lead workspace → History views: routes to
- Admin workspace → History views: routes to
- RMG workspace → Notification history: views notifications
- Track Lead workspace → Notification history: views notifications
- Admin workspace → Notification history: views notifications
- Notification history → Browser data store: reads and writes
- Resume API → Skills parser
- Resume API → Resume file storage
- Resume file storage → Supabase Storage: uploads files
