# suyog-bhandarii/dev-portfolio architecture

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

- Interactive diagram: https://gitdiagram.com/suyog-bhandarii/dev-portfolio
- Repository: https://github.com/suyog-bhandarii/dev-portfolio

## Overview

This Django portfolio serves a single-page personal showcase: a visitor requests the home page, Django routes the request to the portfolio view, and the view renders owner, project, skills, and contact-form data into a template. A valid contact submission is sent through Django’s configured email backend before the visitor is redirected. The README also describes responsive styling, theme, navigation, and animation features; the template and CSS were not sampled, so their exact wiring cannot be confirmed.

Main entry points: [`portfolio/views.py`](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/views.py) (Home view), [`config/urls.py`](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/config/urls.py) (Project routes), [`portfolio/urls.py`](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/urls.py) (Portfolio routes), [`templates/portfolio/home.html`](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/templates/portfolio/home.html) (Home template)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry"]
  node_django_routes["Project routes<br/>[urls.py]"]
  node_app_routes["Portfolio routes<br/>[urls.py]"]
end

subgraph group_portfolio["Portfolio content"]
  node_home_view["Home view<br/>[views.py]"]
  node_showcase_data["Showcase data<br/>[views.py]"]
  node_home_template["Home template<br/>[home.html]"]
end

subgraph group_contact["Contact delivery"]
  node_contact_form["Contact form<br/>[forms.py]"]
  node_email_backend["Email backend"]
end

subgraph group_client["Browser experience"]
  node_browser(("Browser"))
  node_theme_script["Theme and UI<br/>[main.js]"]
  node_styles["Site styles<br/>[style.css]"]
end

node_visitor(("Visitor"))

node_visitor -->|"visits"| node_browser
node_browser -->|"HTTP request"| node_django_routes
node_django_routes -->|"includes routes"| node_app_routes
node_app_routes -->|"dispatches"| node_home_view
node_home_view -->|"validates POST"| node_contact_form
node_home_view -->|"provides context"| node_showcase_data
node_home_view -->|"renders"| node_home_template
node_home_view -->|"sends message"| node_email_backend
node_home_template -->|"renders page"| node_browser
node_browser -.->|"runs UI behavior"| node_theme_script
node_browser -.->|"applies styling"| node_styles

click node_django_routes "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/config/urls.py"
click node_app_routes "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/urls.py"
click node_home_view "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/views.py"
click node_showcase_data "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/views.py"
click node_contact_form "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/forms.py"
click node_home_template "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/templates/portfolio/home.html"
click node_theme_script "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/static/js/main.js"
click node_styles "https://github.com/suyog-bhandarii/dev-portfolio/blob/main/static/css/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_django_routes,node_app_routes toneBlue
class node_home_view,node_showcase_data,node_home_template toneAmber
class node_contact_form,node_email_backend toneMint
class node_browser,node_theme_script,node_styles toneRose
class node_visitor toneIndigo
```

## Components

### Web entry

- [Project routes](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/config/urls.py): `config/urls.py`
- [Portfolio routes](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/urls.py): `portfolio/urls.py`

### Portfolio content

- [Home view](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/views.py): `portfolio/views.py`
- [Showcase data](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/views.py): `portfolio/views.py`
- [Home template](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/templates/portfolio/home.html): `templates/portfolio/home.html`

### Contact delivery

- [Contact form](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/portfolio/forms.py): `portfolio/forms.py`
- **Email backend**

### Browser experience

- **Browser**
- [Theme and UI](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/static/js/main.js): `static/js/main.js`
- [Site styles](https://github.com/suyog-bhandarii/dev-portfolio/blob/main/static/css/style.css): `static/css/style.css`

### Other components

- **Visitor**

## Connections

- Visitor → Browser: visits
- Browser → Project routes: HTTP request
- Project routes → Portfolio routes: includes routes
- Portfolio routes → Home view: dispatches
- Home view → Contact form: validates POST
- Home view → Showcase data: provides context
- Home view → Home template: renders
- Home view → Email backend: sends message
- Home template → Browser: renders page
- Browser → Theme and UI: runs UI behavior
- Browser → Site styles: applies styling
