# navaneeth2648/skill-align001 architecture

> Architecture diagram of the GitHub repository navaneeth2648/skill-align001, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/navaneeth2648/skill-align001
- Repository: https://github.com/navaneeth2648/skill-align001

## Overview

MS-LMIP is a Maharashtra skills and labour-market intelligence platform for public-sector decision-makers, training institutions, employers, and candidates. Users explore labour demand, skills, districts, and training capacity; the platform also supports curriculum governance, planning, reporting, and candidate services. The resume workflow runs from browser upload through server-side extraction, candidate parsing, job matching, and saved analysis. Source excerpts show only selected calls, so unsampled page-to-service wiring and server routes are not drawn.

Main entry points: [`src/App.tsx`](https://github.com/navaneeth2648/skill-align001/blob/main/src/App.tsx) (Application shell), [`server/index.ts`](https://github.com/navaneeth2648/skill-align001/blob/main/server/index.ts) (HTTP API and workflows), [`src/pages/ResumeAnalyzerPage.tsx`](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/ResumeAnalyzerPage.tsx) (Resume analyzer), [`server/services/jobMatcherService.ts`](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/jobMatcherService.ts) (Candidate job matching)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web experience"]
  node_app["Application shell<br/>[App.tsx]"]
  node_context["Navigation and UI state<br/>[AppContext.tsx]"]
end

subgraph group_intelligence["Labour intelligence"]
  node_dashboard["Dashboards and labour views<br/>[DashboardPage.tsx]"]
  node_district["District intelligence"]
  node_jobs["Jobs and employer portal<br/>[JobIntelPage.tsx]"]
  node_skills["Skills and gap analysis<br/>[SkillIntelPage.tsx]"]
end

subgraph group_planning["Skills planning"]
  node_curriculum["Curriculum governance"]
  node_training["Training and capacity plans"]
  node_scenario["Scenario and budget planning"]
  node_reports["Reports and oversight"]
end

subgraph group_services["Candidate and employer services"]
  node_resumeui["Resume analyzer"]
  node_resumeapi["Resume API client<br/>[resumeService.ts]"]
  node_assistantui["Intelligence assistant"]
end

subgraph group_server["Server and state"]
  node_dataservice["Browser API services<br/>[dataService.ts]"]
  node_api["HTTP API and workflows<br/>[index.ts]"]
  node_resumeparse["Document extraction and parsing<br/>[resumeService.ts]"]
  node_matcher["Candidate job matching"]
  node_assistant["Assistant responses"]
  node_search["Cross-domain search<br/>[searchService.ts]"]
  node_adzuna["Adzuna job feed<br/>[adzunaService.ts]"]
  node_linkedin["LinkedIn integration<br/>[linkedinService.ts]"]
  node_quality["Data quality checks"]
  node_scenariosvc["Scenario calculations<br/>[scenarioService.ts]"]
  node_state[("Persistent platform state")]
end

node_user(("Platform users"))
node_externaljobs(("External job listings"))
node_candidate(("Resume candidate"))

node_user -->|"uses"| node_app
node_app -->|"reads UI state"| node_context
node_app -->|"renders routes"| node_dashboard
node_app -->|"renders routes"| node_district
node_app -->|"renders routes"| node_jobs
node_app -->|"renders routes"| node_skills
node_app -->|"renders routes"| node_curriculum
node_app -->|"renders routes"| node_training
node_app -->|"renders routes"| node_scenario
node_app -->|"renders routes"| node_reports
node_app -->|"renders routes"| node_resumeui
node_resumeui -->|"uploads resume"| node_resumeapi
node_candidate -->|"submits document"| node_resumeui
node_resumeapi -->|"calls resume API"| node_api
node_dataservice -->|"calls data API"| node_api
node_api -->|"extracts and parses"| node_resumeparse
node_api -->|"matches candidate"| node_matcher
node_api -->|"saves analysis"| node_state
node_api -->|"writes audit log"| node_state
node_resumeparse -->|"parsed profile"| node_matcher
node_matcher -->|"retrieves jobs"| node_adzuna
node_adzuna -.->|"fetches listings"| node_externaljobs
node_assistantui -->|"requests platform data"| node_dataservice
node_api -->|"dispatches query"| node_assistant
node_api -->|"handles integration"| node_linkedin
node_api -->|"runs quality checks"| node_quality
node_api -->|"runs scenarios"| node_scenariosvc
node_search -->|"reads records"| node_state
node_search -->|"reads cached jobs"| node_adzuna

click node_app "https://github.com/navaneeth2648/skill-align001/blob/main/src/App.tsx"
click node_context "https://github.com/navaneeth2648/skill-align001/blob/main/src/context/AppContext.tsx"
click node_dashboard "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/DashboardPage.tsx"
click node_district "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/DistrictIntelPage.tsx"
click node_jobs "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/JobIntelPage.tsx"
click node_skills "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/SkillIntelPage.tsx"
click node_curriculum "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/CurriculumReviewPage.tsx"
click node_training "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/TrainingPlanPage.tsx"
click node_scenario "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/ScenarioAnalysisPage.tsx"
click node_reports "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/ReportsCentrePage.tsx"
click node_resumeui "https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/ResumeAnalyzerPage.tsx"
click node_resumeapi "https://github.com/navaneeth2648/skill-align001/blob/main/src/services/resumeService.ts"
click node_assistantui "https://github.com/navaneeth2648/skill-align001/blob/main/src/components/common/IntelligenceAssistantModal.tsx"
click node_dataservice "https://github.com/navaneeth2648/skill-align001/blob/main/src/services/dataService.ts"
click node_api "https://github.com/navaneeth2648/skill-align001/blob/main/server/index.ts"
click node_resumeparse "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/resumeService.ts"
click node_matcher "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/jobMatcherService.ts"
click node_assistant "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/geminiAssistantService.ts"
click node_search "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/searchService.ts"
click node_adzuna "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/adzunaService.ts"
click node_linkedin "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/linkedinService.ts"
click node_quality "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/dataQualityService.ts"
click node_scenariosvc "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/scenarioService.ts"
click node_state "https://github.com/navaneeth2648/skill-align001/blob/main/server/services/persistenceService.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_context,node_user toneBlue
class node_dashboard,node_district,node_jobs,node_skills toneAmber
class node_curriculum,node_training,node_scenario,node_reports toneMint
class node_resumeui,node_resumeapi,node_assistantui toneRose
class node_dataservice,node_api,node_resumeparse,node_matcher,node_assistant,node_search,node_adzuna,node_linkedin,node_quality,node_scenariosvc,node_state,node_externaljobs,node_candidate toneIndigo
```

## Components

### Web experience

- [Application shell](https://github.com/navaneeth2648/skill-align001/blob/main/src/App.tsx): `src/App.tsx`
- [Navigation and UI state](https://github.com/navaneeth2648/skill-align001/blob/main/src/context/AppContext.tsx): `src/context/AppContext.tsx`

### Labour intelligence

- [Dashboards and labour views](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/DashboardPage.tsx): `src/pages/DashboardPage.tsx`
- [District intelligence](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/DistrictIntelPage.tsx): `src/pages/DistrictIntelPage.tsx`
- [Jobs and employer portal](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/JobIntelPage.tsx): `src/pages/JobIntelPage.tsx`
- [Skills and gap analysis](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/SkillIntelPage.tsx): `src/pages/SkillIntelPage.tsx`

### Skills planning

- [Curriculum governance](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/CurriculumReviewPage.tsx): `src/pages/CurriculumReviewPage.tsx`
- [Training and capacity plans](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/TrainingPlanPage.tsx): `src/pages/TrainingPlanPage.tsx`
- [Scenario and budget planning](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/ScenarioAnalysisPage.tsx): `src/pages/ScenarioAnalysisPage.tsx`
- [Reports and oversight](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/ReportsCentrePage.tsx): `src/pages/ReportsCentrePage.tsx`

### Candidate and employer services

- [Resume analyzer](https://github.com/navaneeth2648/skill-align001/blob/main/src/pages/ResumeAnalyzerPage.tsx): `src/pages/ResumeAnalyzerPage.tsx`
- [Resume API client](https://github.com/navaneeth2648/skill-align001/blob/main/src/services/resumeService.ts): `src/services/resumeService.ts`
- [Intelligence assistant](https://github.com/navaneeth2648/skill-align001/blob/main/src/components/common/IntelligenceAssistantModal.tsx): `src/components/common/IntelligenceAssistantModal.tsx`

### Server and state

- [Browser API services](https://github.com/navaneeth2648/skill-align001/blob/main/src/services/dataService.ts): `src/services/dataService.ts`
- [HTTP API and workflows](https://github.com/navaneeth2648/skill-align001/blob/main/server/index.ts): `server/index.ts`
- [Document extraction and parsing](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/resumeService.ts): `server/services/resumeService.ts`
- [Candidate job matching](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/jobMatcherService.ts): `server/services/jobMatcherService.ts`
- [Assistant responses](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/geminiAssistantService.ts): `server/services/geminiAssistantService.ts`
- [Cross-domain search](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/searchService.ts): `server/services/searchService.ts`
- [Adzuna job feed](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/adzunaService.ts): `server/services/adzunaService.ts`
- [LinkedIn integration](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/linkedinService.ts): `server/services/linkedinService.ts`
- [Data quality checks](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/dataQualityService.ts): `server/services/dataQualityService.ts`
- [Scenario calculations](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/scenarioService.ts): `server/services/scenarioService.ts`
- [Persistent platform state](https://github.com/navaneeth2648/skill-align001/blob/main/server/services/persistenceService.ts): `server/services/persistenceService.ts`

### Other components

- **Platform users**
- **External job listings**
- **Resume candidate**

## Connections

- Platform users → Application shell: uses
- Application shell → Navigation and UI state: reads UI state
- Application shell → Dashboards and labour views: renders routes
- Application shell → District intelligence: renders routes
- Application shell → Jobs and employer portal: renders routes
- Application shell → Skills and gap analysis: renders routes
- Application shell → Curriculum governance: renders routes
- Application shell → Training and capacity plans: renders routes
- Application shell → Scenario and budget planning: renders routes
- Application shell → Reports and oversight: renders routes
- Application shell → Resume analyzer: renders routes
- Resume analyzer → Resume API client: uploads resume
- Resume candidate → Resume analyzer: submits document
- Resume API client → HTTP API and workflows: calls resume API
- Browser API services → HTTP API and workflows: calls data API
- HTTP API and workflows → Document extraction and parsing: extracts and parses
- HTTP API and workflows → Candidate job matching: matches candidate
- HTTP API and workflows → Persistent platform state: saves analysis
- HTTP API and workflows → Persistent platform state: writes audit log
- Document extraction and parsing → Candidate job matching: parsed profile
- Candidate job matching → Adzuna job feed: retrieves jobs
- Adzuna job feed → External job listings: fetches listings
- Intelligence assistant → Browser API services: requests platform data
- HTTP API and workflows → Assistant responses: dispatches query
- HTTP API and workflows → LinkedIn integration: handles integration
- HTTP API and workflows → Data quality checks: runs quality checks
- HTTP API and workflows → Scenario calculations: runs scenarios
- Cross-domain search → Persistent platform state: reads records
- Cross-domain search → Adzuna job feed: reads cached jobs
