# urveebettadapur/learning-recommendation-system architecture

> Architecture diagram of the GitHub repository urveebettadapur/learning-recommendation-system, 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/urveebettadapur/learning-recommendation-system
- Repository: https://github.com/urveebettadapur/learning-recommendation-system

## Overview

Nayatra is a personalized learning platform: learners provide their current skills and career goal, then receive skill-gap analysis, a prerequisite-aware learning path, course suggestions, and duration estimates. The documented product also includes course similarity recommendations and a data-processing pipeline. The graph shows the sampled learning-path service and ML calls; README-described recommendation/API capabilities are included, but unsampled route-to-service wiring is left out where call ownership could not be verified. The repository contains multiple frontend variants, so frontend nodes use the newer tree paths without asserting which is deployed.

Main entry points: [`backend/services/learning_path_service.py`](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/services/learning_path_service.py) (Path service), [`etl/pipeline.py`](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/pipeline.py) (ETL pipeline), [`frontend_new/src/services/learningPathService.js`](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/services/learningPathService.js) (Path API client), [`ml/course_ranking_engine.py`](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/course_ranking_engine.py) (Course ranking)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Learner experience"]
  node_app["Learning interface<br/>[App.jsx]"]
  node_path_ui["Path experience<br/>[LearningPath.jsx]"]
  node_roadmap_ui["Roadmap insights<br/>[Roadmap.jsx]"]
  node_path_client["Path API client"]
end

subgraph group_api["API services"]
  node_backend["FastAPI app<br/>[main.py]"]
  node_path_route["Path endpoint<br/>[learning_path.py]"]
  node_recommend_route["Course endpoint<br/>[recommendation.py]"]
  node_path_service["Path service"]
  node_recommend_service["Recommendation service"]
end

subgraph group_intelligence["Learning intelligence"]
  node_optimizer["Path optimizer"]
  node_graph_engine["Knowledge graph<br/>[graph_engine.py]"]
  node_recommend_engine["Course recommender<br/>[predict.py]"]
  node_ranking["Course ranking"]
  node_gap["Skill gap detector"]
end

subgraph group_data["Data preparation"]
  node_etl_pipeline["ETL pipeline<br/>[pipeline.py]"]
  node_extract["Data extraction<br/>[extract.py]"]
  node_transform["Feature transformation<br/>[transform.py]"]
  node_load["Processed data loading<br/>[load.py]"]
end

node_learner(("Learner"))

node_learner -->|"enters skills"| node_app
node_app -->|"requests path"| node_path_client
node_path_client -->|"posts path request"| node_path_route
node_backend -->|"registers endpoint"| node_path_route
node_backend -->|"registers endpoint"| node_recommend_route
node_path_service -->|"generates path"| node_optimizer
node_path_service -->|"looks up courses"| node_graph_engine
node_path_service -->|"estimates duration"| node_optimizer
node_graph_engine -->|"returns course matches"| node_path_service
node_path_client -->|"returns path data"| node_path_ui
node_path_ui -->|"presents roadmap"| node_roadmap_ui
node_recommend_service -->|"requests recommendations"| node_recommend_engine
node_recommend_engine -.->|"ranks courses"| node_ranking
node_ranking -->|"reads course skills"| node_graph_engine
node_ranking -->|"uses skill gaps"| node_gap
node_etl_pipeline -->|"extracts data"| node_extract
node_etl_pipeline -->|"transforms data"| node_transform
node_etl_pipeline -->|"loads outputs"| node_load

click node_app "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/App.jsx"
click node_path_ui "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/components/roadmap/LearningPath.jsx"
click node_roadmap_ui "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/pages/Roadmap.jsx"
click node_path_client "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/services/learningPathService.js"
click node_backend "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/main.py"
click node_path_route "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/routes/learning_path.py"
click node_recommend_route "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/routes/recommendation.py"
click node_path_service "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/services/learning_path_service.py"
click node_recommend_service "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/services/recommendation_service.py"
click node_optimizer "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/learning_path_optimizer.py"
click node_graph_engine "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/graph_engine.py"
click node_recommend_engine "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/predict.py"
click node_ranking "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/course_ranking_engine.py"
click node_gap "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/skill_gap_detector.py"
click node_etl_pipeline "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/pipeline.py"
click node_extract "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/extract.py"
click node_transform "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/transform.py"
click node_load "https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/load.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_path_ui,node_roadmap_ui,node_path_client toneBlue
class node_backend,node_path_route,node_recommend_route,node_path_service,node_recommend_service toneAmber
class node_optimizer,node_graph_engine,node_recommend_engine,node_ranking,node_gap toneMint
class node_etl_pipeline,node_extract,node_transform,node_load toneRose
class node_learner toneIndigo
```

## Components

### Learner experience

- [Learning interface](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/App.jsx): `frontend_new/src/App.jsx`
- [Path experience](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/components/roadmap/LearningPath.jsx): `frontend_new/src/components/roadmap/LearningPath.jsx`
- [Roadmap insights](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/pages/Roadmap.jsx): `frontend_new/src/pages/Roadmap.jsx`
- [Path API client](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/frontend_new/src/services/learningPathService.js): `frontend_new/src/services/learningPathService.js`

### API services

- [FastAPI app](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/main.py): `backend/main.py`
- [Path endpoint](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/routes/learning_path.py): `backend/routes/learning_path.py`
- [Course endpoint](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/routes/recommendation.py): `backend/routes/recommendation.py`
- [Path service](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/services/learning_path_service.py): `backend/services/learning_path_service.py`
- [Recommendation service](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/backend/services/recommendation_service.py): `backend/services/recommendation_service.py`

### Learning intelligence

- [Path optimizer](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/learning_path_optimizer.py): `ml/learning_path_optimizer.py`
- [Knowledge graph](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/graph_engine.py): `ml/graph_engine.py`
- [Course recommender](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/predict.py): `ml/predict.py`
- [Course ranking](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/course_ranking_engine.py): `ml/course_ranking_engine.py`
- [Skill gap detector](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/ml/skill_gap_detector.py): `ml/skill_gap_detector.py`

### Data preparation

- [ETL pipeline](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/pipeline.py): `etl/pipeline.py`
- [Data extraction](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/extract.py): `etl/extract.py`
- [Feature transformation](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/transform.py): `etl/transform.py`
- [Processed data loading](https://github.com/urveebettadapur/learning-recommendation-system/blob/main/etl/load.py): `etl/load.py`

### Other components

- **Learner**

## Connections

- Learner → Learning interface: enters skills
- Learning interface → Path API client: requests path
- Path API client → Path endpoint: posts path request
- FastAPI app → Path endpoint: registers endpoint
- FastAPI app → Course endpoint: registers endpoint
- Path service → Path optimizer: generates path
- Path service → Knowledge graph: looks up courses
- Path service → Path optimizer: estimates duration
- Knowledge graph → Path service: returns course matches
- Path API client → Path experience: returns path data
- Path experience → Roadmap insights: presents roadmap
- Recommendation service → Course recommender: requests recommendations
- Course recommender → Course ranking: ranks courses
- Course ranking → Knowledge graph: reads course skills
- Course ranking → Skill gap detector: uses skill gaps
- ETL pipeline → Data extraction: extracts data
- ETL pipeline → Feature transformation: transforms data
- ETL pipeline → Processed data loading: loads outputs
