# rareminds-eym/skillpassport architecture

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

- Interactive diagram: https://gitdiagram.com/rareminds-eym/skillpassport
- Repository: https://github.com/rareminds-eym/skillpassport

## Overview

Skill Ecosystem is an education and career-development platform serving learners, educators, institutions, and employers. The learner journey is profile setup, career assessment, opportunity/course discovery, and application tracking; educator and institutional workflows center on academic administration and progress reporting, while recruiters manage hiring pipelines. The graph also preserves analytics, AI guidance, course learning, messaging, subscriptions, and shared authentication/API layers. Relationships are limited to README statements and shown source references/calls; unsampled feature wiring is not asserted.

Main entry points: [`src/App.tsx`](https://github.com/rareminds-eym/skillpassport/blob/main/src/App.tsx) (Web application), [`src/pages/recruiter/Pipelines.tsx`](https://github.com/rareminds-eym/skillpassport/blob/main/src/pages/recruiter/Pipelines.tsx) (Recruiter pipeline UI), [`src/shared/api/apiClient.ts`](https://github.com/rareminds-eym/skillpassport/blob/main/src/shared/api/apiClient.ts) (API client), [`functions/api/recruiter-pipeline/[[path]].ts`](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/recruiter-pipeline/%5B%5Bpath%5D%5D.ts) (Recruitment pipeline)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Web experience"]
  node_web["Web application<br/>[App.tsx]"]
  node_learner_routes["Learner routes<br/>[learnerRoutes.jsx]"]
  node_admin_routes["Admin routes<br/>[adminRoutes.jsx]"]
end

subgraph group_learning["Learning and guidance"]
  node_assessment_ui["Assessment service"]
  node_assessment_api["Assessment API<br/>[&#91;&#91;path&#93;&#93;.ts]"]
  node_career_guidance["AI career guidance<br/>[chat.ts]"]
  node_course_marketplace["Course marketplace<br/>[&#91;&#91;path&#93;&#93;.ts]"]
end

subgraph group_hiring["Career and hiring"]
  node_applications["Applications<br/>[Applications.jsx]"]
  node_recruiter_pipeline_ui["Recruiter pipeline UI<br/>[Pipelines.tsx]"]
  node_recruitment_api["Recruitment pipeline<br/>[&#91;&#91;path&#93;&#93;.ts]"]
  node_recruiter_ai["Recruiter intelligence"]
end

subgraph group_operations["Institution operations"]
  node_academic_admin["Academic management<br/>[&#91;&#91;path&#93;&#93;.ts]"]
  node_analytics["Analytics<br/>[dashboard.ts]"]
end

subgraph group_platform["Platform services"]
  node_messaging["Messaging<br/>[actions.ts]"]
  node_subscription["Subscriptions<br/>[&#91;&#91;path&#93;&#93;.ts]"]
  node_auth_store["Authentication state<br/>[authStore.ts]"]
  node_sso["SSO client<br/>[ssoClient.ts]"]
  node_api_client["API client<br/>[apiClient.ts]"]
  node_worker["Pages Functions<br/>[_worker.js]"]
  node_supabase[("Supabase data store<br/>[supabase.ts]")]
end

node_learner(("Learner"))
node_educator(("Educator"))
node_recruiter(("Recruiter"))

node_learner -->|"uses"| node_web
node_educator -->|"uses"| node_web
node_recruiter -->|"uses"| node_web
node_web -->|"routes through"| node_learner_routes
node_web -->|"routes through"| node_admin_routes
node_learner -->|"takes assessment"| node_assessment_ui
node_assessment_ui -.->|"uses"| node_assessment_api
node_learner -->|"gets guidance"| node_career_guidance
node_learner -->|"explores courses"| node_course_marketplace
node_learner -->|"tracks applications"| node_applications
node_recruiter -->|"manages hiring"| node_recruiter_pipeline_ui
node_recruiter_pipeline_ui -.->|"updates pipeline"| node_recruitment_api
node_recruiter_pipeline_ui -.->|"gets recommendations"| node_recruiter_ai
node_recruiter_ai -.->|"analyzes candidates"| node_recruitment_api
node_educator -->|"manages academics"| node_academic_admin
node_educator -->|"reviews progress"| node_analytics
node_applications -->|"requests data"| node_api_client
node_api_client -->|"fetches with"| node_sso
node_auth_store -->|"authenticates through"| node_sso
node_sso -->|"proxies auth requests"| node_worker
node_api_client -.->|"sends API requests"| node_worker
node_assessment_api -.->|"reads and writes"| node_supabase
node_academic_admin -.->|"reads and writes"| node_supabase
node_recruitment_api -.->|"reads and writes"| node_supabase
node_learner -->|"uses paid features"| node_subscription
node_learner -.->|"communicates"| node_messaging

click node_web "https://github.com/rareminds-eym/skillpassport/blob/main/src/App.tsx"
click node_learner_routes "https://github.com/rareminds-eym/skillpassport/blob/main/src/app/routes/learnerRoutes.jsx"
click node_admin_routes "https://github.com/rareminds-eym/skillpassport/blob/main/src/app/routes/adminRoutes.jsx"
click node_applications "https://github.com/rareminds-eym/skillpassport/blob/main/src/pages/learner/Applications.jsx"
click node_recruiter_pipeline_ui "https://github.com/rareminds-eym/skillpassport/blob/main/src/pages/recruiter/Pipelines.tsx"
click node_assessment_ui "https://github.com/rareminds-eym/skillpassport/blob/main/src/features/assessment/model/useAssessmentService.ts"
click node_assessment_api "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/assessment/%5B%5Bpath%5D%5D.ts"
click node_career_guidance "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/career/handlers/chat.ts"
click node_course_marketplace "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/course/%5B%5Bpath%5D%5D.ts"
click node_academic_admin "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/college-admin/%5B%5Bpath%5D%5D.ts"
click node_analytics "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/analytics/dashboard.ts"
click node_recruitment_api "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/recruiter-pipeline/%5B%5Bpath%5D%5D.ts"
click node_recruiter_ai "https://github.com/rareminds-eym/skillpassport/blob/main/src/features/recruiter-copilot/api/recruiterIntelligenceEngine.ts"
click node_messaging "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/messaging/actions.ts"
click node_subscription "https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/payments/%5B%5Bpath%5D%5D.ts"
click node_auth_store "https://github.com/rareminds-eym/skillpassport/blob/main/src/shared/model/authStore.ts"
click node_sso "https://github.com/rareminds-eym/skillpassport/blob/main/src/shared/api/ssoClient.ts"
click node_api_client "https://github.com/rareminds-eym/skillpassport/blob/main/src/shared/api/apiClient.ts"
click node_worker "https://github.com/rareminds-eym/skillpassport/blob/main/functions/_worker.js"
click node_supabase "https://github.com/rareminds-eym/skillpassport/blob/main/functions/lib/supabase.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_web,node_learner_routes,node_admin_routes toneBlue
class node_assessment_ui,node_assessment_api,node_career_guidance,node_course_marketplace toneAmber
class node_applications,node_recruiter_pipeline_ui,node_recruitment_api,node_recruiter_ai toneMint
class node_academic_admin,node_analytics toneRose
class node_messaging,node_subscription,node_auth_store,node_sso,node_api_client,node_worker,node_supabase,node_learner,node_educator,node_recruiter toneIndigo
```

## Components

### Web experience

- [Web application](https://github.com/rareminds-eym/skillpassport/blob/main/src/App.tsx): `src/App.tsx`
- [Learner routes](https://github.com/rareminds-eym/skillpassport/blob/main/src/app/routes/learnerRoutes.jsx): `src/app/routes/learnerRoutes.jsx`
- [Admin routes](https://github.com/rareminds-eym/skillpassport/blob/main/src/app/routes/adminRoutes.jsx): `src/app/routes/adminRoutes.jsx`

### Learning and guidance

- [Assessment service](https://github.com/rareminds-eym/skillpassport/blob/main/src/features/assessment/model/useAssessmentService.ts): `src/features/assessment/model/useAssessmentService.ts`
- [Assessment API](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/assessment/%5B%5Bpath%5D%5D.ts): `functions/api/assessment/[[path]].ts`
- [AI career guidance](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/career/handlers/chat.ts): `functions/api/career/handlers/chat.ts`
- [Course marketplace](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/course/%5B%5Bpath%5D%5D.ts): `functions/api/course/[[path]].ts`

### Career and hiring

- [Applications](https://github.com/rareminds-eym/skillpassport/blob/main/src/pages/learner/Applications.jsx): `src/pages/learner/Applications.jsx`
- [Recruiter pipeline UI](https://github.com/rareminds-eym/skillpassport/blob/main/src/pages/recruiter/Pipelines.tsx): `src/pages/recruiter/Pipelines.tsx`
- [Recruitment pipeline](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/recruiter-pipeline/%5B%5Bpath%5D%5D.ts): `functions/api/recruiter-pipeline/[[path]].ts`
- [Recruiter intelligence](https://github.com/rareminds-eym/skillpassport/blob/main/src/features/recruiter-copilot/api/recruiterIntelligenceEngine.ts): `src/features/recruiter-copilot/api/recruiterIntelligenceEngine.ts`

### Institution operations

- [Academic management](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/college-admin/%5B%5Bpath%5D%5D.ts): `functions/api/college-admin/[[path]].ts`
- [Analytics](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/analytics/dashboard.ts): `functions/api/analytics/dashboard.ts`

### Platform services

- [Messaging](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/messaging/actions.ts): `functions/api/messaging/actions.ts`
- [Subscriptions](https://github.com/rareminds-eym/skillpassport/blob/main/functions/api/payments/%5B%5Bpath%5D%5D.ts): `functions/api/payments/[[path]].ts`
- [Authentication state](https://github.com/rareminds-eym/skillpassport/blob/main/src/shared/model/authStore.ts): `src/shared/model/authStore.ts`
- [SSO client](https://github.com/rareminds-eym/skillpassport/blob/main/src/shared/api/ssoClient.ts): `src/shared/api/ssoClient.ts`
- [API client](https://github.com/rareminds-eym/skillpassport/blob/main/src/shared/api/apiClient.ts): `src/shared/api/apiClient.ts`
- [Pages Functions](https://github.com/rareminds-eym/skillpassport/blob/main/functions/_worker.js): `functions/_worker.js`
- [Supabase data store](https://github.com/rareminds-eym/skillpassport/blob/main/functions/lib/supabase.ts): `functions/lib/supabase.ts`

### Other components

- **Learner**
- **Educator**
- **Recruiter**

## Connections

- Learner → Web application: uses (evidence: `README.md`)
- Educator → Web application: uses (evidence: `README.md`)
- Recruiter → Web application: uses (evidence: `README.md`)
- Web application → Learner routes: routes through (evidence: `src/App.tsx`)
- Web application → Admin routes: routes through (evidence: `src/App.tsx`)
- Learner → Assessment service: takes assessment (evidence: `README.md`)
- Assessment service → Assessment API: uses
- Learner → AI career guidance: gets guidance (evidence: `README.md`)
- Learner → Course marketplace: explores courses (evidence: `README.md`)
- Learner → Applications: tracks applications (evidence: `README.md`)
- Recruiter → Recruiter pipeline UI: manages hiring (evidence: `README.md`)
- Recruiter pipeline UI → Recruitment pipeline: updates pipeline
- Recruiter pipeline UI → Recruiter intelligence: gets recommendations
- Recruiter intelligence → Recruitment pipeline: analyzes candidates
- Educator → Academic management: manages academics (evidence: `README.md`)
- Educator → Analytics: reviews progress (evidence: `README.md`)
- Applications → API client: requests data (evidence: `src/pages/learner/Applications.jsx`)
- API client → SSO client: fetches with (evidence: `src/shared/api/apiClient.ts`)
- Authentication state → SSO client: authenticates through (evidence: `src/shared/model/authStore.ts`)
- SSO client → Pages Functions: proxies auth requests (evidence: `src/shared/api/ssoClient.ts`)
- API client → Pages Functions: sends API requests
- Assessment API → Supabase data store: reads and writes
- Academic management → Supabase data store: reads and writes
- Recruitment pipeline → Supabase data store: reads and writes
- Learner → Subscriptions: uses paid features (evidence: `README.md`)
- Learner → Messaging: communicates
