# duchoai039-ctrl/24ct1-nguyenbahoaiduc architecture

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

- Interactive diagram: https://gitdiagram.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc
- Repository: https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc

## Overview

This is a Django blog application: users register or log in, browse and search tagged posts, publish and manage their own posts, and interact through comments, likes, profiles, and follows. Requests enter through the project URL configuration and app routes, then the views coordinate forms, model queries, and rendered templates. The models represent users’ profiles and interests, posts, tags, comments, likes, and follows. Source excerpts establish these interactions; storage is shown from the configured SQLite database and media settings, while the database file itself is not in the tree.

Main entry points: [`Blog/devBlog/views.py`](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/views.py) (Request views), [`Blog/devBlog/forms.py`](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/forms.py) (Post forms), [`Blog/devBlog/models.py`](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/models.py) (Users and profiles), [`Blog/Blog/settings.py`](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/Blog/settings.py) (Runtime settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_project_urls["Project routes<br/>[urls.py]"]
  node_app_urls["Blog routes<br/>[urls.py]"]
  node_views["Request views<br/>[views.py]"]
end

subgraph group_identity["Accounts"]
  node_account_forms["Account forms<br/>[forms.py]"]
  node_account_data["Users and profiles<br/>[models.py]"]
end

subgraph group_content["Posts and discovery"]
  node_post_forms["Post forms<br/>[forms.py]"]
  node_post_data["Posts and tags<br/>[models.py]"]
end

subgraph group_social["Community"]
  node_comment_forms["Comment forms<br/>[forms.py]"]
  node_social_data["Comments and follows<br/>[models.py]"]
end

subgraph group_runtime["Rendering and storage"]
  node_templates["Blog pages"]
  node_settings["Runtime settings<br/>[settings.py]"]
  node_database[("SQLite database")]
  node_uploads["Post media"]
end

node_reader(("Blog user"))

node_reader -->|"sends request"| node_project_urls
node_project_urls -->|"includes routes"| node_app_urls
node_app_urls -->|"dispatches"| node_views
node_views -->|"validates accounts"| node_account_forms
node_views -->|"validates posts"| node_post_forms
node_views -->|"validates comments"| node_comment_forms
node_views -->|"queries and updates"| node_account_data
node_views -->|"queries and updates"| node_post_data
node_views -->|"queries and updates"| node_social_data
node_account_forms -->|"saves account"| node_account_data
node_post_forms -->|"saves post"| node_post_data
node_comment_forms -->|"saves comment"| node_social_data
node_views -->|"renders pages"| node_templates
node_settings -->|"configures SQLite"| node_database
node_post_data -->|"reads and writes"| node_database
node_account_data -->|"reads and writes"| node_database
node_social_data -->|"reads and writes"| node_database
node_settings -->|"configures media"| node_uploads
node_post_forms -->|"stores images"| node_uploads

click node_project_urls "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/Blog/urls.py"
click node_app_urls "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/urls.py"
click node_views "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/views.py"
click node_account_forms "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/forms.py"
click node_post_forms "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/forms.py"
click node_comment_forms "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/forms.py"
click node_account_data "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/models.py"
click node_post_data "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/models.py"
click node_social_data "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/models.py"
click node_templates "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/tree/main/Blog/devBlog/templates/devBlog"
click node_settings "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/Blog/settings.py"
click node_uploads "https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/tree/main/Blog/media/posts"

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_project_urls,node_app_urls,node_views,node_reader toneBlue
class node_account_forms,node_account_data toneAmber
class node_post_forms,node_post_data toneMint
class node_comment_forms,node_social_data toneRose
class node_templates,node_settings,node_database,node_uploads toneIndigo
```

## Components

### Web entry

- [Project routes](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/Blog/urls.py): `Blog/Blog/urls.py`
- [Blog routes](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/urls.py): `Blog/devBlog/urls.py`
- [Request views](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/views.py): `Blog/devBlog/views.py`

### Accounts

- [Account forms](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/forms.py): `Blog/devBlog/forms.py`
- [Users and profiles](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/models.py): `Blog/devBlog/models.py`

### Posts and discovery

- [Post forms](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/forms.py): `Blog/devBlog/forms.py`
- [Posts and tags](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/models.py): `Blog/devBlog/models.py`

### Community

- [Comment forms](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/forms.py): `Blog/devBlog/forms.py`
- [Comments and follows](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/devBlog/models.py): `Blog/devBlog/models.py`

### Rendering and storage

- [Blog pages](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/tree/main/Blog/devBlog/templates/devBlog): `Blog/devBlog/templates/devBlog`
- [Runtime settings](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/blob/main/Blog/Blog/settings.py): `Blog/Blog/settings.py`
- **SQLite database**
- [Post media](https://github.com/duchoai039-ctrl/24ct1-nguyenbahoaiduc/tree/main/Blog/media/posts): `Blog/media/posts`

### Other components

- **Blog user**

## Connections

- Blog user → Project routes: sends request
- Project routes → Blog routes: includes routes
- Blog routes → Request views: dispatches
- Request views → Account forms: validates accounts
- Request views → Post forms: validates posts
- Request views → Comment forms: validates comments
- Request views → Users and profiles: queries and updates
- Request views → Posts and tags: queries and updates
- Request views → Comments and follows: queries and updates
- Account forms → Users and profiles: saves account
- Post forms → Posts and tags: saves post
- Comment forms → Comments and follows: saves comment
- Request views → Blog pages: renders pages
- Runtime settings → SQLite database: configures SQLite
- Posts and tags → SQLite database: reads and writes
- Users and profiles → SQLite database: reads and writes
- Comments and follows → SQLite database: reads and writes
- Runtime settings → Post media: configures media
- Post forms → Post media: stores images
