# nexuspanda/blogmanagementsystem architecture

> Architecture diagram of the GitHub repository nexuspanda/blogmanagementsystem, 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/nexuspanda/blogmanagementsystem
- Repository: https://github.com/nexuspanda/blogmanagementsystem

## Overview

BlogManagementSystem is a Spring REST API for blog content and account management. Users and administrators call endpoints for authentication, profile and user administration, posts, comments, categories, and tags; controller requests are delegated to domain services and persist through repositories to PostgreSQL. JWT authentication and role-based authorization protect selected endpoints. Service implementations and security wiring were not sampled, so the diagram shows the documented layers and named security components without asserting their internal call sequence.

Main entry points: [`BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Model`](https://github.com/nexuspanda/blogmanagementsystem/tree/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Model) (Domain entities), [`BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/UserRepository.java`](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/UserRepository.java) (User repository), [`BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/PostRepository.java`](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/PostRepository.java) (Post repository), [`BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CommentRepository.java`](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CommentRepository.java) (Comment repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_authctl["Auth endpoints"]
  node_postctl["Post endpoints"]
  node_commentctl["Comment endpoints"]
  node_categoryctl["Category endpoints"]
  node_tagctl["Tag endpoints<br/>[TagController.java]"]
  node_userctl["User endpoints"]
end

subgraph group_domain["Domain Services"]
  node_authsvc["Authentication service"]
  node_postsvc["Post service"]
  node_commentsvc["Comment service"]
  node_categorysvc["Category service"]
  node_tagsvc["Tag service"]
  node_usersvc["User service"]
end

subgraph group_security["Authentication"]
  node_securityconfig["Security configuration"]
  node_jwtfilter["JWT request filter"]
  node_jwtutils["JWT utilities<br/>[JwtUtils.java]"]
  node_userdetails["User details lookup"]
end

subgraph group_data["Persistence"]
  node_postrepo["Post repository"]
  node_commentrepo["Comment repository"]
  node_categoryrepo["Category repository"]
  node_tagrepo["Tag repository<br/>[TagRepository.java]"]
  node_userrepo["User repository"]
  node_models["Domain entities"]
end

node_client(("API client"))
node_postgres[("PostgreSQL")]

node_client -->|"sends requests"| node_authctl
node_client -->|"sends requests"| node_postctl
node_client -->|"sends requests"| node_commentctl
node_client -->|"sends requests"| node_categoryctl
node_client -->|"sends requests"| node_tagctl
node_client -->|"sends requests"| node_userctl
node_authctl -->|"delegates auth"| node_authsvc
node_postctl -->|"delegates posts"| node_postsvc
node_commentctl -->|"delegates comments"| node_commentsvc
node_categoryctl -->|"delegates categories"| node_categorysvc
node_tagctl -->|"delegates tags"| node_tagsvc
node_userctl -->|"delegates users"| node_usersvc
node_jwtfilter -->|"uses tokens"| node_jwtutils
node_userdetails -->|"loads user"| node_userrepo
node_postsvc -->|"uses repository"| node_postrepo
node_commentsvc -->|"uses repository"| node_commentrepo
node_categorysvc -->|"uses repository"| node_categoryrepo
node_tagsvc -->|"uses repository"| node_tagrepo
node_usersvc -->|"uses repository"| node_userrepo
node_postrepo -->|"persists posts"| node_models
node_commentrepo -->|"persists comments"| node_models
node_categoryrepo -->|"persists categories"| node_models
node_tagrepo -->|"persists tags"| node_models
node_userrepo -->|"persists users"| node_models
node_postrepo -->|"reads and writes"| node_postgres
node_commentrepo -->|"reads and writes"| node_postgres
node_categoryrepo -->|"reads and writes"| node_postgres
node_tagrepo -->|"reads and writes"| node_postgres
node_userrepo -->|"reads and writes"| node_postgres

click node_authctl "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/AuthController.java"
click node_postctl "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/PostController.java"
click node_commentctl "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/CommentController.java"
click node_categoryctl "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/CategoryController.java"
click node_tagctl "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/TagController.java"
click node_userctl "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/UserController.java"
click node_authsvc "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/AuthServiceImpl.java"
click node_postsvc "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/PostServiceImpl.java"
click node_commentsvc "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/CommentServiceImpl.java"
click node_categorysvc "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/CategoryServiceImpl.java"
click node_tagsvc "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/TagServiceImpl.java"
click node_usersvc "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/UserServiceImpl.java"
click node_securityconfig "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/SecurityConfig.java"
click node_jwtfilter "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Jwt/AuthTokenFilter.java"
click node_jwtutils "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Jwt/JwtUtils.java"
click node_userdetails "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Service/CustomUserDetailsService.java"
click node_postrepo "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/PostRepository.java"
click node_commentrepo "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CommentRepository.java"
click node_categoryrepo "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CategoryRepository.java"
click node_tagrepo "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/TagRepository.java"
click node_userrepo "https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/UserRepository.java"
click node_models "https://github.com/nexuspanda/blogmanagementsystem/tree/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Model"

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_authctl,node_postctl,node_commentctl,node_categoryctl,node_tagctl,node_userctl,node_client toneBlue
class node_authsvc,node_postsvc,node_commentsvc,node_categorysvc,node_tagsvc,node_usersvc,node_postgres toneAmber
class node_securityconfig,node_jwtfilter,node_jwtutils,node_userdetails toneMint
class node_postrepo,node_commentrepo,node_categoryrepo,node_tagrepo,node_userrepo,node_models toneRose
```

## Components

### REST API

- [Auth endpoints](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/AuthController.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/AuthController.java`
- [Post endpoints](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/PostController.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/PostController.java`
- [Comment endpoints](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/CommentController.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/CommentController.java`
- [Category endpoints](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/CategoryController.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/CategoryController.java`
- [Tag endpoints](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/TagController.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/TagController.java`
- [User endpoints](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/UserController.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Controller/UserController.java`

### Domain Services

- [Authentication service](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/AuthServiceImpl.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/AuthServiceImpl.java`
- [Post service](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/PostServiceImpl.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/PostServiceImpl.java`
- [Comment service](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/CommentServiceImpl.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/CommentServiceImpl.java`
- [Category service](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/CategoryServiceImpl.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/CategoryServiceImpl.java`
- [Tag service](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/TagServiceImpl.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/TagServiceImpl.java`
- [User service](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/UserServiceImpl.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Service/UserServiceImpl.java`

### Authentication

- [Security configuration](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/SecurityConfig.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/SecurityConfig.java`
- [JWT request filter](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Jwt/AuthTokenFilter.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Jwt/AuthTokenFilter.java`
- [JWT utilities](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Jwt/JwtUtils.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Jwt/JwtUtils.java`
- [User details lookup](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Service/CustomUserDetailsService.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Security/Service/CustomUserDetailsService.java`

### Persistence

- [Post repository](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/PostRepository.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/PostRepository.java`
- [Comment repository](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CommentRepository.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CommentRepository.java`
- [Category repository](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CategoryRepository.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/CategoryRepository.java`
- [Tag repository](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/TagRepository.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/TagRepository.java`
- [User repository](https://github.com/nexuspanda/blogmanagementsystem/blob/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/UserRepository.java): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Repository/UserRepository.java`
- [Domain entities](https://github.com/nexuspanda/blogmanagementsystem/tree/main/BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Model): `BlogManagementSystem/src/main/java/com/Blog/BlogManagementSystem/Model`

### Other components

- **API client**
- **PostgreSQL**

## Connections

- API client → Auth endpoints: sends requests
- API client → Post endpoints: sends requests
- API client → Comment endpoints: sends requests
- API client → Category endpoints: sends requests
- API client → Tag endpoints: sends requests
- API client → User endpoints: sends requests
- Auth endpoints → Authentication service: delegates auth
- Post endpoints → Post service: delegates posts
- Comment endpoints → Comment service: delegates comments
- Category endpoints → Category service: delegates categories
- Tag endpoints → Tag service: delegates tags
- User endpoints → User service: delegates users
- JWT request filter → JWT utilities: uses tokens
- User details lookup → User repository: loads user
- Post service → Post repository: uses repository
- Comment service → Comment repository: uses repository
- Category service → Category repository: uses repository
- Tag service → Tag repository: uses repository
- User service → User repository: uses repository
- Post repository → Domain entities: persists posts
- Comment repository → Domain entities: persists comments
- Category repository → Domain entities: persists categories
- Tag repository → Domain entities: persists tags
- User repository → Domain entities: persists users
- Post repository → PostgreSQL: reads and writes
- Comment repository → PostgreSQL: reads and writes
- Category repository → PostgreSQL: reads and writes
- Tag repository → PostgreSQL: reads and writes
- User repository → PostgreSQL: reads and writes
