# aymnsk64/skillforge architecture

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

- Interactive diagram: https://gitdiagram.com/aymnsk64/skillforge
- Repository: https://github.com/aymnsk64/skillforge

## Overview

SkillForge is a Flask web app for sharing code repositories and discovering learning resources. Users browse or search repositories, view files and README content, and can create and manage repositories; a separate learning hub supports resource discovery and suggestions. Profiles and community interactions round out the product. The excerpts show two application modules with overlapping responsibilities, so their wiring is kept separate. The database and template relationships are visible, but unsampled routes and storage details are not expanded.

Main entry points: [`main.py`](https://github.com/aymnsk64/skillforge/blob/main/main.py) (Web routes), [`app.py`](https://github.com/aymnsk64/skillforge/blob/main/app.py) (Web routes), [`templates`](https://github.com/aymnsk64/skillforge/tree/main/templates) (Page templates), [`skillforge.db`](https://github.com/aymnsk64/skillforge/blob/main/skillforge.db) (Application data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_repository["Repository sharing"]
  node_repo_browse["Browse repositories<br/>[main.py]"]
  node_repo_manage["Repository management<br/>[main.py]"]
  node_repo_detail["Repository and files<br/>[main.py]"]
  node_repo_community["Stars and comments<br/>[app.py]"]
end

subgraph group_learning["Learning resources"]
  node_learning_browse["Resource discovery<br/>[main.py]"]
  node_resource_suggest["Suggest resources<br/>[main.py]"]
  node_resource_admin["Resource administration<br/>[main.py]"]
  node_ai_service{{"xAI chat API"}}
end

subgraph group_community["Accounts and community"]
  node_accounts["Accounts and profiles<br/>[main.py]"]
end

subgraph group_platform["Web and data"]
  node_app_py["Web routes<br/>[app.py]"]
  node_main_py["Web routes<br/>[main.py]"]
  node_templates["Page templates"]
  node_database[("Application data<br/>[skillforge.db]")]
end

node_user(("User"))

node_user -->|"uses"| node_app_py
node_user -->|"uses"| node_main_py
node_app_py -->|"renders"| node_templates
node_main_py -->|"renders"| node_templates
node_app_py -->|"reads and writes"| node_database
node_main_py -->|"reads and writes"| node_database
node_main_py -->|"handles"| node_repo_browse
node_main_py -->|"handles"| node_repo_manage
node_main_py -->|"handles"| node_repo_detail
node_app_py -->|"handles"| node_repo_community
node_main_py -->|"handles"| node_learning_browse
node_main_py -->|"handles"| node_resource_suggest
node_main_py -->|"handles"| node_resource_admin
node_main_py -->|"handles"| node_accounts
node_app_py -.->|"requests chat"| node_ai_service

click node_app_py "https://github.com/aymnsk64/skillforge/blob/main/app.py"
click node_main_py "https://github.com/aymnsk64/skillforge/blob/main/main.py"
click node_templates "https://github.com/aymnsk64/skillforge/tree/main/templates"
click node_database "https://github.com/aymnsk64/skillforge/blob/main/skillforge.db"
click node_repo_browse "https://github.com/aymnsk64/skillforge/blob/main/main.py"
click node_repo_manage "https://github.com/aymnsk64/skillforge/blob/main/main.py"
click node_repo_detail "https://github.com/aymnsk64/skillforge/blob/main/main.py"
click node_repo_community "https://github.com/aymnsk64/skillforge/blob/main/app.py"
click node_learning_browse "https://github.com/aymnsk64/skillforge/blob/main/main.py"
click node_resource_suggest "https://github.com/aymnsk64/skillforge/blob/main/main.py"
click node_resource_admin "https://github.com/aymnsk64/skillforge/blob/main/main.py"
click node_accounts "https://github.com/aymnsk64/skillforge/blob/main/main.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_repo_browse,node_repo_manage,node_repo_detail,node_repo_community,node_user toneBlue
class node_learning_browse,node_resource_suggest,node_resource_admin,node_ai_service toneAmber
class node_accounts toneMint
class node_app_py,node_main_py,node_templates,node_database toneRose
```

## Components

### Repository sharing

- [Browse repositories](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`
- [Repository management](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`
- [Repository and files](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`
- [Stars and comments](https://github.com/aymnsk64/skillforge/blob/main/app.py): `app.py`

### Learning resources

- [Resource discovery](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`
- [Suggest resources](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`
- [Resource administration](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`
- **xAI chat API**

### Accounts and community

- [Accounts and profiles](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`

### Web and data

- [Web routes](https://github.com/aymnsk64/skillforge/blob/main/app.py): `app.py`
- [Web routes](https://github.com/aymnsk64/skillforge/blob/main/main.py): `main.py`
- [Page templates](https://github.com/aymnsk64/skillforge/tree/main/templates): `templates`
- [Application data](https://github.com/aymnsk64/skillforge/blob/main/skillforge.db): `skillforge.db`

### Other components

- **User**

## Connections

- User → Web routes: uses
- User → Web routes: uses
- Web routes → Page templates: renders
- Web routes → Page templates: renders
- Web routes → Application data: reads and writes
- Web routes → Application data: reads and writes
- Web routes → Browse repositories: handles
- Web routes → Repository management: handles
- Web routes → Repository and files: handles
- Web routes → Stars and comments: handles
- Web routes → Resource discovery: handles
- Web routes → Suggest resources: handles
- Web routes → Resource administration: handles
- Web routes → Accounts and profiles: handles
- Web routes → xAI chat API: requests chat
