# adarshpatil-07/adarshpatil-dev architecture

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

- Interactive diagram: https://gitdiagram.com/adarshpatil-07/adarshpatil-dev
- Repository: https://github.com/adarshpatil-07/adarshpatil-dev

## Overview

This is a server-rendered personal portfolio and project archive. Visitors enter through the home route to browse profile, skills, project, open-source, article, timeline, and contact sections; a separate projects route filters the full project list. Content is centralized in typed portfolio data, while components render it. Contact submission and GitHub contribution history use external services, and the site also provides theme switching and visitor-count display. The route composition and sampled integrations are visible; some component internals are represented only by the source index.

Main entry points: [`src/routes/index.tsx`](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/index.tsx) (Home route), [`src/data/portfolio.ts`](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/data/portfolio.ts) (Portfolio data), [`src/routes/projects.tsx`](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/projects.tsx) (Projects route), [`src/components/portfolio/Contact.tsx`](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Contact.tsx) (Contact section)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["Routing and shell"]
  node_root["Root shell<br/>[__root.tsx]"]
  node_home["Home route<br/>[index.tsx]"]
  node_projects_route["Projects route<br/>[projects.tsx]"]
end

subgraph group_content["Portfolio content"]
  node_portfolio_data["Portfolio data<br/>[portfolio.ts]"]
  node_hero["Hero and profile<br/>[Hero.tsx]"]
  node_about_skills["About and skills<br/>[Skills.tsx]"]
  node_github_calendar["Contribution calendar<br/>[GitHubCalendar.tsx]"]
  node_project_showcase["Project showcase<br/>[Projects.tsx]"]
  node_opensource["Open-source work<br/>[OpenSource.tsx]"]
  node_articles["Articles<br/>[Articles.tsx]"]
  node_timeline["Experience timeline<br/>[Timeline.tsx]"]
  node_archive_cards["Filtered project cards"]
end

subgraph group_interaction["Visitor interactions"]
  node_contact["Contact section<br/>[Contact.tsx]"]
  node_header["Navigation header<br/>[Header.tsx]"]
  node_theme["Theme toggle<br/>[ThemeToggle.tsx]"]
  node_visitor_count["Visitor count<br/>[VisitorCount.tsx]"]
end

subgraph group_integrations["External integrations"]
  node_github_api["GitHub contributions API"]
  node_web3forms["Web3Forms"]
  node_visitor_service["Visitor count service"]
end

node_visitor(("Site visitor"))

node_visitor -->|"opens site"| node_root
node_root -->|"routes home"| node_home
node_root -->|"routes archive"| node_projects_route
node_home -->|"renders"| node_header
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_about_skills
node_home -->|"renders"| node_github_calendar
node_home -->|"renders"| node_project_showcase
node_home -->|"renders"| node_opensource
node_home -->|"renders"| node_articles
node_home -->|"renders"| node_timeline
node_home -->|"renders"| node_contact
node_hero -->|"reads profile"| node_portfolio_data
node_about_skills -->|"reads content"| node_portfolio_data
node_project_showcase -->|"reads projects"| node_portfolio_data
node_opensource -->|"reads contributions"| node_portfolio_data
node_articles -->|"reads articles"| node_portfolio_data
node_timeline -->|"reads timeline"| node_portfolio_data
node_contact -->|"reads contact data"| node_portfolio_data
node_contact -->|"submits form"| node_web3forms
node_github_calendar -->|"fetches contributions"| node_github_api
node_contact -->|"renders counter"| node_visitor_count
node_visitor_count -.->|"gets count"| node_visitor_service
node_header -->|"renders toggle"| node_theme
node_projects_route -->|"filters projects"| node_portfolio_data
node_projects_route -->|"renders cards"| node_archive_cards
node_projects_route -->|"renders"| node_header

click node_root "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/__root.tsx"
click node_home "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/index.tsx"
click node_projects_route "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/projects.tsx"
click node_portfolio_data "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/data/portfolio.ts"
click node_hero "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Hero.tsx"
click node_about_skills "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Skills.tsx"
click node_github_calendar "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/GitHubCalendar.tsx"
click node_project_showcase "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Projects.tsx"
click node_opensource "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/OpenSource.tsx"
click node_articles "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Articles.tsx"
click node_timeline "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Timeline.tsx"
click node_contact "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Contact.tsx"
click node_header "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Header.tsx"
click node_theme "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/ThemeToggle.tsx"
click node_visitor_count "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/VisitorCount.tsx"
click node_archive_cards "https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/CompactProjectCard.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_root,node_home,node_projects_route toneBlue
class node_portfolio_data,node_hero,node_about_skills,node_github_calendar,node_project_showcase,node_opensource,node_articles,node_timeline,node_archive_cards toneAmber
class node_contact,node_header,node_theme,node_visitor_count toneMint
class node_github_api,node_web3forms,node_visitor_service toneRose
class node_visitor toneIndigo
```

## Components

### Routing and shell

- [Root shell](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/__root.tsx): `src/routes/__root.tsx`
- [Home route](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [Projects route](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/routes/projects.tsx): `src/routes/projects.tsx`

### Portfolio content

- [Portfolio data](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/data/portfolio.ts): `src/data/portfolio.ts`
- [Hero and profile](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Hero.tsx): `src/components/portfolio/Hero.tsx`
- [About and skills](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Skills.tsx): `src/components/portfolio/Skills.tsx`
- [Contribution calendar](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/GitHubCalendar.tsx): `src/components/portfolio/GitHubCalendar.tsx`
- [Project showcase](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Projects.tsx): `src/components/portfolio/Projects.tsx`
- [Open-source work](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/OpenSource.tsx): `src/components/portfolio/OpenSource.tsx`
- [Articles](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Articles.tsx): `src/components/portfolio/Articles.tsx`
- [Experience timeline](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Timeline.tsx): `src/components/portfolio/Timeline.tsx`
- [Filtered project cards](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/CompactProjectCard.tsx): `src/components/portfolio/CompactProjectCard.tsx`

### Visitor interactions

- [Contact section](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Contact.tsx): `src/components/portfolio/Contact.tsx`
- [Navigation header](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/Header.tsx): `src/components/portfolio/Header.tsx`
- [Theme toggle](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/ThemeToggle.tsx): `src/components/portfolio/ThemeToggle.tsx`
- [Visitor count](https://github.com/adarshpatil-07/adarshpatil-dev/blob/main/src/components/portfolio/VisitorCount.tsx): `src/components/portfolio/VisitorCount.tsx`

### External integrations

- **GitHub contributions API**
- **Web3Forms**
- **Visitor count service**

### Other components

- **Site visitor**

## Connections

- Site visitor → Root shell: opens site (evidence: `README.md`)
- Root shell → Home route: routes home (evidence: `src/routeTree.gen.ts`)
- Root shell → Projects route: routes archive (evidence: `src/routeTree.gen.ts`)
- Home route → Navigation header: renders (evidence: `src/routes/index.tsx`)
- Home route → Hero and profile: renders (evidence: `src/routes/index.tsx`)
- Home route → About and skills: renders (evidence: `src/routes/index.tsx`)
- Home route → Contribution calendar: renders (evidence: `src/routes/index.tsx`)
- Home route → Project showcase: renders (evidence: `src/routes/index.tsx`)
- Home route → Open-source work: renders (evidence: `src/routes/index.tsx`)
- Home route → Articles: renders (evidence: `src/routes/index.tsx`)
- Home route → Experience timeline: renders (evidence: `src/routes/index.tsx`)
- Home route → Contact section: renders (evidence: `src/routes/index.tsx`)
- Hero and profile → Portfolio data: reads profile (evidence: `src/components/portfolio/Hero.tsx`)
- About and skills → Portfolio data: reads content (evidence: `src/components/portfolio/Skills.tsx`)
- Project showcase → Portfolio data: reads projects (evidence: `src/components/portfolio/Projects.tsx`)
- Open-source work → Portfolio data: reads contributions (evidence: `src/components/portfolio/OpenSource.tsx`)
- Articles → Portfolio data: reads articles (evidence: `src/components/portfolio/Articles.tsx`)
- Experience timeline → Portfolio data: reads timeline (evidence: `src/components/portfolio/Timeline.tsx`)
- Contact section → Portfolio data: reads contact data (evidence: `src/components/portfolio/Contact.tsx`)
- Contact section → Web3Forms: submits form (evidence: `src/components/portfolio/Contact.tsx`)
- Contribution calendar → GitHub contributions API: fetches contributions (evidence: `src/components/portfolio/GitHubCalendar.tsx`)
- Contact section → Visitor count: renders counter (evidence: `src/components/portfolio/Contact.tsx`)
- Visitor count → Visitor count service: gets count
- Navigation header → Theme toggle: renders toggle (evidence: `src/components/portfolio/Header.tsx`)
- Projects route → Portfolio data: filters projects (evidence: `src/routes/projects.tsx`)
- Projects route → Filtered project cards: renders cards (evidence: `src/routes/projects.tsx`)
- Projects route → Navigation header: renders (evidence: `src/routes/projects.tsx`)
