# adityabhairawkar/django-blog architecture

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

- Interactive diagram: https://gitdiagram.com/adityabhairawkar/django-blog
- Repository: https://github.com/adityabhairawkar/django-blog

## Overview

This is a Django blogging platform. Visitors browse featured and recent posts, filter by category, search, open slug-based articles, and comment; users can register or log in, while dashboard users manage posts, categories, and accounts. The graph separates public browsing, content and about data, and identity/dashboard management. The README documents role-based dashboards, pagination, and media uploads; their full implementation is not established by the excerpts. Edges reflect shown routing and calls; persistence is left unlinked because storage operations are not directly shown.

Main entry points: [`blogs/views.py`](https://github.com/adityabhairawkar/django-blog/blob/main/blogs/views.py) (Browse and comment), [`blog_main/urls.py`](https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/urls.py) (Site routes), [`blog_main/views.py`](https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/views.py) (Home and auth), [`dashboards/views.py`](https://github.com/adityabhairawkar/django-blog/blob/main/dashboards/views.py) (Dashboard operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public browsing"]
  node_site_routes["Site routes<br/>[urls.py]"]
  node_site_views["Home and auth<br/>[views.py]"]
  node_blog_routes["Blog routes<br/>[urls.py]"]
  node_blog_views["Browse and comment<br/>[views.py]"]
end

subgraph group_content["Content domain"]
  node_blog_data[("Posts categories comments<br/>[models.py]")]
  node_about_data[("About and social links<br/>[models.py]")]
  node_category_context["Category context"]
end

subgraph group_accounts["Accounts and management"]
  node_registration_form["Registration form<br/>[forms.py]"]
  node_dashboard_routes["Dashboard routes<br/>[urls.py]"]
  node_dashboard_views["Dashboard operations<br/>[views.py]"]
  node_dashboard_forms["Management forms<br/>[forms.py]"]
end

subgraph group_presentation["Presentation"]
  node_home_page["Home page<br/>[home.html]"]
  node_article_page["Article page<br/>[blogs.html]"]
  node_category_page["Category listing"]
  node_search_page["Search results<br/>[search.html]"]
  node_dashboard_pages["Dashboard screens"]
end

node_visitor(("Visitor"))

node_visitor -->|"requests pages"| node_site_routes
node_site_routes -->|"routes home/auth"| node_site_views
node_site_routes -->|"includes categories"| node_blog_routes
node_site_routes -->|"routes article/search"| node_blog_views
node_site_routes -->|"includes dashboard"| node_dashboard_routes
node_site_views -->|"validates registration"| node_registration_form
node_site_views -->|"queries posts"| node_blog_data
node_site_views -.->|"loads about content"| node_about_data
node_site_views -->|"renders"| node_home_page
node_blog_routes -->|"routes category"| node_blog_views
node_blog_views -->|"queries and saves"| node_blog_data
node_blog_views -->|"renders"| node_article_page
node_blog_views -->|"renders"| node_category_page
node_blog_views -->|"renders"| node_search_page
node_dashboard_routes -->|"routes operations"| node_dashboard_views
node_dashboard_views -->|"validates edits"| node_dashboard_forms
node_dashboard_views -->|"manages posts/categories"| node_blog_data
node_dashboard_views -->|"renders"| node_dashboard_pages
node_category_context -->|"loads categories"| node_blog_data

click node_site_routes "https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/urls.py"
click node_site_views "https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/views.py"
click node_registration_form "https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/forms.py"
click node_blog_routes "https://github.com/adityabhairawkar/django-blog/blob/main/blogs/urls.py"
click node_blog_views "https://github.com/adityabhairawkar/django-blog/blob/main/blogs/views.py"
click node_dashboard_routes "https://github.com/adityabhairawkar/django-blog/blob/main/dashboards/urls.py"
click node_dashboard_views "https://github.com/adityabhairawkar/django-blog/blob/main/dashboards/views.py"
click node_dashboard_forms "https://github.com/adityabhairawkar/django-blog/blob/main/dashboards/forms.py"
click node_blog_data "https://github.com/adityabhairawkar/django-blog/blob/main/blogs/models.py"
click node_about_data "https://github.com/adityabhairawkar/django-blog/blob/main/about_us/models.py"
click node_category_context "https://github.com/adityabhairawkar/django-blog/blob/main/blogs/context_processors.py"
click node_home_page "https://github.com/adityabhairawkar/django-blog/blob/main/templates/home.html"
click node_article_page "https://github.com/adityabhairawkar/django-blog/blob/main/templates/blogs.html"
click node_category_page "https://github.com/adityabhairawkar/django-blog/blob/main/templates/posts_by_category.html"
click node_search_page "https://github.com/adityabhairawkar/django-blog/blob/main/templates/search.html"
click node_dashboard_pages "https://github.com/adityabhairawkar/django-blog/tree/main/templates/dashboard"

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_site_routes,node_site_views,node_blog_routes,node_blog_views toneBlue
class node_blog_data,node_about_data,node_category_context toneAmber
class node_registration_form,node_dashboard_routes,node_dashboard_views,node_dashboard_forms toneMint
class node_home_page,node_article_page,node_category_page,node_search_page,node_dashboard_pages toneRose
class node_visitor toneIndigo
```

## Components

### Public browsing

- [Site routes](https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/urls.py): `blog_main/urls.py`
- [Home and auth](https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/views.py): `blog_main/views.py`
- [Blog routes](https://github.com/adityabhairawkar/django-blog/blob/main/blogs/urls.py): `blogs/urls.py`
- [Browse and comment](https://github.com/adityabhairawkar/django-blog/blob/main/blogs/views.py): `blogs/views.py`

### Content domain

- [Posts categories comments](https://github.com/adityabhairawkar/django-blog/blob/main/blogs/models.py): `blogs/models.py`
- [About and social links](https://github.com/adityabhairawkar/django-blog/blob/main/about_us/models.py): `about_us/models.py`
- [Category context](https://github.com/adityabhairawkar/django-blog/blob/main/blogs/context_processors.py): `blogs/context_processors.py`

### Accounts and management

- [Registration form](https://github.com/adityabhairawkar/django-blog/blob/main/blog_main/forms.py): `blog_main/forms.py`
- [Dashboard routes](https://github.com/adityabhairawkar/django-blog/blob/main/dashboards/urls.py): `dashboards/urls.py`
- [Dashboard operations](https://github.com/adityabhairawkar/django-blog/blob/main/dashboards/views.py): `dashboards/views.py`
- [Management forms](https://github.com/adityabhairawkar/django-blog/blob/main/dashboards/forms.py): `dashboards/forms.py`

### Presentation

- [Home page](https://github.com/adityabhairawkar/django-blog/blob/main/templates/home.html): `templates/home.html`
- [Article page](https://github.com/adityabhairawkar/django-blog/blob/main/templates/blogs.html): `templates/blogs.html`
- [Category listing](https://github.com/adityabhairawkar/django-blog/blob/main/templates/posts_by_category.html): `templates/posts_by_category.html`
- [Search results](https://github.com/adityabhairawkar/django-blog/blob/main/templates/search.html): `templates/search.html`
- [Dashboard screens](https://github.com/adityabhairawkar/django-blog/tree/main/templates/dashboard): `templates/dashboard`

### Other components

- **Visitor**

## Connections

- Visitor → Site routes: requests pages
- Site routes → Home and auth: routes home/auth (evidence: `blog_main/urls.py`)
- Site routes → Blog routes: includes categories (evidence: `blog_main/urls.py`)
- Site routes → Browse and comment: routes article/search (evidence: `blog_main/urls.py`)
- Site routes → Dashboard routes: includes dashboard (evidence: `blog_main/urls.py`)
- Home and auth → Registration form: validates registration (evidence: `blog_main/views.py`)
- Home and auth → Posts categories comments: queries posts (evidence: `blog_main/views.py`)
- Home and auth → About and social links: loads about content
- Home and auth → Home page: renders (evidence: `blog_main/views.py`)
- Blog routes → Browse and comment: routes category (evidence: `blogs/urls.py`)
- Browse and comment → Posts categories comments: queries and saves (evidence: `blogs/views.py`)
- Browse and comment → Article page: renders (evidence: `blogs/views.py`)
- Browse and comment → Category listing: renders (evidence: `blogs/views.py`)
- Browse and comment → Search results: renders (evidence: `blogs/views.py`)
- Dashboard routes → Dashboard operations: routes operations (evidence: `dashboards/urls.py`)
- Dashboard operations → Management forms: validates edits (evidence: `dashboards/views.py`)
- Dashboard operations → Posts categories comments: manages posts/categories (evidence: `dashboards/views.py`)
- Dashboard operations → Dashboard screens: renders (evidence: `dashboards/views.py`)
- Category context → Posts categories comments: loads categories (evidence: `blogs/context_processors.py`)
