How xuanhau1902/personal-blog works
Personal Blog is a React/Spring Boot blogging application. Readers browse and search published posts, open post details, and interact through likes and comments; signed-in users can create or edit posts, manage avatars, and upload images. JWT registration, login, refresh, and role/ownership checks support protected actions. The README documents drafts, tags, Markdown, galleries, and Cloudinary uploads. Sampled code confirms post and authentication service calls; wiring for several listed controllers and frontend page data flows is not shown, so those connections are left out.
Main entry points: api.ts API client · App.tsx Route application · PostService.java Post service · AuthService.java Auth service
Components 25
React frontend
- Route application
frontend/src/App.tsx - API client
frontend/src/api.ts - Auth pages
frontend/src/pages/LoginPage.tsx - Post feed
frontend/src/pages/HomePage.tsx - Post detail
frontend/src/pages/PostDetailPage.tsx - Post editor
frontend/src/pages/PostEditorPage.tsx
Identity and access
- Auth endpoints
src/main/java/com/projects/PersonalBlog/controller/AuthController.java - Auth service
src/main/java/com/projects/PersonalBlog/service/AuthService.java - JWT security
src/main/java/com/projects/PersonalBlog/security/SecurityConfig.java - JWT utilities
src/main/java/com/projects/PersonalBlog/security/JwtUtil.java - User lookup
src/main/java/com/projects/PersonalBlog/security/CustomUserDetailsService.java
Blog content
- Post endpoints
src/main/java/com/projects/PersonalBlog/controller/PostController.java - Post service
src/main/java/com/projects/PersonalBlog/service/PostService.java - Posts and tags
src/main/java/com/projects/PersonalBlog/repository/PostRepository.java - Tag repository
src/main/java/com/projects/PersonalBlog/repository/TagRepository.java
Reader interactions
- Comment endpoints
src/main/java/com/projects/PersonalBlog/controller/CommentController.java - Comment service
src/main/java/com/projects/PersonalBlog/service/CommentService.java - Comment repository
src/main/java/com/projects/PersonalBlog/repository/CommentRepository.java
Profiles and media
- User endpoints
src/main/java/com/projects/PersonalBlog/controller/UserController.java - User service
src/main/java/com/projects/PersonalBlog/service/UserService.java - Upload endpoint
src/main/java/com/projects/PersonalBlog/controller/FileController.java - Image upload
src/main/java/com/projects/PersonalBlog/service/FileUploadService.java
Other components
- Reader / author
- Cloudinary
- MySQL
Connections 23
- Reader / author → Route application: uses
- Route application → Auth pages: routes
- Route application → Post feed: routes
- Route application → Post detail: routes
- Route application → Post editor: routes
- API client → Auth endpoints: HTTP requests
- API client → Post endpoints: HTTP requests
- API client → Comment endpoints: HTTP requests
- API client → Upload endpoint: HTTP requests
- API client → User endpoints: HTTP requests
- Auth endpoints → Auth service: delegates
- Auth service → JWT utilities: issues tokens
- Auth service → MySQL: reads/writes users
- JWT security → User lookup: loads identity
- User lookup → MySQL: reads users
- Post endpoints → Post service: delegates
- Post service → Posts and tags: reads/writes posts
- Post service → Tag repository: resolves tags
- Post service → MySQL: reads/writes likes
- Comment service → Comment repository: reads/writes comments
- Comment service → MySQL: reads posts/users
- User service → MySQL: reads/writes users
- Image upload → Cloudinary: uploads images