# abhijitvshinde/abhijit-portfolio architecture

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

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

## Overview

This repository is a static personal portfolio with an educational oil-leak-response game. Visitors browse portfolio pages for academic background, research, projects, publications, honors, contact details, and a résumé; on the game page, a player submits instructions and progresses through a guided prevention, detection, and mitigation scenario to a completion recap. The sampled JavaScript supports the game flow and shared navigation/scroll behavior. HTML page contents and their wiring were not sampled, so page-to-page navigation and résumé PDF embedding are not asserted.

Main entry points: [`game.js`](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js) (Scenario flow), [`game.html`](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.html) (Game page), [`index.html`](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/index.html) (Home), [`script.js`](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/script.js) (Navigation and reveals)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portfolio["Portfolio pages"]
  node_home["Home<br/>[index.html]"]
  node_academic["Academic<br/>[academic.html]"]
  node_research["Research<br/>[research.html]"]
  node_projects["Projects<br/>[projects.html]"]
  node_publications["Publications<br/>[publications.html]"]
  node_honors["Honors<br/>[honors.html]"]
  node_resume["Résumé page<br/>[resume.html]"]
  node_resume_pdf["Résumé PDF<br/>[resume.pdf]"]
  node_contact["Contact page<br/>[contact.html]"]
end

subgraph group_game["Educational game"]
  node_game_page["Game page<br/>[game.html]"]
  node_game_flow["Scenario flow<br/>[game.js]"]
  node_stage_content["Stage scenarios<br/>[game.js]"]
  node_answer_check["Answer evaluation<br/>[game.js]"]
  node_chat_ui["Chat and recap<br/>[game.js]"]
end

subgraph group_frontend["Shared frontend"]
  node_site_interactions["Navigation and reveals<br/>[script.js]"]
  node_styles["Site styling<br/>[style.css]"]
end

node_visitor(("Visitor"))
node_player(("Player"))

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_academic
node_visitor -->|"opens"| node_research
node_visitor -->|"opens"| node_projects
node_visitor -->|"opens"| node_publications
node_visitor -->|"opens"| node_honors
node_visitor -->|"opens"| node_resume
node_visitor -->|"opens"| node_contact
node_player -->|"opens"| node_game_page
node_game_page -->|"hosts"| node_game_flow
node_game_flow -->|"selects"| node_stage_content
node_game_flow -->|"evaluates via"| node_answer_check
node_player -->|"submits instructions"| node_chat_ui
node_chat_ui -->|"dispatches input"| node_game_flow
node_game_flow -->|"updates display"| node_chat_ui
node_game_page -.->|"uses"| node_site_interactions
node_home -.->|"uses"| node_site_interactions

click node_home "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/index.html"
click node_academic "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/academic.html"
click node_research "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/research.html"
click node_projects "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/projects.html"
click node_publications "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/publications.html"
click node_honors "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/honors.html"
click node_resume "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/resume.html"
click node_resume_pdf "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/resume.pdf"
click node_contact "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/contact.html"
click node_game_page "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.html"
click node_game_flow "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js"
click node_stage_content "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js"
click node_answer_check "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js"
click node_chat_ui "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js"
click node_site_interactions "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/script.js"
click node_styles "https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/style.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_academic,node_research,node_projects,node_publications,node_honors,node_resume,node_resume_pdf,node_contact toneBlue
class node_game_page,node_game_flow,node_stage_content,node_answer_check,node_chat_ui toneAmber
class node_site_interactions,node_styles toneMint
class node_visitor,node_player toneIndigo
```

## Components

### Portfolio pages

- [Home](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/index.html): `index.html`
- [Academic](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/academic.html): `academic.html`
- [Research](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/research.html): `research.html`
- [Projects](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/projects.html): `projects.html`
- [Publications](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/publications.html): `publications.html`
- [Honors](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/honors.html): `honors.html`
- [Résumé page](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/resume.html): `resume.html`
- [Résumé PDF](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/resume.pdf): `resume.pdf`
- [Contact page](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/contact.html): `contact.html`

### Educational game

- [Game page](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.html): `game.html`
- [Scenario flow](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js): `game.js`
- [Stage scenarios](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js): `game.js`
- [Answer evaluation](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js): `game.js`
- [Chat and recap](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/game.js): `game.js`

### Shared frontend

- [Navigation and reveals](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/script.js): `script.js`
- [Site styling](https://github.com/abhijitvshinde/abhijit-portfolio/blob/main/style.css): `style.css`

### Other components

- **Visitor**
- **Player**

## Connections

- Visitor → Home: opens
- Visitor → Academic: opens
- Visitor → Research: opens
- Visitor → Projects: opens
- Visitor → Publications: opens
- Visitor → Honors: opens
- Visitor → Résumé page: opens
- Visitor → Contact page: opens
- Player → Game page: opens
- Game page → Scenario flow: hosts
- Scenario flow → Stage scenarios: selects
- Scenario flow → Answer evaluation: evaluates via
- Player → Chat and recap: submits instructions
- Chat and recap → Scenario flow: dispatches input
- Scenario flow → Chat and recap: updates display
- Game page → Navigation and reveals: uses
- Home → Navigation and reveals: uses
