# aymnsk/skillforge architecture

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

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

## Overview

SkillForge combines a repository-sharing community with a learning-resource hub. Users discover repositories or learning materials, and registered users can create and manage repositories, contribute files, and interact through community features. The sampled code shows two Flask application files with overlapping repository functionality; `main.py` also shows resource discovery and suggestions. Source excerpts are partial, so the graph includes only relationships visible in those excerpts; it does not assume how the two application files are selected or connected.

Main entry points: [`skillforge.db`](https://github.com/aymnsk/skillforge/blob/main/skillforge.db) (SQLite database), [`main.py`](https://github.com/aymnsk/skillforge/blob/main/main.py) (Repository routes), [`app.py`](https://github.com/aymnsk/skillforge/blob/main/app.py) (Repository routes), [`templates`](https://github.com/aymnsk/skillforge/tree/main/templates) (Rendered pages)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_community["Repository community"]
  node_app_repos["Repository routes<br/>[app.py]"]
  node_main_repos["Repository routes<br/>[main.py]"]
  node_repo_storage["Repository files<br/>[main.py]"]
  node_community_actions["Stars and comments<br/>[app.py]"]
  node_repo_search["Repository discovery<br/>[main.py]"]
  node_profiles["User profiles<br/>[main.py]"]
end

subgraph group_learning["Learning resources"]
  node_learn_hub["Resource discovery<br/>[main.py]"]
  node_suggestions["Resource suggestions<br/>[main.py]"]
  node_admin_resources["Resource moderation<br/>[main.py]"]
  node_grok_service["Grok API"]
end

subgraph group_runtime["Application runtime"]
  node_sqlite[("SQLite database<br/>[skillforge.db]")]
  node_flask_pages["Rendered pages"]
  node_browser_theme["Theme behavior<br/>[main.js]"]
end

node_visitor(("Visitor"))
node_member(("Signed-in member"))

node_visitor -->|"browses repositories"| node_app_repos
node_member -->|"manages repositories"| node_app_repos
node_visitor -->|"browses repositories"| node_main_repos
node_member -->|"manages repositories"| node_main_repos
node_main_repos -->|"stores uploads"| node_repo_storage
node_member -->|"interacts"| node_community_actions
node_visitor -->|"searches repositories"| node_repo_search
node_member -->|"edits profile"| node_profiles
node_visitor -->|"discovers resources"| node_learn_hub
node_member -->|"suggests resources"| node_suggestions
node_member -->|"moderates resources"| node_admin_resources
node_app_repos -->|"reads and writes"| node_sqlite
node_main_repos -->|"reads and writes"| node_sqlite
node_community_actions -->|"updates records"| node_sqlite
node_repo_search -->|"queries repositories"| node_sqlite
node_profiles -->|"reads and updates"| node_sqlite
node_learn_hub -->|"queries resources"| node_sqlite
node_suggestions -->|"saves suggestions"| node_sqlite
node_admin_resources -.->|"manages resources"| node_sqlite
node_app_repos -->|"renders pages"| node_flask_pages
node_main_repos -->|"renders pages"| node_flask_pages
node_learn_hub -->|"renders pages"| node_flask_pages
node_main_repos -.->|"requests AI response"| node_grok_service
node_visitor -->|"toggles theme"| node_browser_theme

click node_app_repos "https://github.com/aymnsk/skillforge/blob/main/app.py"
click node_main_repos "https://github.com/aymnsk/skillforge/blob/main/main.py"
click node_repo_storage "https://github.com/aymnsk/skillforge/blob/main/main.py"
click node_community_actions "https://github.com/aymnsk/skillforge/blob/main/app.py"
click node_repo_search "https://github.com/aymnsk/skillforge/blob/main/main.py"
click node_profiles "https://github.com/aymnsk/skillforge/blob/main/main.py"
click node_learn_hub "https://github.com/aymnsk/skillforge/blob/main/main.py"
click node_suggestions "https://github.com/aymnsk/skillforge/blob/main/main.py"
click node_admin_resources "https://github.com/aymnsk/skillforge/blob/main/main.py"
click node_sqlite "https://github.com/aymnsk/skillforge/blob/main/skillforge.db"
click node_flask_pages "https://github.com/aymnsk/skillforge/tree/main/templates"
click node_browser_theme "https://github.com/aymnsk/skillforge/blob/main/static/js/main.js"

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_repos,node_main_repos,node_repo_storage,node_community_actions,node_repo_search,node_profiles toneBlue
class node_learn_hub,node_suggestions,node_admin_resources,node_grok_service toneAmber
class node_sqlite,node_flask_pages,node_browser_theme toneMint
class node_visitor,node_member toneIndigo
```

## Components

### Repository community

- [Repository routes](https://github.com/aymnsk/skillforge/blob/main/app.py): `app.py`
- [Repository routes](https://github.com/aymnsk/skillforge/blob/main/main.py): `main.py`
- [Repository files](https://github.com/aymnsk/skillforge/blob/main/main.py): `main.py`
- [Stars and comments](https://github.com/aymnsk/skillforge/blob/main/app.py): `app.py`
- [Repository discovery](https://github.com/aymnsk/skillforge/blob/main/main.py): `main.py`
- [User profiles](https://github.com/aymnsk/skillforge/blob/main/main.py): `main.py`

### Learning resources

- [Resource discovery](https://github.com/aymnsk/skillforge/blob/main/main.py): `main.py`
- [Resource suggestions](https://github.com/aymnsk/skillforge/blob/main/main.py): `main.py`
- [Resource moderation](https://github.com/aymnsk/skillforge/blob/main/main.py): `main.py`
- **Grok API**

### Application runtime

- [SQLite database](https://github.com/aymnsk/skillforge/blob/main/skillforge.db): `skillforge.db`
- [Rendered pages](https://github.com/aymnsk/skillforge/tree/main/templates): `templates`
- [Theme behavior](https://github.com/aymnsk/skillforge/blob/main/static/js/main.js): `static/js/main.js`

### Other components

- **Visitor**
- **Signed-in member**

## Connections

- Visitor → Repository routes: browses repositories (evidence: `app.py`)
- Signed-in member → Repository routes: manages repositories (evidence: `app.py`)
- Visitor → Repository routes: browses repositories (evidence: `main.py`)
- Signed-in member → Repository routes: manages repositories (evidence: `main.py`)
- Repository routes → Repository files: stores uploads (evidence: `main.py`)
- Signed-in member → Stars and comments: interacts (evidence: `app.py`)
- Visitor → Repository discovery: searches repositories (evidence: `main.py`)
- Signed-in member → User profiles: edits profile (evidence: `main.py`)
- Visitor → Resource discovery: discovers resources (evidence: `main.py`)
- Signed-in member → Resource suggestions: suggests resources (evidence: `main.py`)
- Signed-in member → Resource moderation: moderates resources (evidence: `main.py`)
- Repository routes → SQLite database: reads and writes (evidence: `app.py`)
- Repository routes → SQLite database: reads and writes (evidence: `main.py`)
- Stars and comments → SQLite database: updates records (evidence: `app.py`)
- Repository discovery → SQLite database: queries repositories (evidence: `main.py`)
- User profiles → SQLite database: reads and updates (evidence: `main.py`)
- Resource discovery → SQLite database: queries resources (evidence: `main.py`)
- Resource suggestions → SQLite database: saves suggestions (evidence: `main.py`)
- Resource moderation → SQLite database: manages resources
- Repository routes → Rendered pages: renders pages (evidence: `app.py`)
- Repository routes → Rendered pages: renders pages (evidence: `main.py`)
- Resource discovery → Rendered pages: renders pages (evidence: `main.py`)
- Repository routes → Grok API: requests AI response
- Visitor → Theme behavior: toggles theme (evidence: `static/js/main.js`)
