How tejuingalagi/blog-management-system works
This is a Spring Boot REST backend for secure blog publishing and interaction. The main workflow runs from a client request through JWT filtering and a REST controller into service logic and persistent blog, user, comment, or like data; controllers shape responses for the client. Separate flows support signup/signin and token issuance, profile management, and optional Cloudinary image updates. The README documents role-based authorization and stateless security; sampled source confirms token utilities, filtering, and user lookup, but the security configuration and several service implementations were not sampled, so those internal links are kept conservative.
Main entry points: JwtRequestFilter.java JWT Filter · UserController.java User API · CommentController.java Comment API · LikeController.java Like API
Components 22
REST API
- Blog API
src/main/java/com/blog/rest/BlogController.java - Comment API
src/main/java/com/blog/rest/CommentController.java - Like API
src/main/java/com/blog/rest/LikeController.java - User API
src/main/java/com/blog/rest/UserController.java - Error Handler
src/main/java/com/blog/exception/GlobalExceptionHandler.java
Domain Services
- Blog Service
src/main/java/com/blog/service/impl/BlogServiceImpl.java - Comment Service
src/main/java/com/blog/service/impl/CommentServiceImpl.java - Like Service
src/main/java/com/blog/service/impl/LikeServiceImpl.java - User Service
src/main/java/com/blog/service/impl/UserServiceImpl.java - Image Service
src/main/java/com/blog/service/impl/ClodinaryServiceImpl.java
Authentication
- JWT Filter
src/main/java/com/blog/utils/JwtRequestFilter.java - JWT Utility
src/main/java/com/blog/utils/JwtUtil.java - User Lookup
src/main/java/com/blog/service/CustomUserDetailsService.java - Security User
src/main/java/com/blog/service/CustomUserDetails.java - Password Encoder
Persistence
- Blog Repository
src/main/java/com/blog/repo/BlogRepository.java - Comment Repository
src/main/java/com/blog/repo/CommentRepository.java - Like Repository
src/main/java/com/blog/repo/LikeRepository.java - User Repository
src/main/java/com/blog/repo/UserRepository.java
External Integrations
- MySQL Database
- Cloudinary
Other components
- API Client
Connections 38
- API Client → JWT Filter: sends requests
- JWT Filter → JWT Utility: validates tokens
- JWT Filter → User Lookup: loads identity
- User Lookup → User Repository: looks up email
- User Lookup → Security User: wraps user
- JWT Filter → Blog API: passes authenticated requests
- JWT Filter → Comment API: passes authenticated requests
- JWT Filter → Like API: passes authenticated requests
- JWT Filter → User API: passes authenticated requests
- API Client → Blog API: requests blog APIs
- API Client → Comment API: requests comments
- API Client → Like API: requests likes
- API Client → User API: requests account APIs
- Blog API → Blog Service: manages and searches
- Blog API → Like Service: checks liked state
- Comment API → Comment Service: creates and lists
- Comment API → Blog Service: finds target blog
- Comment API → User Service: finds commenter
- Like API → Like Service: creates and queries
- Like API → Blog Service: finds target blog
- Like API → User Service: finds liker
- User API → User Service: manages accounts
- User API → JWT Utility: issues tokens
- User API → Password Encoder: encodes passwords
- User API → Image Service: updates profile images
- Blog Service → Blog Repository: queries and saves
- Comment Service → Comment Repository: queries and saves
- Like Service → Like Repository: queries and saves
- User Service → User Repository: queries and saves
- Blog Repository → MySQL Database: persists blog data
- Comment Repository → MySQL Database: persists comment data
- Like Repository → MySQL Database: persists like data
- User Repository → MySQL Database: persists user data
- Image Service → Cloudinary: uploads and deletes
- Blog API → Error Handler: raises API errors
- Comment API → Error Handler: raises API errors
- Like API → Error Handler: raises API errors
- User API → Error Handler: raises API errors