# sb3lr/sb3lr.github.io architecture

> Architecture diagram of the GitHub repository sb3lr/sb3lr.github.io, 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/sb3lr/sb3lr.github.io
- Repository: https://github.com/sb3lr/sb3lr.github.io

## Overview

This is an Astro-based cybersecurity portfolio presented with a virtual-OS visual identity. A visitor browses the portfolio and its tools, tutorials, achievements, and reports; Markdown content is validated as collections and exposed through section pages. Interactive features include a simulated threat map and achievement unlocks, with optional sound effects. The README documents the content-managed sections and bilingual experience, but the page wiring and several UI components were not sampled, so those relationships are left unasserted.

Main entry points: [`src/content/config.ts`](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/content/config.ts) (Collection Schemas), [`src/pages/index.astro`](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/index.astro) (Portfolio Home), [`src/pages/sitemap.xml.ts`](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/sitemap.xml.ts) (Sitemap Route), [`src/content/cybertools`](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/cybertools) (Cyber Tools Content)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Portfolio Experience"]
  node_home["Portfolio Home<br/>[index.astro]"]
  node_layout["Shared Layout<br/>[Layout.astro]"]
  node_sidebar["Sidebar<br/>[Sidebar.astro]"]
  node_language["Language Toggle"]
  node_portfolio["Portfolio Data<br/>[portfolioData.ts]"]
end

subgraph group_content["Content Collections"]
  node_tools["Tools Pages"]
  node_tutorials["Tutorial Pages"]
  node_achievements["Achievement Pages"]
  node_reports["Report Pages"]
  node_collections["Collection Schemas<br/>[config.ts]"]
  node_tool_content["Cyber Tools Content"]
  node_tutorial_content["Tutorial Content"]
  node_achievement_content["Achievement Content"]
  node_report_content["Report Content"]
end

subgraph group_interaction["Interactive Features"]
  node_threat_map["Threat Map<br/>[ThreatMap.tsx]"]
  node_achievement_manager["Achievement Manager"]
  node_sound_manager["Sound Manager<br/>[SoundManager.tsx]"]
end

subgraph group_discovery["Site Discovery"]
  node_sitemap["Sitemap Route<br/>[sitemap.xml.ts]"]
  node_robots["Robots Route<br/>[robots.txt.ts]"]
end

node_visitor(("Visitor"))

node_visitor -.->|"browses"| node_home
node_visitor -.->|"browses"| node_tools
node_visitor -.->|"browses"| node_tutorials
node_visitor -.->|"browses"| node_achievements
node_visitor -.->|"browses"| node_reports
node_tools -.->|"presents"| node_tool_content
node_tutorials -.->|"presents"| node_tutorial_content
node_achievements -.->|"presents"| node_achievement_content
node_reports -.->|"presents"| node_report_content
node_collections -.->|"validates"| node_tool_content
node_collections -.->|"validates"| node_tutorial_content
node_collections -.->|"validates"| node_achievement_content
node_collections -.->|"validates"| node_report_content
node_home -.->|"uses data"| node_portfolio
node_home -.->|"displays"| node_threat_map
node_home -.->|"offers unlocks"| node_achievement_manager
node_achievement_manager -->|"plays alert"| node_sound_manager
node_sound_manager -.->|"plays audio"| node_visitor
node_sitemap -->|"lists entries"| node_tutorial_content
node_sitemap -->|"lists entries"| node_tool_content
node_robots -->|"announces"| node_sitemap

click node_home "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/index.astro"
click node_layout "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/layouts/Layout.astro"
click node_sidebar "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/Sidebar.astro"
click node_language "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/LanguageToggle.astro"
click node_portfolio "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/data/portfolioData.ts"
click node_tools "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/tools"
click node_tutorials "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/tutorials"
click node_achievements "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/achievements"
click node_reports "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/reports"
click node_collections "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/content/config.ts"
click node_tool_content "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/cybertools"
click node_tutorial_content "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/tutorials"
click node_achievement_content "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/achievements"
click node_report_content "https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/reports"
click node_threat_map "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/ThreatMap.tsx"
click node_achievement_manager "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/AchievementManager.tsx"
click node_sound_manager "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/SoundManager.tsx"
click node_sitemap "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/sitemap.xml.ts"
click node_robots "https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/robots.txt.ts"

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_home,node_layout,node_sidebar,node_language,node_portfolio toneBlue
class node_tools,node_tutorials,node_achievements,node_reports,node_collections,node_tool_content,node_tutorial_content,node_achievement_content,node_report_content toneAmber
class node_threat_map,node_achievement_manager,node_sound_manager toneMint
class node_sitemap,node_robots toneRose
class node_visitor toneIndigo
```

## Components

### Portfolio Experience

- [Portfolio Home](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/index.astro): `src/pages/index.astro`
- [Shared Layout](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/layouts/Layout.astro): `src/layouts/Layout.astro`
- [Sidebar](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/Sidebar.astro): `src/components/Sidebar.astro`
- [Language Toggle](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/LanguageToggle.astro): `src/components/LanguageToggle.astro`
- [Portfolio Data](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/data/portfolioData.ts): `src/data/portfolioData.ts`

### Content Collections

- [Tools Pages](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/tools): `src/pages/tools`
- [Tutorial Pages](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/tutorials): `src/pages/tutorials`
- [Achievement Pages](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/achievements): `src/pages/achievements`
- [Report Pages](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/pages/reports): `src/pages/reports`
- [Collection Schemas](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/content/config.ts): `src/content/config.ts`
- [Cyber Tools Content](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/cybertools): `src/content/cybertools`
- [Tutorial Content](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/tutorials): `src/content/tutorials`
- [Achievement Content](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/achievements): `src/content/achievements`
- [Report Content](https://github.com/sb3lr/sb3lr.github.io/tree/master/src/content/reports): `src/content/reports`

### Interactive Features

- [Threat Map](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/ThreatMap.tsx): `src/components/ThreatMap.tsx`
- [Achievement Manager](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/AchievementManager.tsx): `src/components/AchievementManager.tsx`
- [Sound Manager](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/components/SoundManager.tsx): `src/components/SoundManager.tsx`

### Site Discovery

- [Sitemap Route](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/sitemap.xml.ts): `src/pages/sitemap.xml.ts`
- [Robots Route](https://github.com/sb3lr/sb3lr.github.io/blob/master/src/pages/robots.txt.ts): `src/pages/robots.txt.ts`

### Other components

- **Visitor**

## Connections

- Visitor → Portfolio Home: browses (evidence: `README.md`)
- Visitor → Tools Pages: browses (evidence: `README.md`)
- Visitor → Tutorial Pages: browses (evidence: `README.md`)
- Visitor → Achievement Pages: browses (evidence: `README.md`)
- Visitor → Report Pages: browses (evidence: `README.md`)
- Tools Pages → Cyber Tools Content: presents (evidence: `README.md`)
- Tutorial Pages → Tutorial Content: presents (evidence: `README.md`)
- Achievement Pages → Achievement Content: presents (evidence: `README.md`)
- Report Pages → Report Content: presents
- Collection Schemas → Cyber Tools Content: validates
- Collection Schemas → Tutorial Content: validates
- Collection Schemas → Achievement Content: validates
- Collection Schemas → Report Content: validates
- Portfolio Home → Portfolio Data: uses data
- Portfolio Home → Threat Map: displays (evidence: `README.md`)
- Portfolio Home → Achievement Manager: offers unlocks (evidence: `README.md`)
- Achievement Manager → Sound Manager: plays alert (evidence: `src/components/AchievementManager.tsx`)
- Sound Manager → Visitor: plays audio
- Sitemap Route → Tutorial Content: lists entries (evidence: `src/pages/sitemap.xml.ts`)
- Sitemap Route → Cyber Tools Content: lists entries (evidence: `src/pages/sitemap.xml.ts`)
- Robots Route → Sitemap Route: announces (evidence: `src/pages/robots.txt.ts`)
