# jay-sick/aboutme architecture

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

- Interactive diagram: https://gitdiagram.com/jay-sick/aboutme
- Repository: https://github.com/jay-sick/aboutme

## Overview

This repository is a personal IT portfolio website. Visitors browse profile, education, experience, certifications, and project showcases; the JavaScript client also provides project discovery and interactive details. A local Python launcher can serve the site and refresh its project catalog. The main JavaScript excerpt confirms GitHub-based project loading and several interactive features, but does not expose all page wiring or local data fallbacks, so those relationships are not asserted here.

Main entry points: [`Launch.py`](https://github.com/jay-sick/aboutme/blob/main/Launch.py) (Local launcher and server), [`js/main.js`](https://github.com/jay-sick/aboutme/blob/main/js/main.js) (Portfolio client), [`projects/projects.js`](https://github.com/jay-sick/aboutme/blob/main/projects/projects.js) (Project catalog), [`projects`](https://github.com/jay-sick/aboutme/tree/main/projects) (Project records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["Portfolio experience"]
  node_portfolio["Portfolio client<br/>[main.js]"]
  node_project_interactions["Project discovery and details<br/>[main.js]"]
  node_image_viewer["Image lightbox<br/>[main.js]"]
  node_terminal["Terminal interaction<br/>[main.js]"]
end

subgraph group_content["Portfolio content"]
  node_site_config["Site configuration<br/>[site-config.js]"]
  node_bundled_content["Bundled profile and layouts<br/>[site-data.js]"]
  node_project_catalog["Project catalog<br/>[projects.js]"]
  node_project_records["Project records"]
end

subgraph group_serving["Local serving"]
  node_launcher["Local launcher and server<br/>[Launch.py]"]
end

node_visitor(("Visitor"))
node_browser(("Web browser"))
node_github_api["GitHub contents API"]

node_visitor -.->|"browses"| node_portfolio
node_portfolio -->|"fetches projects"| node_github_api
node_launcher -->|"opens site"| node_browser
node_launcher -->|"scans records"| node_project_records
node_launcher -->|"writes registry"| node_project_catalog

click node_portfolio "https://github.com/jay-sick/aboutme/blob/main/js/main.js"
click node_project_interactions "https://github.com/jay-sick/aboutme/blob/main/js/main.js"
click node_image_viewer "https://github.com/jay-sick/aboutme/blob/main/js/main.js"
click node_terminal "https://github.com/jay-sick/aboutme/blob/main/js/main.js"
click node_site_config "https://github.com/jay-sick/aboutme/blob/main/data/site-config.js"
click node_bundled_content "https://github.com/jay-sick/aboutme/blob/main/data/site-data.js"
click node_project_catalog "https://github.com/jay-sick/aboutme/blob/main/projects/projects.js"
click node_project_records "https://github.com/jay-sick/aboutme/tree/main/projects"
click node_launcher "https://github.com/jay-sick/aboutme/blob/main/Launch.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_portfolio,node_project_interactions,node_image_viewer,node_terminal,node_browser toneBlue
class node_site_config,node_bundled_content,node_project_catalog,node_project_records toneAmber
class node_launcher,node_github_api toneMint
class node_visitor toneIndigo
```

## Components

### Portfolio experience

- [Portfolio client](https://github.com/jay-sick/aboutme/blob/main/js/main.js): `js/main.js`
- [Project discovery and details](https://github.com/jay-sick/aboutme/blob/main/js/main.js): `js/main.js`
- [Image lightbox](https://github.com/jay-sick/aboutme/blob/main/js/main.js): `js/main.js`
- [Terminal interaction](https://github.com/jay-sick/aboutme/blob/main/js/main.js): `js/main.js`

### Portfolio content

- [Site configuration](https://github.com/jay-sick/aboutme/blob/main/data/site-config.js): `data/site-config.js`
- [Bundled profile and layouts](https://github.com/jay-sick/aboutme/blob/main/data/site-data.js): `data/site-data.js`
- [Project catalog](https://github.com/jay-sick/aboutme/blob/main/projects/projects.js): `projects/projects.js`
- [Project records](https://github.com/jay-sick/aboutme/tree/main/projects): `projects`

### Local serving

- [Local launcher and server](https://github.com/jay-sick/aboutme/blob/main/Launch.py): `Launch.py`

### Other components

- **Visitor**
- **Web browser**
- **GitHub contents API**

## Connections

- Visitor → Portfolio client: browses
- Portfolio client → GitHub contents API: fetches projects (evidence: `js/main.js`)
- Local launcher and server → Web browser: opens site (evidence: `Launch.py`)
- Local launcher and server → Project records: scans records (evidence: `Launch.py`)
- Local launcher and server → Project catalog: writes registry (evidence: `Launch.py`)
