Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

  1. Summary
  2. Getting Started
  3. References

Summary

  • api-gateway-service project established by combination of the following services and features

Services

 * api-gateway
 * brokerage-provider
 * gitlab-service
 * inventory-management-service
 * kafka-debezium-service
 * notification-service
 * openai-service
 * payment-service
 * service-registry
 * spring-config-server
 * stock-exchange-service
 * student-service
 * swagger-application

Features

 * Spring Cloud Gateway
 * SpringDoc Swagger
 * Event Driven Architecture with RabbitMQ
 * Event Driven Architecture with Apache Kafka (notification-service)
 * micrometer-tracing dependencies to track the logs
 * OpenTelemetry (OTLP) export for metrics, traces, and logs to Grafana LGTM stack
 * Postman collection to test by using Postman
 * Keycloak integration is completed under the payment-service
 * Feign Client secure call with Keycloak integration is completed under the student-service
 * MDC was added to improve logging between microservices
 * Google reCAPTCHA was added to secure endpoint calls
 * HCaptcha repo migration is completed under the student-service
 * openai-service repo migration is completed
 * Spring Cloud Eureka Server and Client integrations are completed with service-registry repo
 * KubernetesDeploymentGuide.md is added
 * Spring Config Server integration is completed with git version control
 * notification-service with Email, SMS (DummySms), Push (Firebase FCM + SSE) and Kafka-based notification support
 * Configurable security permitted paths via application.yml (gateway-service.security.permitted-paths)
 * Multi-application Firebase push notification support in notification-service
 * gitlab-service repo migration is completed for bulk Gitlab operations via Feign Client
 * kafka-debezium-service repo migration is completed for CDC with Debezium, Kafka cluster, PostgreSQL, and Oracle
 * brokerage-provider repo migration is completed
 * stock-exchange-service repo migration is completed
 * inventory-management-service repo migration is completed

Getting Started

  • To get a local copy up and running please follow these steps

Prerequisites


Installation

  1. Clone the repo
     git clone https://github.com/musabbozkurt/api-gateway-service.git

  1. Run all services

    • (OPTION 1)
      • Run docker-compose --profile start_application up -d --build command in the docker-compose.yml directory
    • (OPTION 2)
      1. Enable spring.docker.compose property and just run ApiGatewayApplication.java to install RabbitMQ, PostgreSQL and Keycloak
      2. Run mvn clean install or mvn clean package or ./mvnw clean install or ./mvnw clean package command under each service's directory
      3. Run mvn spring-boot:run command under each service's directory

  1. Log in to http://localhost:9090/admin with username: admin and password: admin
    1. Create realm --> Import mb-realm-export.json
    2. Clients --> api-gateway-client --> Credentials --> Regenerate copy the value and add it as PAYMENT_CLIENT_SECRET_ENV value in the .env
    3. Users --> Add user --> Username --> developer
    4. Users --> developer --> Credentials --> Set password to test and turn off Temporary toggle
    5. Users --> developer --> Role Mapping --> Assign role add admin role
    6. Restart student-service to fetch PAYMENT_CLIENT_SECRET

  1. Additional information to access endpoints, swagger and actuator

  1. Kubernetes Deployment Guide (OPTIONAL)

References