# akshataggarwal14/portfolio architecture

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

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

## Overview

This is an Astro static personal portfolio: visitors browse profile/resume information, project entries, and technical blog posts. Its main content workflow is Markdown collections rendered as listing and detail pages; additional outputs include RSS, Open Graph images, and competitive-programming material. The graph preserves these documented product areas, but several page implementations were not sampled, so some rendering and data-access links are omitted rather than assumed.

Main entry points: [`src/content/posts`](https://github.com/akshataggarwal14/portfolio/tree/main/src/content/posts) (Blog posts), [`src/data/site.ts`](https://github.com/akshataggarwal14/portfolio/blob/main/src/data/site.ts) (Profile and resume), [`src/content/projects`](https://github.com/akshataggarwal14/portfolio/tree/main/src/content/projects) (Project entries), [`src/pages/rss.xml.ts`](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/rss.xml.ts) (RSS feed)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pages["Portfolio pages"]
  node_home["Home page<br/>[index.astro]"]
  node_about["About page<br/>[about.astro]"]
  node_contact["Contact page<br/>[contact.astro]"]
  node_projects_index["Projects listing<br/>[projects.astro]"]
  node_project_detail["Project detail<br/>[&#91;slug&#93;.astro]"]
  node_blog_index["Blog listing<br/>[index.astro]"]
  node_blog_detail["Blog detail<br/>[&#91;id&#93;.astro]"]
  node_not_found["Not found<br/>[404.astro]"]
end

subgraph group_content["Content collections"]
  node_post_collection["Blog posts"]
  node_project_collection["Project entries"]
  node_content_schema["Content schemas<br/>[content.config.ts]"]
end

subgraph group_shared["Shared data and layout"]
  node_site_data["Profile and resume<br/>[site.ts]"]
  node_cp_data["CP statistics<br/>[cp.json]"]
  node_layout["Site layout<br/>[Layout.astro]"]
  node_components["UI components"]
end

subgraph group_outputs["Feeds and metadata"]
  node_rss["RSS feed<br/>[rss.xml.ts]"]
  node_site_og["Site image<br/>[og.png.ts]"]
  node_blog_og["Blog images<br/>[&#91;id&#93;.png.ts]"]
  node_project_og["Project images<br/>[&#91;slug&#93;.png.ts]"]
  node_cp_pages["CP notes pages"]
end

node_visitor(("Visitor"))
node_feed_reader(("Feed reader"))

node_visitor -->|"visits"| node_home
node_visitor -->|"visits"| node_about
node_visitor -->|"visits"| node_contact
node_visitor -->|"visits"| node_projects_index
node_visitor -->|"visits"| node_project_detail
node_visitor -->|"visits"| node_blog_index
node_visitor -->|"visits"| node_blog_detail
node_visitor -->|"reads"| node_cp_pages
node_projects_index -->|"lists"| node_project_collection
node_project_detail -->|"loads entry"| node_project_collection
node_blog_index -->|"lists"| node_post_collection
node_blog_detail -->|"loads entry"| node_post_collection
node_content_schema -->|"validates"| node_post_collection
node_content_schema -->|"validates"| node_project_collection
node_home -->|"reads"| node_site_data
node_about -->|"reads"| node_site_data
node_contact -->|"reads"| node_site_data
node_rss -->|"lists"| node_post_collection
node_rss -->|"reads"| node_site_data
node_feed_reader -->|"fetches"| node_rss
node_site_og -->|"reads"| node_site_data
node_blog_og -->|"reads"| node_post_collection
node_project_og -->|"reads"| node_project_collection

click node_home "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/index.astro"
click node_about "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/about.astro"
click node_contact "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/contact.astro"
click node_projects_index "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/projects.astro"
click node_project_detail "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/projects/%5Bslug%5D.astro"
click node_blog_index "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/blogs/index.astro"
click node_blog_detail "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/blogs/%5Bid%5D.astro"
click node_not_found "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/404.astro"
click node_post_collection "https://github.com/akshataggarwal14/portfolio/tree/main/src/content/posts"
click node_project_collection "https://github.com/akshataggarwal14/portfolio/tree/main/src/content/projects"
click node_content_schema "https://github.com/akshataggarwal14/portfolio/blob/main/src/content.config.ts"
click node_site_data "https://github.com/akshataggarwal14/portfolio/blob/main/src/data/site.ts"
click node_cp_data "https://github.com/akshataggarwal14/portfolio/blob/main/src/data/cp.json"
click node_layout "https://github.com/akshataggarwal14/portfolio/blob/main/src/layouts/Layout.astro"
click node_components "https://github.com/akshataggarwal14/portfolio/tree/main/src/components"
click node_rss "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/rss.xml.ts"
click node_site_og "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/og.png.ts"
click node_blog_og "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/blogs/og/%5Bid%5D.png.ts"
click node_project_og "https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/projects/og/%5Bslug%5D.png.ts"
click node_cp_pages "https://github.com/akshataggarwal14/portfolio/tree/main/public/cp"

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_about,node_contact,node_projects_index,node_project_detail,node_blog_index,node_blog_detail,node_not_found toneBlue
class node_post_collection,node_project_collection,node_content_schema toneAmber
class node_site_data,node_cp_data,node_layout,node_components toneMint
class node_rss,node_site_og,node_blog_og,node_project_og,node_cp_pages toneRose
class node_visitor,node_feed_reader toneIndigo
```

## Components

### Portfolio pages

- [Home page](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/index.astro): `src/pages/index.astro`
- [About page](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/about.astro): `src/pages/about.astro`
- [Contact page](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/contact.astro): `src/pages/contact.astro`
- [Projects listing](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/projects.astro): `src/pages/projects.astro`
- [Project detail](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/projects/%5Bslug%5D.astro): `src/pages/projects/[slug].astro`
- [Blog listing](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/blogs/index.astro): `src/pages/blogs/index.astro`
- [Blog detail](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/blogs/%5Bid%5D.astro): `src/pages/blogs/[id].astro`
- [Not found](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/404.astro): `src/pages/404.astro`

### Content collections

- [Blog posts](https://github.com/akshataggarwal14/portfolio/tree/main/src/content/posts): `src/content/posts`
- [Project entries](https://github.com/akshataggarwal14/portfolio/tree/main/src/content/projects): `src/content/projects`
- [Content schemas](https://github.com/akshataggarwal14/portfolio/blob/main/src/content.config.ts): `src/content.config.ts`

### Shared data and layout

- [Profile and resume](https://github.com/akshataggarwal14/portfolio/blob/main/src/data/site.ts): `src/data/site.ts`
- [CP statistics](https://github.com/akshataggarwal14/portfolio/blob/main/src/data/cp.json): `src/data/cp.json`
- [Site layout](https://github.com/akshataggarwal14/portfolio/blob/main/src/layouts/Layout.astro): `src/layouts/Layout.astro`
- [UI components](https://github.com/akshataggarwal14/portfolio/tree/main/src/components): `src/components`

### Feeds and metadata

- [RSS feed](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/rss.xml.ts): `src/pages/rss.xml.ts`
- [Site image](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/og.png.ts): `src/pages/og.png.ts`
- [Blog images](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/blogs/og/%5Bid%5D.png.ts): `src/pages/blogs/og/[id].png.ts`
- [Project images](https://github.com/akshataggarwal14/portfolio/blob/main/src/pages/projects/og/%5Bslug%5D.png.ts): `src/pages/projects/og/[slug].png.ts`
- [CP notes pages](https://github.com/akshataggarwal14/portfolio/tree/main/public/cp): `public/cp`

### Other components

- **Visitor**
- **Feed reader**

## Connections

- Visitor → Home page: visits
- Visitor → About page: visits
- Visitor → Contact page: visits
- Visitor → Projects listing: visits
- Visitor → Project detail: visits
- Visitor → Blog listing: visits
- Visitor → Blog detail: visits
- Visitor → CP notes pages: reads
- Projects listing → Project entries: lists
- Project detail → Project entries: loads entry
- Blog listing → Blog posts: lists
- Blog detail → Blog posts: loads entry
- Content schemas → Blog posts: validates
- Content schemas → Project entries: validates
- Home page → Profile and resume: reads
- About page → Profile and resume: reads
- Contact page → Profile and resume: reads
- RSS feed → Blog posts: lists
- RSS feed → Profile and resume: reads
- Feed reader → RSS feed: fetches
- Site image → Profile and resume: reads
- Blog images → Blog posts: reads
- Project images → Project entries: reads
