# jackobhat6117/zd-portfolio architecture

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

- Interactive diagram: https://gitdiagram.com/jackobhat6117/zd-portfolio
- Repository: https://github.com/jackobhat6117/zd-portfolio

## Overview

This repository is a personal portfolio and profile website. Visitors browse the landing page, biography, work samples, résumé, and editorial content, then can reach the contact form. Portfolio filtering and blog detail rendering are separate domain stages; shared navigation, page headers, and social links support these experiences. The README is empty, and several route implementations were not sampled, so the graph keeps their connections limited to documented imports and visible links rather than assuming hidden data flows or integrations.

Main entry points: [`app/portfolio/page.tsx`](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/portfolio/page.tsx) (Work Portfolio), [`components/navigation.tsx`](https://github.com/jackobhat6117/zd-portfolio/blob/main/components/navigation.tsx) (Site Navigation), [`app/page.tsx`](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/page.tsx) (Landing Page), [`app/about/page.tsx`](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/about/page.tsx) (Biography)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Site Discovery"]
  node_home["Landing Page<br/>[page.tsx]"]
  node_navigation["Site Navigation<br/>[navigation.tsx]"]
end

subgraph group_profile["Profile and Work"]
  node_about["Biography<br/>[page.tsx]"]
  node_portfolio["Work Portfolio<br/>[page.tsx]"]
  node_gallery["Portfolio Gallery<br/>[gallery-grid.tsx]"]
  node_portfolioitem["Work Item<br/>[portfolio-item.tsx]"]
  node_resume["Résumé<br/>[page.tsx]"]
end

subgraph group_editorial["Editorial Content"]
  node_bloglist["Blog Listing<br/>[page.tsx]"]
  node_blogcard["Blog Card<br/>[blog-card.tsx]"]
  node_blogroute["Article Route<br/>[page.tsx]"]
  node_blogclient["Article View<br/>[BlogPostClient.tsx]"]
end

subgraph group_engagement["Engagement and Policies"]
  node_contact["Contact Form<br/>[page.tsx]"]
  node_social["Social Links<br/>[social-links.tsx]"]
  node_policies["Site Policies<br/>[page.tsx]"]
  node_terms["Terms<br/>[page.tsx]"]
end

node_visitor(("Visitor"))

node_visitor -->|"visits"| node_home
node_visitor -->|"uses"| node_navigation
node_visitor -->|"visits"| node_about
node_visitor -->|"visits"| node_portfolio
node_visitor -->|"visits"| node_resume
node_visitor -->|"visits"| node_bloglist
node_visitor -->|"visits"| node_blogroute
node_visitor -->|"visits"| node_contact
node_visitor -->|"visits"| node_policies
node_visitor -->|"visits"| node_terms
node_home -->|"links to"| node_portfolio
node_home -->|"links to"| node_contact
node_navigation -->|"links to"| node_about
node_navigation -->|"links to"| node_portfolio
node_navigation -->|"links to"| node_bloglist
node_about -->|"renders"| node_social
node_contact -->|"renders"| node_social
node_portfolio -->|"renders"| node_gallery
node_portfolio -->|"renders"| node_portfolioitem
node_bloglist -->|"renders"| node_blogcard
node_blogroute -->|"renders"| node_blogclient

click node_home "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/page.tsx"
click node_navigation "https://github.com/jackobhat6117/zd-portfolio/blob/main/components/navigation.tsx"
click node_about "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/about/page.tsx"
click node_portfolio "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/portfolio/page.tsx"
click node_gallery "https://github.com/jackobhat6117/zd-portfolio/blob/main/components/gallery-grid.tsx"
click node_portfolioitem "https://github.com/jackobhat6117/zd-portfolio/blob/main/components/portfolio-item.tsx"
click node_resume "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/resume/page.tsx"
click node_bloglist "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/blog/page.tsx"
click node_blogcard "https://github.com/jackobhat6117/zd-portfolio/blob/main/components/blog-card.tsx"
click node_blogroute "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/blog/%5Bslug%5D/page.tsx"
click node_blogclient "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/blog/%5Bslug%5D/BlogPostClient.tsx"
click node_contact "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/contact/page.tsx"
click node_social "https://github.com/jackobhat6117/zd-portfolio/blob/main/components/social-links.tsx"
click node_policies "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/privacy/page.tsx"
click node_terms "https://github.com/jackobhat6117/zd-portfolio/blob/main/app/terms/page.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_navigation toneBlue
class node_about,node_portfolio,node_gallery,node_portfolioitem,node_resume toneAmber
class node_bloglist,node_blogcard,node_blogroute,node_blogclient toneMint
class node_contact,node_social,node_policies,node_terms toneRose
class node_visitor toneIndigo
```

## Components

### Site Discovery

- [Landing Page](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/page.tsx): `app/page.tsx`
- [Site Navigation](https://github.com/jackobhat6117/zd-portfolio/blob/main/components/navigation.tsx): `components/navigation.tsx`

### Profile and Work

- [Biography](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/about/page.tsx): `app/about/page.tsx`
- [Work Portfolio](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/portfolio/page.tsx): `app/portfolio/page.tsx`
- [Portfolio Gallery](https://github.com/jackobhat6117/zd-portfolio/blob/main/components/gallery-grid.tsx): `components/gallery-grid.tsx`
- [Work Item](https://github.com/jackobhat6117/zd-portfolio/blob/main/components/portfolio-item.tsx): `components/portfolio-item.tsx`
- [Résumé](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/resume/page.tsx): `app/resume/page.tsx`

### Editorial Content

- [Blog Listing](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/blog/page.tsx): `app/blog/page.tsx`
- [Blog Card](https://github.com/jackobhat6117/zd-portfolio/blob/main/components/blog-card.tsx): `components/blog-card.tsx`
- [Article Route](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/blog/%5Bslug%5D/page.tsx): `app/blog/[slug]/page.tsx`
- [Article View](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/blog/%5Bslug%5D/BlogPostClient.tsx): `app/blog/[slug]/BlogPostClient.tsx`

### Engagement and Policies

- [Contact Form](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/contact/page.tsx): `app/contact/page.tsx`
- [Social Links](https://github.com/jackobhat6117/zd-portfolio/blob/main/components/social-links.tsx): `components/social-links.tsx`
- [Site Policies](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/privacy/page.tsx): `app/privacy/page.tsx`
- [Terms](https://github.com/jackobhat6117/zd-portfolio/blob/main/app/terms/page.tsx): `app/terms/page.tsx`

### Other components

- **Visitor**

## Connections

- Visitor → Landing Page: visits
- Visitor → Site Navigation: uses
- Visitor → Biography: visits
- Visitor → Work Portfolio: visits
- Visitor → Résumé: visits
- Visitor → Blog Listing: visits
- Visitor → Article Route: visits
- Visitor → Contact Form: visits
- Visitor → Site Policies: visits
- Visitor → Terms: visits
- Landing Page → Work Portfolio: links to
- Landing Page → Contact Form: links to
- Site Navigation → Biography: links to
- Site Navigation → Work Portfolio: links to
- Site Navigation → Blog Listing: links to
- Biography → Social Links: renders
- Contact Form → Social Links: renders
- Work Portfolio → Portfolio Gallery: renders
- Work Portfolio → Work Item: renders
- Blog Listing → Blog Card: renders
- Article Route → Article View: renders
