/microservices

This project is a blog application built using a microservices architecture with Spring Security. It demonstrates how to integrate various services and technologies to create a robust, scalable blogging platform.

Primary LanguageJava

Microservices - Spring boot

overview

Microservices Blog Project

This project is a blog application built using a microservices architecture, leveraging Spring Security and various technologies to ensure robust and scalable functionality. The application is composed of seven distinct services:

  • user-service: Manages user data and authentication.
  • auth-service: Handles security with JWT and stores tokens in MongoDB.
  • email-service: Sends email notifications, including user registration confirmation, using Kafka.
  • post-service: Manages blog posts.
  • discovery-service: Uses Eureka for service discovery.
  • config-service: Manages configuration settings pulled from GitHub.
  • api-gateway: Acts as the entry point for all client requests, routing them to the appropriate services.

Key Features

  • JWT Authentication: Utilizes JWT for secure user authentication, with tokens managed and stored in MongoDB.
  • Email Confirmation: Employs Kafka to handle email notifications for user registration.
  • Service Discovery: Eureka-server is used for dynamic service discovery.
  • Centralized Configuration: Configurations are centrally managed in the config-server, which retrieves settings from GitHub.
  • Microservices Architecture: Modular design using microservices for scalability and maintainability.

Technologies Used

  • Spring Security: For securing the services and managing JWT authentication.
  • MongoDB: Used for storing tokens and user data.
  • Kafka: For handling email notifications.
  • Eureka: For service discovery.
  • GitHub: For storing and retrieving configuration settings.
  • Spring Boot: For building and running the microservices.

Getting Started

  1. Clone the Repository

    git clone https://github.com/your-username/your-repository.git
    
  2. Set Up the Infrastructure**

    # Navigate to the infra-setup directory
    cd infra-setup
    
    # Start the services using Docker Compose
    docker-compose up
    
  3. **Run the services in this order

  4. config-server

  5. discovery-service

  6. security-service

  7. user-service

  8. post-service

  9. email-service

  10. api-gateway

Menu

Overview of Architecture and Technologies

Project interview and technologies used

section1-pic

section-1.pdf

Monolith, SOA, and Microservices

An explanation of Monolith, SOA, and Microservices architecture, their differences, and use cases.

section2-pic

section-2.pdf

Docker

A brief description of Docker, its importance, and how it's used in the project.

section3-pic

section-3.pdf

Spring Security

An overview of Spring Security, its features, and its implementation in the project.

section4-pic

section-4.pdf

Kafka

An overview of Apache Kafka, its features, and its implementation in the project.

section4 2 section4 2 2

section4.2.pdf

Discovery Server

An overview of Netflix Eureka, its features, and its implementation in the project.

section5

section5.pdf

Configurations Management

An overview of Spring cloud,Spring cloud bus, its features, and its implementation in the project.

SECTİON6

section6.pdf

API Gateway

An overview of Spring cloud gateway, its features, and its implementation in the project.