Skip to content

πŸ”§ The robust and scalable core of Blogger Hub, built using Spring Boot and MongoDB. This API-driven backend powers the Blogify platform with high performance and security.

Notifications You must be signed in to change notification settings

amaanlari/blogger-hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Blogger Hub - Backend

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.

Features

  • 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

Features in Progress

  • 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

Tech Stack

  • Backend Framework: Spring Boot
  • Database: MongoDB (with migration plans to DynamoDB)
  • File Storage: Cloudinary
  • API Documentation: Postman
  • Build Tool: Maven

Project Structure

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

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/blogger-hub.git
    cd blogger-hub
  2. Update the application.yml file with your MongoDB and Cloudinary credentials.

  3. Build the project:

    mvn clean install
  4. Run the application:

    mvn spring-boot:run

API Documentation

The API documentation is available via Swagger at:

http://localhost:8080/swagger-ui/index.html

Development Setup

Prerequisites

  • Java 17 or higher
  • MongoDB installed locally or accessible via cloud
  • Kafka broker setup (local or cloud)

Configuration

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>

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature/fix:
    git checkout -b feature-name
  3. Commit your changes:
    git commit -m "Add new feature"
  4. Push to your branch:
    git push origin feature-name
  5. Create a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For queries, reach out to Amaan Lari:

About

πŸ”§ The robust and scalable core of Blogger Hub, built using Spring Boot and MongoDB. This API-driven backend powers the Blogify platform with high performance and security.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published