# srideep-kundu/skill_passport_project architecture

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

- Interactive diagram: https://gitdiagram.com/srideep-kundu/skill_passport_project
- Repository: https://github.com/srideep-kundu/skill_passport_project

## Overview

Skill Passport is a multi-role platform for building evidence-backed skill profiles and connecting candidates with opportunities. The central workflow is evidence submission, asynchronous skill extraction and verification, then reproducible, explainable matching that supports discovery and applications. Recruiter assessment and analytics, learning and career guidance, and institution and academician tools are additional product branches. The excerpts confirm API registration, extraction-worker dispatch, and application workflow calls; other subsystem links are limited to documented behavior and the repository’s module structure.

Main entry points: [`backend/app/main.py`](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/main.py) (FastAPI Entry), [`backend/app/core/db.py`](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/core/db.py) (PostgreSQL + pgvector), [`backend/app/services/extraction_service.py`](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/extraction_service.py) (Skill Extraction), [`frontend/src/App.tsx`](https://github.com/srideep-kundu/skill_passport_project/blob/master/frontend/src/App.tsx) (Role Dashboards)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User Experience"]
  node_webapp["Role Dashboards<br/>[App.tsx]"]
  node_api_client["API Client<br/>[service.ts]"]
  node_api_entry["FastAPI Entry<br/>[main.py]"]
  node_auth["Authentication<br/>[auth.py]"]
end

subgraph group_evidence["Evidence and Passport"]
  node_evidence_upload["Evidence Intake<br/>[evidence.py]"]
  node_extraction["Skill Extraction"]
  node_worker["Extraction Worker"]
  node_redis["Redis Queue"]
  node_passport["Skill Passport<br/>[passport.py]"]
  node_verification["Evidence Verification"]
  node_database[("PostgreSQL + pgvector<br/>[db.py]")]
end

subgraph group_opportunities["Matching and Opportunities"]
  node_matching["Explainable Matching"]
  node_match_api["Match APIs<br/>[matches.py]"]
  node_discovery["Job Discovery"]
  node_applications["Applications<br/>[applications.py]"]
end

subgraph group_portals["Role Portals"]
  node_project_assessment["Project Assessment"]
  node_career_learning["Career and Learning"]
  node_institution_tools["Institution Analytics"]
end

node_candidate(("Candidate"))
node_recruiter(("Recruiter"))
node_institution(("Institution / Faculty"))
node_external_jobs{{"Job Providers"}}
node_github{{"GitHub"}}
node_extraction_models{{"Extraction Models"}}

node_candidate -->|"uses"| node_webapp
node_recruiter -->|"uses"| node_webapp
node_institution -->|"uses"| node_webapp
node_webapp -->|"requests"| node_api_client
node_api_client -->|"calls"| node_api_entry
node_api_entry -->|"registers"| node_auth
node_api_entry -->|"registers"| node_evidence_upload
node_api_entry -->|"registers"| node_passport
node_api_entry -->|"registers"| node_match_api
node_api_entry -->|"registers"| node_applications
node_api_entry -->|"initializes"| node_database
node_evidence_upload -->|"schedules"| node_extraction
node_extraction -->|"enqueues"| node_redis
node_worker -->|"dequeues"| node_redis
node_worker -->|"processes jobs"| node_extraction
node_extraction -.->|"requests extraction"| node_extraction_models
node_extraction -->|"persists skills"| node_database
node_verification -->|"updates evidence"| node_database
node_passport -->|"reads passport"| node_database
node_match_api -->|"requests scores"| node_matching
node_matching -->|"reads inputs"| node_database
node_discovery -.->|"fetches listings"| node_external_jobs
node_applications -->|"reads and writes"| node_database
node_recruiter -->|"requests assessment"| node_project_assessment
node_project_assessment -.->|"scans repository"| node_github
node_candidate -->|"uses guidance"| node_career_learning
node_institution -->|"uses analytics"| node_institution_tools

click node_webapp "https://github.com/srideep-kundu/skill_passport_project/blob/master/frontend/src/App.tsx"
click node_api_client "https://github.com/srideep-kundu/skill_passport_project/blob/master/frontend/src/api/service.ts"
click node_api_entry "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/main.py"
click node_auth "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/auth.py"
click node_evidence_upload "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/evidence.py"
click node_extraction "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/extraction_service.py"
click node_worker "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/workers/extraction_worker.py"
click node_passport "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/passport.py"
click node_verification "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/verification_service.py"
click node_database "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/core/db.py"
click node_matching "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/matching_service.py"
click node_match_api "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/matches.py"
click node_discovery "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/discovery_service.py"
click node_applications "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/applications.py"
click node_project_assessment "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/project_assessment_service.py"
click node_career_learning "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/career_guidance_service.py"
click node_institution_tools "https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/institution_analytics_service.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_webapp,node_api_client,node_api_entry,node_auth toneBlue
class node_evidence_upload,node_extraction,node_worker,node_redis,node_passport,node_verification,node_database toneAmber
class node_matching,node_match_api,node_discovery,node_applications toneMint
class node_project_assessment,node_career_learning,node_institution_tools toneRose
class node_candidate,node_recruiter,node_institution,node_external_jobs,node_github,node_extraction_models toneIndigo
```

## Components

### User Experience

- [Role Dashboards](https://github.com/srideep-kundu/skill_passport_project/blob/master/frontend/src/App.tsx): `frontend/src/App.tsx`
- [API Client](https://github.com/srideep-kundu/skill_passport_project/blob/master/frontend/src/api/service.ts): `frontend/src/api/service.ts`
- [FastAPI Entry](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/main.py): `backend/app/main.py`
- [Authentication](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/auth.py): `backend/app/api/auth.py`

### Evidence and Passport

- [Evidence Intake](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/evidence.py): `backend/app/api/evidence.py`
- [Skill Extraction](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/extraction_service.py): `backend/app/services/extraction_service.py`
- [Extraction Worker](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/workers/extraction_worker.py): `backend/app/workers/extraction_worker.py`
- **Redis Queue**
- [Skill Passport](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/passport.py): `backend/app/api/passport.py`
- [Evidence Verification](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/verification_service.py): `backend/app/services/verification_service.py`
- [PostgreSQL + pgvector](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/core/db.py): `backend/app/core/db.py`

### Matching and Opportunities

- [Explainable Matching](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/matching_service.py): `backend/app/services/matching_service.py`
- [Match APIs](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/matches.py): `backend/app/api/matches.py`
- [Job Discovery](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/discovery_service.py): `backend/app/services/discovery_service.py`
- [Applications](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/api/applications.py): `backend/app/api/applications.py`

### Role Portals

- [Project Assessment](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/project_assessment_service.py): `backend/app/services/project_assessment_service.py`
- [Career and Learning](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/career_guidance_service.py): `backend/app/services/career_guidance_service.py`
- [Institution Analytics](https://github.com/srideep-kundu/skill_passport_project/blob/master/backend/app/services/institution_analytics_service.py): `backend/app/services/institution_analytics_service.py`

### Other components

- **Candidate**
- **Recruiter**
- **Institution / Faculty**
- **Job Providers**
- **GitHub**
- **Extraction Models**

## Connections

- Candidate → Role Dashboards: uses
- Recruiter → Role Dashboards: uses
- Institution / Faculty → Role Dashboards: uses
- Role Dashboards → API Client: requests
- API Client → FastAPI Entry: calls
- FastAPI Entry → Authentication: registers
- FastAPI Entry → Evidence Intake: registers
- FastAPI Entry → Skill Passport: registers
- FastAPI Entry → Match APIs: registers
- FastAPI Entry → Applications: registers
- FastAPI Entry → PostgreSQL + pgvector: initializes
- Evidence Intake → Skill Extraction: schedules
- Skill Extraction → Redis Queue: enqueues
- Extraction Worker → Redis Queue: dequeues
- Extraction Worker → Skill Extraction: processes jobs
- Skill Extraction → Extraction Models: requests extraction
- Skill Extraction → PostgreSQL + pgvector: persists skills
- Evidence Verification → PostgreSQL + pgvector: updates evidence
- Skill Passport → PostgreSQL + pgvector: reads passport
- Match APIs → Explainable Matching: requests scores
- Explainable Matching → PostgreSQL + pgvector: reads inputs
- Job Discovery → Job Providers: fetches listings
- Applications → PostgreSQL + pgvector: reads and writes
- Recruiter → Project Assessment: requests assessment
- Project Assessment → GitHub: scans repository
- Candidate → Career and Learning: uses guidance
- Institution / Faculty → Institution Analytics: uses analytics
