Blogger Hub is a comprehensive blogging platform that enables users to create, manage, and share blogs seamlessly. This repository contains the backend API implementation built using Spring Boot and MongoDB with enterprise-level practices.
-
User Module
- User registration and login (JWT-based authentication)
- User profile management
- Follow and unfollow users
-
Blog Module
- Create, update, delete, and view blogs
- Like and comment on blogs
- Support for threaded replies in comments
-
Media Management
- Store profile pictures and blog images using Cloudinary
-
Database
- MongoDB for managing users, blogs, and interactions
-
User Follow Feature
- Follow and unfollow users
-
Notification Module
- Real-time notifications using queuing system (RabbitMQ or Apache Kafka etc.)
- Notifications for likes, comments, and follows
- Backend Framework: Spring Boot
- Database: MongoDB (with migration plans to DynamoDB)
- File Storage: Cloudinary
- API Documentation: Postman
- Build Tool: Maven
blogger-hub/
βββ src/
β βββ main/
β β βββ java/com/bloggerhub/
β β β βββ config/ # Configuration files
β β β βββ constant/ # Constants files
β β β βββ controllers/ # REST controllers
β β β βββ document/ # Entity classes
β β β βββ dto/ # DTO classes
β β β βββ enums/ # Enum classes
β β β βββ repository/ # Database repositories
β β β βββ response/ # API responses
β β β βββ security/ # Security filters and configs
β β β βββ service/ # Business logic
β β β βββ util/ # Utility classes
β βββ test/
β βββ java/com/bloggerhub/ # Unit and integration tests
βββ pom.xml # Maven configuration
βββ README.md # Project documentation
-
Clone the repository:
git clone https://github.com/your-username/blogger-hub.git cd blogger-hub
-
Update the
application.yml
file with your MongoDB and Cloudinary credentials. -
Build the project:
mvn clean install
-
Run the application:
mvn spring-boot:run
The API documentation is available via Swagger at:
http://localhost:8080/swagger-ui/index.html
- Java 17 or higher
- MongoDB installed locally or accessible via cloud
- Kafka broker setup (local or cloud)
The application uses profiles for different environments. Set the active profile as needed using the follwing:
-Dspring.profiles.active=<profile>
OR
-Dspring-boot.run.profiles=<profile>
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature/fix:
git checkout -b feature-name
- Commit your changes:
git commit -m "Add new feature"
- Push to your branch:
git push origin feature-name
- Create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For queries, reach out to Amaan Lari:
- LinkedIn: amaanlari
- Twitter: amaanlari_
- Instagram: amaanlari_