# aibek002/aibek-portfolio architecture

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

## Overview

This is a Russian-language personal portfolio site for full-stack developer Aibek Seitzhan. Visitors enter through a space-themed landing page, navigate to project showcases, blog posts, or a resume, and can follow external social/contact links. The sampled implementation is a static, page-oriented Next.js presentation with shared navigation and visual components rather than a backend workflow. Blog and project content are embedded in their page modules; the resume page and a separate resume modal are distinct presentations. No README or backend/storage evidence was provided.

Main entry points: [`app/page.tsx`](https://github.com/aibek002/aibek-portfolio/blob/main/app/page.tsx) (Home landing), [`app/resume/page.tsx`](https://github.com/aibek002/aibek-portfolio/blob/main/app/resume/page.tsx) (Resume page), [`components/site-nav.tsx`](https://github.com/aibek002/aibek-portfolio/blob/main/components/site-nav.tsx) (Space page shell), [`app/projects/page.tsx`](https://github.com/aibek002/aibek-portfolio/blob/main/app/projects/page.tsx) (Projects showcase)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pages["Portfolio Pages"]
  node_home["Home landing<br/>[page.tsx]"]
  node_project_showcase["Projects showcase<br/>[page.tsx]"]
  node_blog_listing["Blog listing<br/>[page.tsx]"]
  node_resume_page["Resume page<br/>[page.tsx]"]
  node_resume_modal["Resume modal<br/>[resume-modal.tsx]"]
end

subgraph group_shared["Shared Experience"]
  node_site_nav["Site navigation<br/>[site-nav.tsx]"]
  node_space_shell["Space page shell<br/>[site-nav.tsx]"]
  node_starfield["Starfield<br/>[starfield.tsx]"]
  node_solar_system["Solar system art<br/>[solar-system.tsx]"]
end

subgraph group_primitives["UI Primitives"]
  node_button["Button component<br/>[button.tsx]"]
  node_dialog["Dialog component<br/>[dialog.tsx]"]
end

subgraph group_shell["App Shell"]
  node_app_layout["Root layout<br/>[layout.tsx]"]
end

node_visitor(("Site visitor"))
node_social_sites(("Social platforms"))
node_contact_destinations(("Email and phone"))

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_project_showcase
node_visitor -->|"opens"| node_blog_listing
node_visitor -->|"opens"| node_resume_page
node_visitor -.->|"opens"| node_resume_modal
node_home -->|"renders"| node_site_nav
node_home -->|"renders"| node_starfield
node_home -->|"renders"| node_solar_system
node_home -->|"uses"| node_button
node_project_showcase -->|"renders within"| node_space_shell
node_project_showcase -->|"renders"| node_starfield
node_blog_listing -->|"renders within"| node_space_shell
node_blog_listing -->|"renders"| node_starfield
node_resume_page -->|"renders within"| node_space_shell
node_space_shell -.->|"renders"| node_site_nav
node_resume_modal -->|"uses"| node_dialog
node_resume_modal -->|"uses"| node_button
node_dialog -->|"uses"| node_button
node_app_layout -.->|"wraps page"| node_home
node_home -->|"links to"| node_social_sites
node_resume_page -->|"links to"| node_social_sites
node_resume_page -->|"links to"| node_contact_destinations

click node_home "https://github.com/aibek002/aibek-portfolio/blob/main/app/page.tsx"
click node_project_showcase "https://github.com/aibek002/aibek-portfolio/blob/main/app/projects/page.tsx"
click node_blog_listing "https://github.com/aibek002/aibek-portfolio/blob/main/app/blog/page.tsx"
click node_resume_page "https://github.com/aibek002/aibek-portfolio/blob/main/app/resume/page.tsx"
click node_resume_modal "https://github.com/aibek002/aibek-portfolio/blob/main/components/resume-modal.tsx"
click node_site_nav "https://github.com/aibek002/aibek-portfolio/blob/main/components/site-nav.tsx"
click node_space_shell "https://github.com/aibek002/aibek-portfolio/blob/main/components/site-nav.tsx"
click node_starfield "https://github.com/aibek002/aibek-portfolio/blob/main/components/starfield.tsx"
click node_solar_system "https://github.com/aibek002/aibek-portfolio/blob/main/components/solar-system.tsx"
click node_button "https://github.com/aibek002/aibek-portfolio/blob/main/components/ui/button.tsx"
click node_dialog "https://github.com/aibek002/aibek-portfolio/blob/main/components/ui/dialog.tsx"
click node_app_layout "https://github.com/aibek002/aibek-portfolio/blob/main/app/layout.tsx"

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_project_showcase,node_blog_listing,node_resume_page,node_resume_modal toneBlue
class node_site_nav,node_space_shell,node_starfield,node_solar_system toneAmber
class node_button,node_dialog toneMint
class node_app_layout toneRose
class node_visitor,node_social_sites,node_contact_destinations toneIndigo
```

## Components

### Portfolio Pages

- [Home landing](https://github.com/aibek002/aibek-portfolio/blob/main/app/page.tsx): `app/page.tsx`
- [Projects showcase](https://github.com/aibek002/aibek-portfolio/blob/main/app/projects/page.tsx): `app/projects/page.tsx`
- [Blog listing](https://github.com/aibek002/aibek-portfolio/blob/main/app/blog/page.tsx): `app/blog/page.tsx`
- [Resume page](https://github.com/aibek002/aibek-portfolio/blob/main/app/resume/page.tsx): `app/resume/page.tsx`
- [Resume modal](https://github.com/aibek002/aibek-portfolio/blob/main/components/resume-modal.tsx): `components/resume-modal.tsx`

### Shared Experience

- [Site navigation](https://github.com/aibek002/aibek-portfolio/blob/main/components/site-nav.tsx): `components/site-nav.tsx`
- [Space page shell](https://github.com/aibek002/aibek-portfolio/blob/main/components/site-nav.tsx): `components/site-nav.tsx`
- [Starfield](https://github.com/aibek002/aibek-portfolio/blob/main/components/starfield.tsx): `components/starfield.tsx`
- [Solar system art](https://github.com/aibek002/aibek-portfolio/blob/main/components/solar-system.tsx): `components/solar-system.tsx`

### UI Primitives

- [Button component](https://github.com/aibek002/aibek-portfolio/blob/main/components/ui/button.tsx): `components/ui/button.tsx`
- [Dialog component](https://github.com/aibek002/aibek-portfolio/blob/main/components/ui/dialog.tsx): `components/ui/dialog.tsx`

### App Shell

- [Root layout](https://github.com/aibek002/aibek-portfolio/blob/main/app/layout.tsx): `app/layout.tsx`

### Other components

- **Site visitor**
- **Social platforms**
- **Email and phone**

## Connections

- Site visitor → Home landing: opens (evidence: `app/page.tsx`)
- Site visitor → Projects showcase: opens (evidence: `app/projects/page.tsx`)
- Site visitor → Blog listing: opens (evidence: `app/blog/page.tsx`)
- Site visitor → Resume page: opens (evidence: `app/resume/page.tsx`)
- Site visitor → Resume modal: opens
- Home landing → Site navigation: renders (evidence: `app/page.tsx`)
- Home landing → Starfield: renders (evidence: `app/page.tsx`)
- Home landing → Solar system art: renders (evidence: `app/page.tsx`)
- Home landing → Button component: uses (evidence: `app/page.tsx`)
- Projects showcase → Space page shell: renders within (evidence: `app/projects/page.tsx`)
- Projects showcase → Starfield: renders (evidence: `app/projects/page.tsx`)
- Blog listing → Space page shell: renders within (evidence: `app/blog/page.tsx`)
- Blog listing → Starfield: renders (evidence: `app/blog/page.tsx`)
- Resume page → Space page shell: renders within (evidence: `app/resume/page.tsx`)
- Space page shell → Site navigation: renders (evidence: `components/site-nav.tsx`)
- Resume modal → Dialog component: uses (evidence: `components/resume-modal.tsx`)
- Resume modal → Button component: uses (evidence: `components/resume-modal.tsx`)
- Dialog component → Button component: uses (evidence: `components/ui/dialog.tsx`)
- Root layout → Home landing: wraps page
- Home landing → Social platforms: links to (evidence: `app/page.tsx`)
- Resume page → Social platforms: links to (evidence: `app/resume/page.tsx`)
- Resume page → Email and phone: links to (evidence: `app/resume/page.tsx`)
