# srikanth-mohankumar/myportfolio-v2 architecture

> Architecture diagram of the GitHub repository srikanth-mohankumar/myportfolio-v2, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-08-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/srikanth-mohankumar/myportfolio-v2
- Repository: https://github.com/srikanth-mohankumar/myportfolio-v2

## Overview

#### Purpose and Delivery Model
This repository is a static personal portfolio/CV site, published as pre-rendered HTML with local assets. There is no application backend, build source, package manifest, or server-side runtime visible. Primary user entry points are `/index.html`, `/cv/index.html`, and `/news/index.html`.

#### Page-Level Entry Points
- The main portfolio landing page is `index.html`.
- CV content is exposed as a separate static page at `cv/index.html`.
- News or updates are exposed at `news/index.html`.
- Navigation and shared browser behavior are expected to link these documents and load common assets directly from the repository.

#### Presentation Layer
CSS is organized as static site-wide styling plus syntax-highlighting themes:
- `assets/css/main.css` is the central visual stylesheet and likely governs layout, responsive behavior, typography, and page components.
- `assets/css/jekyll-pygments-themes-github.css` and `assets/css/jekyll-pygments-themes-native.css` support highlighted code/content styling.
- Fonts, imagery, and webfont resources are delivered locally from `assets/fonts`, `assets/img`, and `assets/webfonts`.

#### Browser Interaction Modules
Client-side behavior is decomposed into small JavaScript files loaded by pages:
- `assets/js/common.js` provides shared site behavior.
- `assets/js/theme.js` and `assets/js/dark_mode.js` manage visual theme selection and dark-mode behavior.
- `assets/js/copy_code.js` supports copying displayed code blocks.
- `assets/js/masonry.js`, `assets/js/thumb.js`, and `assets/js/zoom.js` support visual content layouts and image interactions.
- `assets/js/no_defer.js` likely handles scripts or behaviors that must run before deferred content initialization.

The runtime boundary is the browser: these modules manipulate static DOM content and locally hosted assets rather than calling an evident API.

#### Static Asset and Document Boundary
The site’s content documents reference local static resources. `assets/` contains production-facing CSS, JavaScript, fonts, and images; `reference-assets/` holds source/reference materials that may be linked for download but are not necessarily rendered site content. Important downloadable artifacts include `reference-assets/Profile.pdf` and `reference-assets/Srikanth-Resume.pdf`.

#### External/Hosting Integration
`cdn-cgi/scripts/5c5dd728/cloudflare-static` indicates Cloudflare-provided static runtime artifacts, suggesting deployment behind Cloudflare or preservation of a Cloudflare-exported site. No external database, authentication provider, API service, or application infrastructure is represented in the tree.

#### Maintenance Implications
Changes to page content occur directly in `index.html`, `cv/index.html`, or `news/index.html`. Shared presentation and interaction changes should be made in `assets/css/main.css` and the relevant module under `assets/js/`. Preserve relative asset paths and treat `reference-assets/` separately from browser-delivered UI assets unless a page explicitly links those files.

Main entry points: [`index.html`](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/index.html) (Portfolio landing), [`assets/css/main.css`](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/css/main.css) (Site stylesheet), [`cv/index.html`](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/cv/index.html) (CV), [`assets/fonts`](https://github.com/srikanth-mohankumar/myportfolio-v2/tree/main/assets/fonts) (UI media and fonts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pages["Static pages"]
  node_home["Portfolio landing<br/>HTML page<br/>[index.html]"]
  node_cv["CV<br/>HTML page<br/>[index.html]"]
  node_news["News<br/>HTML page<br/>[index.html]"]
end

subgraph group_presentation["Presentation"]
  node_main_css["Site stylesheet<br/>CSS<br/>[main.css]"]
  node_highlight_css["Code highlight themes<br/>CSS themes"]
end

subgraph group_interaction["Browser interaction"]
  node_common_js["Shared behavior<br/>browser JS<br/>[common.js]"]
  node_theme_js["Theme controls<br/>browser JS<br/>[theme.js]"]
  node_content_js["Content interactions<br/>browser JS<br/>[copy_code.js]"]
  node_early_js["Early initialization<br/>browser JS<br/>[no_defer.js]"]
end

subgraph group_assets["Static resources"]
  node_ui_assets["UI media and fonts<br/>local assets"]
  node_reference_assets["Downloadable references<br/>reference files"]
  node_cloudflare["Cloudflare static artifacts<br/>hosting runtime"]
end

node_home -->|"navigates to"| node_cv
node_home -->|"navigates to"| node_news
node_home -->|"loads"| node_main_css
node_cv -->|"loads"| node_main_css
node_news -->|"loads"| node_main_css
node_home -->|"styles code"| node_highlight_css
node_home -->|"loads"| node_common_js
node_home -->|"loads"| node_theme_js
node_home -->|"loads"| node_content_js
node_home -->|"loads"| node_early_js
node_common_js -->|"manipulates"| node_ui_assets
node_theme_js -->|"updates theme"| node_main_css
node_content_js -->|"enhances media"| node_ui_assets
node_home -->|"serves locally"| node_ui_assets
node_cv -.->|"may link downloads"| node_reference_assets
node_home -.->|"runs behind"| node_cloudflare

click node_home "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/index.html"
click node_cv "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/cv/index.html"
click node_news "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/news/index.html"
click node_main_css "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/css/main.css"
click node_highlight_css "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/css/jekyll-pygments-themes-github.css"
click node_common_js "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/common.js"
click node_theme_js "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/theme.js"
click node_content_js "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/copy_code.js"
click node_early_js "https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/no_defer.js"
click node_ui_assets "https://github.com/srikanth-mohankumar/myportfolio-v2/tree/main/assets/fonts"
click node_cloudflare "https://github.com/srikanth-mohankumar/myportfolio-v2/tree/main/cdn-cgi/scripts/5c5dd728/cloudflare-static"

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_cv,node_news toneBlue
class node_main_css,node_highlight_css toneAmber
class node_common_js,node_theme_js,node_content_js,node_early_js toneMint
class node_ui_assets,node_reference_assets,node_cloudflare toneRose
```

## Components

### Static pages

- [Portfolio landing](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/index.html): HTML page · Primary portfolio entry point. · `index.html`
- [CV](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/cv/index.html): HTML page · `cv/index.html`
- [News](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/news/index.html): HTML page · `news/index.html`

### Presentation

- [Site stylesheet](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/css/main.css): CSS · Shared layout, responsive, typography, and component styling. · `assets/css/main.css`
- [Code highlight themes](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/css/jekyll-pygments-themes-github.css): CSS themes · `assets/css/jekyll-pygments-themes-github.css`

### Browser interaction

- [Shared behavior](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/common.js): browser JS · `assets/js/common.js`
- [Theme controls](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/theme.js): browser JS · Selects and applies visual and dark-mode behavior. · `assets/js/theme.js`
- [Content interactions](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/copy_code.js): browser JS · Supports code copying, masonry layout, thumbnails, and image zoom. · `assets/js/copy_code.js`
- [Early initialization](https://github.com/srikanth-mohankumar/myportfolio-v2/blob/main/assets/js/no_defer.js): browser JS · Handles behavior that must run before deferred initialization. · `assets/js/no_defer.js`

### Static resources

- [UI media and fonts](https://github.com/srikanth-mohankumar/myportfolio-v2/tree/main/assets/fonts): local assets · Locally delivered fonts, imagery, and webfonts. · `assets/fonts`
- **Downloadable references**: reference files · Separate source or downloadable materials, including PDFs.
- [Cloudflare static artifacts](https://github.com/srikanth-mohankumar/myportfolio-v2/tree/main/cdn-cgi/scripts/5c5dd728/cloudflare-static): hosting runtime · Cloudflare-provided static artifacts preserved with the site. · `cdn-cgi/scripts/5c5dd728/cloudflare-static`

## Connections

- Portfolio landing → CV: navigates to
- Portfolio landing → News: navigates to
- Portfolio landing → Site stylesheet: loads
- CV → Site stylesheet: loads
- News → Site stylesheet: loads
- Portfolio landing → Code highlight themes: styles code
- Portfolio landing → Shared behavior: loads
- Portfolio landing → Theme controls: loads
- Portfolio landing → Content interactions: loads
- Portfolio landing → Early initialization: loads
- Shared behavior → UI media and fonts: manipulates
- Theme controls → Site stylesheet: updates theme
- Content interactions → UI media and fonts: enhances media
- Portfolio landing → UI media and fonts: serves locally
- CV → Downloadable references: may link downloads
- Portfolio landing → Cloudflare static artifacts: runs behind
