# komalharshita/devpath architecture

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

- Interactive diagram: https://gitdiagram.com/komalharshita/devpath
- Repository: https://github.com/komalharshita/devpath

## Overview

DevPath is a Flask application that helps developers choose coding projects: users provide skills, level, interest, and time; the recommendation engine scores projects, and the application presents matches with roadmaps, resources, and starter-code access. The graph also captures documented roadmap comparison and the repository’s account, admin, GitHub, bookmarking, discussion, and progress features. Some modules and route relationships are represented at subsystem level where their implementation was not sampled; the tree does not show the README’s referenced projects.json.

Main entry points: [`src/routes/main_routes.py`](https://github.com/komalharshita/devpath/blob/main/src/routes/main_routes.py) (Main routes), [`src/app.py`](https://github.com/komalharshita/devpath/blob/main/src/app.py) (Flask app), [`src/utils/data_loader.py`](https://github.com/komalharshita/devpath/blob/main/src/utils/data_loader.py) (Project data loading), [`src/routes/admin_routes.py`](https://github.com/komalharshita/devpath/blob/main/src/routes/admin_routes.py) (Admin routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_app["Flask app<br/>[app.py]"]
  node_main_routes["Main routes<br/>[main_routes.py]"]
  node_models["Data models<br/>[models.py]"]
  node_database[("Application database<br/>[models.py]")]
end

subgraph group_projects["Project guidance"]
  node_project_data["Project data loading<br/>[data_loader.py]"]
  node_recommender["Recommendation engine<br/>[recommender.py]"]
  node_roadmap["Learning paths<br/>[learning_path.py]"]
  node_roadmap_compare["Roadmap comparison"]
  node_starter_files["Starter-code serving<br/>[file_server.py]"]
  node_skill_progression["Skill progression"]
  node_code_review["Code review<br/>[code_review.py]"]
  node_portfolio["Portfolio analysis"]
end

subgraph group_accounts["Accounts and community"]
  node_auth_routes["Authentication routes<br/>[auth_routes.py]"]
  node_admin_routes["Admin routes<br/>[admin_routes.py]"]
  node_github_routes["GitHub integration<br/>[github_routes.py]"]
  node_bookmark_routes["Bookmark routes<br/>[bookmark_routes.py]"]
  node_bookmark_manager["Bookmark management"]
  node_discussion_routes["Discussion routes"]
  node_discussion_manager["Discussion management"]
  node_progress_routes["Progress routes<br/>[progress_routes.py]"]
  node_progress_tracker["Progress tracking"]
end

subgraph group_support["Application support"]
  node_config["Configuration<br/>[config.py]"]
  node_pagination["Pagination<br/>[pagination.py]"]
  node_url_validation["URL validation<br/>[url_validator.py]"]
end

node_learner(("Learner"))
node_github(("GitHub"))

node_learner -->|"submits preferences"| node_main_routes
node_app -->|"registers routes"| node_main_routes
node_main_routes -->|"requests matches"| node_recommender
node_recommender -->|"loads projects"| node_project_data
node_main_routes -->|"compares roadmaps"| node_roadmap_compare
node_main_routes -->|"builds learning paths"| node_roadmap
node_main_routes -->|"serves starter code"| node_starter_files
node_main_routes -->|"tracks progression"| node_skill_progression
node_main_routes -->|"submits reviews"| node_code_review
node_main_routes -->|"analyzes portfolio"| node_portfolio
node_main_routes -->|"uses pagination"| node_pagination
node_project_data -->|"uses models"| node_models
node_project_data -->|"validates URLs"| node_url_validation
node_app -->|"initializes database"| node_models
node_app -->|"loads settings"| node_config
node_app -->|"registers routes"| node_auth_routes
node_app -->|"registers routes"| node_admin_routes
node_app -->|"registers routes"| node_github_routes
node_github_routes -->|"exchanges OAuth"| node_github
node_admin_routes -->|"edits projects"| node_models
node_admin_routes -->|"parses pages"| node_pagination
node_bookmark_routes -->|"manages bookmarks"| node_bookmark_manager
node_discussion_routes -->|"manages threads"| node_discussion_manager
node_progress_routes -->|"updates progress"| node_progress_tracker

click node_app "https://github.com/komalharshita/devpath/blob/main/src/app.py"
click node_main_routes "https://github.com/komalharshita/devpath/blob/main/src/routes/main_routes.py"
click node_models "https://github.com/komalharshita/devpath/blob/main/src/models.py"
click node_config "https://github.com/komalharshita/devpath/blob/main/src/config.py"
click node_project_data "https://github.com/komalharshita/devpath/blob/main/src/utils/data_loader.py"
click node_recommender "https://github.com/komalharshita/devpath/blob/main/src/utils/recommender.py"
click node_roadmap "https://github.com/komalharshita/devpath/blob/main/src/utils/learning_path.py"
click node_roadmap_compare "https://github.com/komalharshita/devpath/blob/main/src/utils/roadmap_comparer.py"
click node_starter_files "https://github.com/komalharshita/devpath/blob/main/src/utils/file_server.py"
click node_skill_progression "https://github.com/komalharshita/devpath/blob/main/src/utils/skill_progression.py"
click node_code_review "https://github.com/komalharshita/devpath/blob/main/src/utils/code_review.py"
click node_portfolio "https://github.com/komalharshita/devpath/blob/main/src/utils/portfolio_analyzer.py"
click node_pagination "https://github.com/komalharshita/devpath/blob/main/src/utils/pagination.py"
click node_url_validation "https://github.com/komalharshita/devpath/blob/main/src/utils/url_validator.py"
click node_auth_routes "https://github.com/komalharshita/devpath/blob/main/src/routes/auth_routes.py"
click node_admin_routes "https://github.com/komalharshita/devpath/blob/main/src/routes/admin_routes.py"
click node_github_routes "https://github.com/komalharshita/devpath/blob/main/src/routes/github_routes.py"
click node_bookmark_routes "https://github.com/komalharshita/devpath/blob/main/routes/bookmark_routes.py"
click node_bookmark_manager "https://github.com/komalharshita/devpath/blob/main/utils/bookmark_manager.py"
click node_discussion_routes "https://github.com/komalharshita/devpath/blob/main/routes/discussion_routes.py"
click node_discussion_manager "https://github.com/komalharshita/devpath/blob/main/utils/discussion_manager.py"
click node_progress_routes "https://github.com/komalharshita/devpath/blob/main/routes/progress_routes.py"
click node_progress_tracker "https://github.com/komalharshita/devpath/blob/main/utils/progress_tracker.py"
click node_database "https://github.com/komalharshita/devpath/blob/main/src/models.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_main_routes,node_models,node_database toneBlue
class node_project_data,node_recommender,node_roadmap,node_roadmap_compare,node_starter_files,node_skill_progression,node_code_review,node_portfolio toneAmber
class node_auth_routes,node_admin_routes,node_github_routes,node_bookmark_routes,node_bookmark_manager,node_discussion_routes,node_discussion_manager,node_progress_routes,node_progress_tracker toneMint
class node_config,node_pagination,node_url_validation toneRose
class node_learner,node_github toneIndigo
```

## Components

### Web application

- [Flask app](https://github.com/komalharshita/devpath/blob/main/src/app.py): `src/app.py`
- [Main routes](https://github.com/komalharshita/devpath/blob/main/src/routes/main_routes.py): `src/routes/main_routes.py`
- [Data models](https://github.com/komalharshita/devpath/blob/main/src/models.py): `src/models.py`
- [Application database](https://github.com/komalharshita/devpath/blob/main/src/models.py): `src/models.py`

### Project guidance

- [Project data loading](https://github.com/komalharshita/devpath/blob/main/src/utils/data_loader.py): `src/utils/data_loader.py`
- [Recommendation engine](https://github.com/komalharshita/devpath/blob/main/src/utils/recommender.py): `src/utils/recommender.py`
- [Learning paths](https://github.com/komalharshita/devpath/blob/main/src/utils/learning_path.py): `src/utils/learning_path.py`
- [Roadmap comparison](https://github.com/komalharshita/devpath/blob/main/src/utils/roadmap_comparer.py): `src/utils/roadmap_comparer.py`
- [Starter-code serving](https://github.com/komalharshita/devpath/blob/main/src/utils/file_server.py): `src/utils/file_server.py`
- [Skill progression](https://github.com/komalharshita/devpath/blob/main/src/utils/skill_progression.py): `src/utils/skill_progression.py`
- [Code review](https://github.com/komalharshita/devpath/blob/main/src/utils/code_review.py): `src/utils/code_review.py`
- [Portfolio analysis](https://github.com/komalharshita/devpath/blob/main/src/utils/portfolio_analyzer.py): `src/utils/portfolio_analyzer.py`

### Accounts and community

- [Authentication routes](https://github.com/komalharshita/devpath/blob/main/src/routes/auth_routes.py): `src/routes/auth_routes.py`
- [Admin routes](https://github.com/komalharshita/devpath/blob/main/src/routes/admin_routes.py): `src/routes/admin_routes.py`
- [GitHub integration](https://github.com/komalharshita/devpath/blob/main/src/routes/github_routes.py): `src/routes/github_routes.py`
- [Bookmark routes](https://github.com/komalharshita/devpath/blob/main/routes/bookmark_routes.py): `routes/bookmark_routes.py`
- [Bookmark management](https://github.com/komalharshita/devpath/blob/main/utils/bookmark_manager.py): `utils/bookmark_manager.py`
- [Discussion routes](https://github.com/komalharshita/devpath/blob/main/routes/discussion_routes.py): `routes/discussion_routes.py`
- [Discussion management](https://github.com/komalharshita/devpath/blob/main/utils/discussion_manager.py): `utils/discussion_manager.py`
- [Progress routes](https://github.com/komalharshita/devpath/blob/main/routes/progress_routes.py): `routes/progress_routes.py`
- [Progress tracking](https://github.com/komalharshita/devpath/blob/main/utils/progress_tracker.py): `utils/progress_tracker.py`

### Application support

- [Configuration](https://github.com/komalharshita/devpath/blob/main/src/config.py): `src/config.py`
- [Pagination](https://github.com/komalharshita/devpath/blob/main/src/utils/pagination.py): `src/utils/pagination.py`
- [URL validation](https://github.com/komalharshita/devpath/blob/main/src/utils/url_validator.py): `src/utils/url_validator.py`

### Other components

- **Learner**
- **GitHub**

## Connections

- Learner → Main routes: submits preferences
- Flask app → Main routes: registers routes (evidence: `src/app.py`)
- Main routes → Recommendation engine: requests matches (evidence: `src/routes/main_routes.py`)
- Recommendation engine → Project data loading: loads projects (evidence: `src/utils/recommender.py`)
- Main routes → Roadmap comparison: compares roadmaps (evidence: `src/routes/main_routes.py`)
- Main routes → Learning paths: builds learning paths (evidence: `src/routes/main_routes.py`)
- Main routes → Starter-code serving: serves starter code (evidence: `src/routes/main_routes.py`)
- Main routes → Skill progression: tracks progression (evidence: `src/routes/main_routes.py`)
- Main routes → Code review: submits reviews (evidence: `src/routes/main_routes.py`)
- Main routes → Portfolio analysis: analyzes portfolio (evidence: `src/routes/main_routes.py`)
- Main routes → Pagination: uses pagination (evidence: `src/routes/main_routes.py`)
- Project data loading → Data models: uses models (evidence: `src/utils/data_loader.py`)
- Project data loading → URL validation: validates URLs (evidence: `src/utils/data_loader.py`)
- Flask app → Data models: initializes database (evidence: `src/app.py`)
- Flask app → Configuration: loads settings (evidence: `src/app.py`)
- Flask app → Authentication routes: registers routes (evidence: `src/app.py`)
- Flask app → Admin routes: registers routes (evidence: `src/app.py`)
- Flask app → GitHub integration: registers routes (evidence: `src/app.py`)
- GitHub integration → GitHub: exchanges OAuth (evidence: `src/routes/github_routes.py`)
- Admin routes → Data models: edits projects (evidence: `src/routes/admin_routes.py`)
- Admin routes → Pagination: parses pages (evidence: `src/routes/admin_routes.py`)
- Bookmark routes → Bookmark management: manages bookmarks (evidence: `routes/bookmark_routes.py`)
- Discussion routes → Discussion management: manages threads (evidence: `routes/discussion_routes.py`)
- Progress routes → Progress tracking: updates progress (evidence: `routes/progress_routes.py`)
