# prajxal/adaptive-learning-system-with-integrated-analytics-pipeline architecture

> Architecture diagram of the GitHub repository prajxal/adaptive-learning-system-with-integrated-analytics-pipeline, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline
- Repository: https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline

## Overview

LearnPath AI is an adaptive developer-learning platform: learners connect skill sources, receive a prerequisite-aware path and recommendations, study courses, and update progress through quizzes. The graph also includes the AI Mentor and its documented tool registry. The README describes the broader architecture; sampled source confirms application routing, database setup, dynamic roadmap resolution, and quiz generation, but not every router-to-service connection.

Main entry points: [`backend/main.py`](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/main.py) (FastAPI application), [`backend/db/database.py`](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/db/database.py) (PostgreSQL), [`src/app/App.tsx`](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/App.tsx) (Web application), [`backend/routers/chat.py`](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/chat.py) (Chat routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Learner experience"]
  node_webapp["Web application<br/>[App.tsx]"]
  node_clientapi["API clients<br/>[api.ts]"]
  node_courseui["Courses and roadmaps"]
  node_quizui["Quiz experience<br/>[QuizPage.tsx]"]
  node_mentorui["AI Mentor<br/>[AIMentorPage.tsx]"]
end

subgraph group_api["Backend API"]
  node_backend["FastAPI application<br/>[main.py]"]
  node_ingestion["Skill ingestion routes<br/>[github_auth.py]"]
  node_roadmaproutes["Roadmap and course routes<br/>[learning_path.py]"]
  node_quizroutes["Quiz routes<br/>[quiz.py]"]
  node_chatroutes["Chat routes<br/>[chat.py]"]
  node_progressroutes["Progress routes<br/>[progress.py]"]
end

subgraph group_learning["Learning services"]
  node_skillservices["Skill synthesis"]
  node_roadmapengine["Dynamic roadmaps"]
  node_recommendations["Course ranking"]
  node_quizengine["Quiz generation and Elo"]
  node_mentorregistry["Mentor tool registry<br/>[registry.py]"]
  node_mentortools["Mentor context and tools<br/>[tools.py]"]
end

subgraph group_data["Persistence and integrations"]
  node_database[("PostgreSQL<br/>[database.py]")]
end

node_learner(("Learner"))
node_github(("GitHub"))
node_gemini{{"Gemini API"}}
node_resume(("Resume upload"))

node_learner -->|"uses"| node_webapp
node_webapp -->|"routes to"| node_courseui
node_webapp -->|"routes to"| node_quizui
node_webapp -->|"routes to"| node_mentorui
node_courseui -->|"requests data"| node_clientapi
node_quizui -->|"requests quiz"| node_clientapi
node_mentorui -->|"sends chat"| node_clientapi
node_clientapi -->|"HTTP requests"| node_backend
node_backend -->|"dispatches"| node_ingestion
node_backend -->|"dispatches"| node_roadmaproutes
node_backend -->|"dispatches"| node_quizroutes
node_backend -->|"dispatches"| node_chatroutes
node_backend -->|"dispatches"| node_progressroutes
node_github -->|"OAuth and repository data"| node_ingestion
node_resume -.->|"uploads resume"| node_ingestion
node_ingestion -->|"synthesizes skills"| node_skillservices
node_skillservices -->|"stores skill profile"| node_database
node_roadmaproutes -->|"resolves course states"| node_roadmapengine
node_roadmaproutes -->|"ranks courses"| node_recommendations
node_roadmapengine -->|"reads progress and graph"| node_database
node_quizroutes -->|"generates and scores"| node_quizengine
node_quizengine -.->|"requests quiz content"| node_gemini
node_quizengine -->|"reads and stores quizzes"| node_database
node_progressroutes -->|"reads and writes progress"| node_database
node_chatroutes -->|"builds user context"| node_mentortools
node_chatroutes -->|"dispatches tool calls"| node_mentorregistry
node_mentorregistry -->|"dispatches tools"| node_mentortools
node_mentortools -->|"queries learning data"| node_database
node_chatroutes -->|"sends prompt and tools"| node_gemini

click node_webapp "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/App.tsx"
click node_clientapi "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/services/api.ts"
click node_courseui "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/pages/RoadmapDetailPage.tsx"
click node_quizui "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/pages/QuizPage.tsx"
click node_mentorui "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/pages/AIMentorPage.tsx"
click node_backend "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/main.py"
click node_ingestion "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/github_auth.py"
click node_roadmaproutes "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/learning_path.py"
click node_quizroutes "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/quiz.py"
click node_chatroutes "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/chat.py"
click node_progressroutes "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/progress.py"
click node_skillservices "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/skill_synthesizer.py"
click node_roadmapengine "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/dynamic_roadmap_service.py"
click node_recommendations "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/learning_priority_service.py"
click node_quizengine "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/quiz_generation_service.py"
click node_mentorregistry "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/mcp_server/registry.py"
click node_mentortools "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/mcp_server/tools.py"
click node_database "https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/db/database.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_clientapi,node_courseui,node_quizui,node_mentorui toneBlue
class node_backend,node_ingestion,node_roadmaproutes,node_quizroutes,node_chatroutes,node_progressroutes toneAmber
class node_skillservices,node_roadmapengine,node_recommendations,node_quizengine,node_mentorregistry,node_mentortools,node_gemini toneMint
class node_database toneRose
class node_learner,node_github,node_resume toneIndigo
```

## Components

### Learner experience

- [Web application](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/App.tsx): `src/app/App.tsx`
- [API clients](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/services/api.ts): `src/services/api.ts`
- [Courses and roadmaps](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/pages/RoadmapDetailPage.tsx): `src/app/pages/RoadmapDetailPage.tsx`
- [Quiz experience](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/pages/QuizPage.tsx): `src/app/pages/QuizPage.tsx`
- [AI Mentor](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/src/app/pages/AIMentorPage.tsx): `src/app/pages/AIMentorPage.tsx`

### Backend API

- [FastAPI application](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/main.py): `backend/main.py`
- [Skill ingestion routes](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/github_auth.py): `backend/routers/github_auth.py`
- [Roadmap and course routes](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/learning_path.py): `backend/routers/learning_path.py`
- [Quiz routes](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/quiz.py): `backend/routers/quiz.py`
- [Chat routes](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/chat.py): `backend/routers/chat.py`
- [Progress routes](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/routers/progress.py): `backend/routers/progress.py`

### Learning services

- [Skill synthesis](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/skill_synthesizer.py): `backend/services/skill_synthesizer.py`
- [Dynamic roadmaps](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/dynamic_roadmap_service.py): `backend/services/dynamic_roadmap_service.py`
- [Course ranking](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/learning_priority_service.py): `backend/services/learning_priority_service.py`
- [Quiz generation and Elo](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/services/quiz_generation_service.py): `backend/services/quiz_generation_service.py`
- [Mentor tool registry](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/mcp_server/registry.py): `backend/mcp_server/registry.py`
- [Mentor context and tools](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/mcp_server/tools.py): `backend/mcp_server/tools.py`

### Persistence and integrations

- [PostgreSQL](https://github.com/prajxal/adaptive-learning-system-with-integrated-analytics-pipeline/blob/main/backend/db/database.py): `backend/db/database.py`

### Other components

- **Learner**
- **GitHub**
- **Gemini API**
- **Resume upload**

## Connections

- Learner → Web application: uses
- Web application → Courses and roadmaps: routes to
- Web application → Quiz experience: routes to
- Web application → AI Mentor: routes to
- Courses and roadmaps → API clients: requests data
- Quiz experience → API clients: requests quiz
- AI Mentor → API clients: sends chat
- API clients → FastAPI application: HTTP requests
- FastAPI application → Skill ingestion routes: dispatches
- FastAPI application → Roadmap and course routes: dispatches
- FastAPI application → Quiz routes: dispatches
- FastAPI application → Chat routes: dispatches
- FastAPI application → Progress routes: dispatches
- GitHub → Skill ingestion routes: OAuth and repository data
- Resume upload → Skill ingestion routes: uploads resume
- Skill ingestion routes → Skill synthesis: synthesizes skills
- Skill synthesis → PostgreSQL: stores skill profile
- Roadmap and course routes → Dynamic roadmaps: resolves course states
- Roadmap and course routes → Course ranking: ranks courses
- Dynamic roadmaps → PostgreSQL: reads progress and graph
- Quiz routes → Quiz generation and Elo: generates and scores
- Quiz generation and Elo → Gemini API: requests quiz content
- Quiz generation and Elo → PostgreSQL: reads and stores quizzes
- Progress routes → PostgreSQL: reads and writes progress
- Chat routes → Mentor context and tools: builds user context
- Chat routes → Mentor tool registry: dispatches tool calls
- Mentor tool registry → Mentor context and tools: dispatches tools
- Mentor context and tools → PostgreSQL: queries learning data
- Chat routes → Gemini API: sends prompt and tools
