# sushant-didwagh/personal-portfolio-website architecture

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

- Interactive diagram: https://gitdiagram.com/sushant-didwagh/personal-portfolio-website
- Repository: https://github.com/sushant-didwagh/personal-portfolio-website

## Overview

This is a personal portfolio site presenting a developer’s profile, work, research, and contact options. A visitor opens the home page, browses its ordered portfolio sections and interactive features, and can follow contact links or submit a message. The home-page composition and several section-to-data relationships are visible in the supplied excerpts or source index; some section internals and the chatbot’s API wiring were not sampled, so those links are omitted or marked unverified.

Main entry points: [`src/app/page.tsx`](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/app/page.tsx) (Home Page), [`src/components/sections/ResearchSection.tsx`](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ResearchSection.tsx) (Research), [`src/components/layout/Navbar.tsx`](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/Navbar.tsx) (Navigation), [`src/components/layout/Footer.tsx`](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/Footer.tsx) (Footer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Site Entry"]
  node_home["Home Page<br/>[page.tsx]"]
  node_navbar["Navigation<br/>[Navbar.tsx]"]
  node_footer["Footer<br/>[Footer.tsx]"]
end

subgraph group_portfolio["Portfolio Content"]
  node_hero["Hero Profile<br/>[HeroSection.tsx]"]
  node_about["About<br/>[AboutSection.tsx]"]
  node_education["Education"]
  node_experience["Experience"]
  node_skills["Skills<br/>[SkillsSection.tsx]"]
  node_projects["Projects"]
  node_research["Research"]
  node_certificates["Certificates"]
  node_coursework["Coursework"]
  node_achievements["Achievements"]
  node_whyhire["Why Hire Me"]
  node_github["GitHub Work<br/>[GitHubSection.tsx]"]
  node_contact["Contact Form<br/>[ContactSection.tsx]"]
end

subgraph group_interaction["Interactive Features"]
  node_chatbot["Chat Assistant<br/>[ChatBot.tsx]"]
  node_command["Command Palette<br/>[CommandPalette.tsx]"]
  node_visualfeatures["Visual Controls<br/>[page.tsx]"]
  node_chatapi["Chat Endpoint<br/>[route.ts]"]
end

subgraph group_content["Portfolio Data"]
  node_researchdata["Research Data<br/>[research.ts]"]
  node_socialdata["Social Profile Data<br/>[social.ts]"]
  node_navigationdata["Navigation Data<br/>[navigation.ts]"]
  node_portfoliodata["Section Data"]
end

subgraph group_presentation["Presentation Layer"]
  node_researchgraph["Research Graph<br/>[ResearchGraph.tsx]"]
  node_sectionwrapper["Section Wrapper<br/>[SectionWrapper.tsx]"]
  node_animation["Animation Variants"]
end

node_visitor(("Visitor"))
node_emailservice["EmailJS Service"]

node_visitor -->|"opens"| node_home
node_home -->|"renders"| node_navbar
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_about
node_home -->|"renders"| node_education
node_home -->|"renders"| node_experience
node_home -->|"renders"| node_skills
node_home -->|"renders"| node_projects
node_home -->|"renders"| node_research
node_home -->|"renders"| node_certificates
node_home -->|"renders"| node_coursework
node_home -->|"renders"| node_achievements
node_home -->|"renders"| node_whyhire
node_home -->|"renders"| node_github
node_home -->|"renders"| node_contact
node_home -->|"renders"| node_footer
node_home -->|"renders"| node_chatbot
node_home -->|"renders"| node_command
node_home -->|"renders"| node_visualfeatures
node_research -->|"reads"| node_researchdata
node_research -->|"renders"| node_researchgraph
node_research -->|"uses"| node_sectionwrapper
node_sectionwrapper -->|"uses"| node_animation
node_contact -->|"sends message"| node_emailservice
node_navbar -->|"reads"| node_navigationdata
node_navbar -->|"reads"| node_socialdata
node_footer -->|"reads"| node_navigationdata
node_footer -->|"reads"| node_socialdata
node_chatbot -.->|"may request"| node_chatapi

click node_home "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/app/page.tsx"
click node_navbar "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/Navbar.tsx"
click node_footer "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/Footer.tsx"
click node_hero "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/HeroSection.tsx"
click node_about "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/AboutSection.tsx"
click node_education "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/EducationSection.tsx"
click node_experience "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ExperienceSection.tsx"
click node_skills "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/SkillsSection.tsx"
click node_projects "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ProjectsSection.tsx"
click node_research "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ResearchSection.tsx"
click node_certificates "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/CertificatesSection.tsx"
click node_coursework "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/CourseworkSection.tsx"
click node_achievements "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/AchievementsSection.tsx"
click node_whyhire "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/WhyHireMeSection.tsx"
click node_github "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/GitHubSection.tsx"
click node_contact "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ContactSection.tsx"
click node_chatbot "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/features/ChatBot.tsx"
click node_command "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/features/CommandPalette.tsx"
click node_visualfeatures "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/app/page.tsx"
click node_chatapi "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/app/api/chat/route.ts"
click node_researchgraph "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/canvas/ResearchGraph.tsx"
click node_sectionwrapper "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/SectionWrapper.tsx"
click node_animation "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/lib/animationVariants.ts"
click node_researchdata "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/data/research.ts"
click node_socialdata "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/data/social.ts"
click node_navigationdata "https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/data/navigation.ts"
click node_portfoliodata "https://github.com/sushant-didwagh/personal-portfolio-website/tree/main/src/data"

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_navbar,node_footer toneBlue
class node_hero,node_about,node_education,node_experience,node_skills,node_projects,node_research,node_certificates,node_coursework,node_achievements,node_whyhire,node_github,node_contact toneAmber
class node_chatbot,node_command,node_visualfeatures,node_chatapi toneMint
class node_researchdata,node_socialdata,node_navigationdata,node_portfoliodata toneRose
class node_researchgraph,node_sectionwrapper,node_animation,node_visitor,node_emailservice toneIndigo
```

## Components

### Site Entry

- [Home Page](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/app/page.tsx): `src/app/page.tsx`
- [Navigation](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/Navbar.tsx): `src/components/layout/Navbar.tsx`
- [Footer](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/Footer.tsx): `src/components/layout/Footer.tsx`

### Portfolio Content

- [Hero Profile](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/HeroSection.tsx): `src/components/sections/HeroSection.tsx`
- [About](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/AboutSection.tsx): `src/components/sections/AboutSection.tsx`
- [Education](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/EducationSection.tsx): `src/components/sections/EducationSection.tsx`
- [Experience](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ExperienceSection.tsx): `src/components/sections/ExperienceSection.tsx`
- [Skills](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/SkillsSection.tsx): `src/components/sections/SkillsSection.tsx`
- [Projects](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ProjectsSection.tsx): `src/components/sections/ProjectsSection.tsx`
- [Research](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ResearchSection.tsx): `src/components/sections/ResearchSection.tsx`
- [Certificates](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/CertificatesSection.tsx): `src/components/sections/CertificatesSection.tsx`
- [Coursework](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/CourseworkSection.tsx): `src/components/sections/CourseworkSection.tsx`
- [Achievements](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/AchievementsSection.tsx): `src/components/sections/AchievementsSection.tsx`
- [Why Hire Me](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/WhyHireMeSection.tsx): `src/components/sections/WhyHireMeSection.tsx`
- [GitHub Work](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/GitHubSection.tsx): `src/components/sections/GitHubSection.tsx`
- [Contact Form](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/sections/ContactSection.tsx): `src/components/sections/ContactSection.tsx`

### Interactive Features

- [Chat Assistant](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/features/ChatBot.tsx): `src/components/features/ChatBot.tsx`
- [Command Palette](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/features/CommandPalette.tsx): `src/components/features/CommandPalette.tsx`
- [Visual Controls](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/app/page.tsx): `src/app/page.tsx`
- [Chat Endpoint](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/app/api/chat/route.ts): `src/app/api/chat/route.ts`

### Portfolio Data

- [Research Data](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/data/research.ts): `src/data/research.ts`
- [Social Profile Data](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/data/social.ts): `src/data/social.ts`
- [Navigation Data](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/data/navigation.ts): `src/data/navigation.ts`
- [Section Data](https://github.com/sushant-didwagh/personal-portfolio-website/tree/main/src/data): `src/data`

### Presentation Layer

- [Research Graph](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/canvas/ResearchGraph.tsx): `src/components/canvas/ResearchGraph.tsx`
- [Section Wrapper](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/components/layout/SectionWrapper.tsx): `src/components/layout/SectionWrapper.tsx`
- [Animation Variants](https://github.com/sushant-didwagh/personal-portfolio-website/blob/main/src/lib/animationVariants.ts): `src/lib/animationVariants.ts`

### Other components

- **Visitor**
- **EmailJS Service**

## Connections

- Visitor → Home Page: opens (evidence: `src/app/page.tsx`)
- Home Page → Navigation: renders (evidence: `src/app/page.tsx`)
- Home Page → Hero Profile: renders (evidence: `src/app/page.tsx`)
- Home Page → About: renders (evidence: `src/app/page.tsx`)
- Home Page → Education: renders (evidence: `src/app/page.tsx`)
- Home Page → Experience: renders (evidence: `src/app/page.tsx`)
- Home Page → Skills: renders (evidence: `src/app/page.tsx`)
- Home Page → Projects: renders (evidence: `src/app/page.tsx`)
- Home Page → Research: renders (evidence: `src/app/page.tsx`)
- Home Page → Certificates: renders (evidence: `src/app/page.tsx`)
- Home Page → Coursework: renders (evidence: `src/app/page.tsx`)
- Home Page → Achievements: renders (evidence: `src/app/page.tsx`)
- Home Page → Why Hire Me: renders (evidence: `src/app/page.tsx`)
- Home Page → GitHub Work: renders (evidence: `src/app/page.tsx`)
- Home Page → Contact Form: renders (evidence: `src/app/page.tsx`)
- Home Page → Footer: renders (evidence: `src/app/page.tsx`)
- Home Page → Chat Assistant: renders (evidence: `src/app/page.tsx`)
- Home Page → Command Palette: renders (evidence: `src/app/page.tsx`)
- Home Page → Visual Controls: renders (evidence: `src/app/page.tsx`)
- Research → Research Data: reads (evidence: `src/components/sections/ResearchSection.tsx`)
- Research → Research Graph: renders (evidence: `src/components/sections/ResearchSection.tsx`)
- Research → Section Wrapper: uses (evidence: `src/components/sections/ResearchSection.tsx`)
- Section Wrapper → Animation Variants: uses (evidence: `src/components/layout/SectionWrapper.tsx`)
- Contact Form → EmailJS Service: sends message (evidence: `src/components/sections/ContactSection.tsx`)
- Navigation → Navigation Data: reads (evidence: `src/components/layout/Navbar.tsx`)
- Navigation → Social Profile Data: reads (evidence: `src/components/layout/Navbar.tsx`)
- Footer → Navigation Data: reads (evidence: `src/components/layout/Footer.tsx`)
- Footer → Social Profile Data: reads (evidence: `src/components/layout/Footer.tsx`)
- Chat Assistant → Chat Endpoint: may request
