# gsk-10/shiva-gaddam-portfolio architecture

> Architecture diagram of the GitHub repository gsk-10/shiva-gaddam-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/gsk-10/shiva-gaddam-portfolio
- Repository: https://github.com/gsk-10/shiva-gaddam-portfolio

## Overview

This is a statically rendered personal engineering portfolio. Visitors enter through the homepage, browse profile, work, experience, skills, and projects, then can open work case studies or use contact and resume links. A separate notes page presents engineering notes. Typed content supplies the portfolio sections, while shared layout, theme, and accessibility components support navigation and presentation. The graph follows documented structure and indexed imports; unsampled implementation details and deployment infrastructure are not expanded.

Main entry points: [`content/portfolio.ts`](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/portfolio.ts) (Profile and section copy), [`app/page.tsx`](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/page.tsx) (Homepage route), [`app/layout.tsx`](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/layout.tsx) (Root layout and SEO), [`components/sections/Work.tsx`](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Work.tsx) (Work case studies)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routes["Pages and metadata"]
  node_home["Homepage route<br/>[page.tsx]"]
  node_notesroute["Notes route<br/>[page.tsx]"]
  node_root["Root layout and SEO<br/>[layout.tsx]"]
  node_seoendpoints["Robots and sitemap"]
end

subgraph group_portfolio["Portfolio sections"]
  node_hero["Hero and profile<br/>[Hero.tsx]"]
  node_about["About<br/>[About.tsx]"]
  node_work["Work case studies<br/>[Work.tsx]"]
  node_experience["Experience<br/>[Experience.tsx]"]
  node_skills["Skills<br/>[Skills.tsx]"]
  node_projects["Projects<br/>[Projects.tsx]"]
  node_contact["Contact<br/>[Contact.tsx]"]
  node_notes["Engineering notes<br/>[Notes.tsx]"]
end

subgraph group_content["Typed content"]
  node_portfolio_data["Profile and section copy<br/>[portfolio.ts]"]
  node_work_data["Case-study data<br/>[work.ts]"]
  node_skill_data["Skill catalog<br/>[skills.ts]"]
  node_project_data["Project catalog<br/>[projects.ts]"]
  node_theme_data["Theme cycle<br/>[themes.ts]"]
end

subgraph group_shared["Shared experience"]
  node_navbar["Navigation<br/>[Navbar.tsx]"]
  node_footer["Footer<br/>[Footer.tsx]"]
  node_theme["Theme provider and toggle<br/>[theme.tsx]"]
  node_ui["Section and UI primitives<br/>[ui.tsx]"]
  node_profile_card["Interactive profile card"]
  node_modal["Modal focus management<br/>[useModalDialog.ts]"]
  node_backtotop["Back-to-top control<br/>[BackToTop.tsx]"]
  node_themes_css["Theme palettes<br/>[theme.css]"]
end

node_visitor(("Visitor"))
node_mail(("Visitor email client"))

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_notesroute
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_about
node_home -->|"renders"| node_work
node_home -->|"renders"| node_experience
node_home -->|"renders"| node_skills
node_home -->|"renders"| node_projects
node_home -->|"renders"| node_contact
node_notesroute -->|"renders"| node_notes
node_root -->|"renders"| node_navbar
node_root -->|"renders"| node_footer
node_root -->|"renders"| node_backtotop
node_root -->|"provides"| node_theme
node_root -.->|"generates"| node_seoendpoints
node_hero -->|"renders"| node_profile_card
node_work -->|"uses"| node_modal
node_theme -->|"loads"| node_theme_data
node_navbar -->|"renders toggle"| node_theme
node_hero -->|"reads"| node_portfolio_data
node_about -->|"reads"| node_portfolio_data
node_work -->|"reads"| node_portfolio_data
node_work -->|"reads"| node_work_data
node_experience -->|"reads"| node_portfolio_data
node_skills -->|"reads"| node_portfolio_data
node_skills -->|"reads"| node_skill_data
node_projects -->|"reads"| node_portfolio_data
node_projects -->|"reads"| node_project_data
node_contact -->|"reads"| node_portfolio_data
node_notes -->|"reads"| node_portfolio_data
node_navbar -->|"reads"| node_portfolio_data
node_footer -->|"reads"| node_portfolio_data
node_ui -.->|"uses tokens"| node_themes_css
node_contact -->|"opens draft"| node_mail

click node_home "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/page.tsx"
click node_notesroute "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/notes/page.tsx"
click node_root "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/layout.tsx"
click node_seoendpoints "https://github.com/gsk-10/shiva-gaddam-portfolio/tree/main/app"
click node_hero "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Hero.tsx"
click node_about "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/About.tsx"
click node_work "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Work.tsx"
click node_experience "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Experience.tsx"
click node_skills "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Skills.tsx"
click node_projects "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Projects.tsx"
click node_contact "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Contact.tsx"
click node_notes "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Notes.tsx"
click node_portfolio_data "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/portfolio.ts"
click node_work_data "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/work.ts"
click node_skill_data "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/skills.ts"
click node_project_data "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/projects.ts"
click node_theme_data "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/themes.ts"
click node_navbar "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/layout/Navbar.tsx"
click node_footer "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/layout/Footer.tsx"
click node_theme "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/theme.tsx"
click node_ui "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui.tsx"
click node_profile_card "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui/HeroProfileCard.tsx"
click node_modal "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui/useModalDialog.ts"
click node_backtotop "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui/BackToTop.tsx"
click node_themes_css "https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/styles/theme.css"

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_notesroute,node_root,node_seoendpoints,node_mail toneBlue
class node_hero,node_about,node_work,node_experience,node_skills,node_projects,node_contact,node_notes toneAmber
class node_portfolio_data,node_work_data,node_skill_data,node_project_data,node_theme_data toneMint
class node_navbar,node_footer,node_theme,node_ui,node_profile_card,node_modal,node_backtotop,node_themes_css toneRose
class node_visitor toneIndigo
```

## Components

### Pages and metadata

- [Homepage route](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/page.tsx): `app/page.tsx`
- [Notes route](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/notes/page.tsx): `app/notes/page.tsx`
- [Root layout and SEO](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/app/layout.tsx): `app/layout.tsx`
- [Robots and sitemap](https://github.com/gsk-10/shiva-gaddam-portfolio/tree/main/app): `app`

### Portfolio sections

- [Hero and profile](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Hero.tsx): `components/sections/Hero.tsx`
- [About](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/About.tsx): `components/sections/About.tsx`
- [Work case studies](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Work.tsx): `components/sections/Work.tsx`
- [Experience](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Experience.tsx): `components/sections/Experience.tsx`
- [Skills](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Skills.tsx): `components/sections/Skills.tsx`
- [Projects](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Projects.tsx): `components/sections/Projects.tsx`
- [Contact](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Contact.tsx): `components/sections/Contact.tsx`
- [Engineering notes](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/sections/Notes.tsx): `components/sections/Notes.tsx`

### Typed content

- [Profile and section copy](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/portfolio.ts): `content/portfolio.ts`
- [Case-study data](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/work.ts): `content/work.ts`
- [Skill catalog](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/skills.ts): `content/skills.ts`
- [Project catalog](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/projects.ts): `content/projects.ts`
- [Theme cycle](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/content/themes.ts): `content/themes.ts`

### Shared experience

- [Navigation](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/layout/Navbar.tsx): `components/layout/Navbar.tsx`
- [Footer](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/layout/Footer.tsx): `components/layout/Footer.tsx`
- [Theme provider and toggle](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/theme.tsx): `components/theme.tsx`
- [Section and UI primitives](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui.tsx): `components/ui.tsx`
- [Interactive profile card](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui/HeroProfileCard.tsx): `components/ui/HeroProfileCard.tsx`
- [Modal focus management](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui/useModalDialog.ts): `components/ui/useModalDialog.ts`
- [Back-to-top control](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/components/ui/BackToTop.tsx): `components/ui/BackToTop.tsx`
- [Theme palettes](https://github.com/gsk-10/shiva-gaddam-portfolio/blob/main/styles/theme.css): `styles/theme.css`

### Other components

- **Visitor**
- **Visitor email client**

## Connections

- Visitor → Homepage route: opens (evidence: `README.md`)
- Visitor → Notes route: opens (evidence: `README.md`)
- Homepage route → Hero and profile: renders (evidence: `app/page.tsx`)
- Homepage route → About: renders (evidence: `app/page.tsx`)
- Homepage route → Work case studies: renders (evidence: `app/page.tsx`)
- Homepage route → Experience: renders (evidence: `app/page.tsx`)
- Homepage route → Skills: renders (evidence: `app/page.tsx`)
- Homepage route → Projects: renders (evidence: `app/page.tsx`)
- Homepage route → Contact: renders (evidence: `app/page.tsx`)
- Notes route → Engineering notes: renders (evidence: `app/notes/page.tsx`)
- Root layout and SEO → Navigation: renders (evidence: `app/layout.tsx`)
- Root layout and SEO → Footer: renders (evidence: `app/layout.tsx`)
- Root layout and SEO → Back-to-top control: renders (evidence: `app/layout.tsx`)
- Root layout and SEO → Theme provider and toggle: provides (evidence: `app/layout.tsx`)
- Root layout and SEO → Robots and sitemap: generates (evidence: `README.md`)
- Hero and profile → Interactive profile card: renders (evidence: `components/sections/Hero.tsx`)
- Work case studies → Modal focus management: uses (evidence: `components/sections/Work.tsx`)
- Theme provider and toggle → Theme cycle: loads (evidence: `components/theme.tsx`)
- Navigation → Theme provider and toggle: renders toggle (evidence: `components/layout/Navbar.tsx`)
- Hero and profile → Profile and section copy: reads (evidence: `components/sections/Hero.tsx`)
- About → Profile and section copy: reads (evidence: `components/sections/About.tsx`)
- Work case studies → Profile and section copy: reads (evidence: `components/sections/Work.tsx`)
- Work case studies → Case-study data: reads (evidence: `components/sections/Work.tsx`)
- Experience → Profile and section copy: reads (evidence: `components/sections/Experience.tsx`)
- Skills → Profile and section copy: reads (evidence: `components/sections/Skills.tsx`)
- Skills → Skill catalog: reads (evidence: `components/sections/Skills.tsx`)
- Projects → Profile and section copy: reads (evidence: `components/sections/Projects.tsx`)
- Projects → Project catalog: reads (evidence: `components/sections/Projects.tsx`)
- Contact → Profile and section copy: reads (evidence: `components/sections/Contact.tsx`)
- Engineering notes → Profile and section copy: reads (evidence: `app/notes/page.tsx`)
- Navigation → Profile and section copy: reads (evidence: `components/layout/Navbar.tsx`)
- Footer → Profile and section copy: reads (evidence: `components/layout/Footer.tsx`)
- Section and UI primitives → Theme palettes: uses tokens (evidence: `README.md`)
- Contact → Visitor email client: opens draft (evidence: `components/sections/Contact.tsx`)
