/ComputerSystem

Microservices for e-commerce computer components store

Primary LanguageJavaOtherNOASSERTION

ComputerSystem Portfolio project

Microservices for e-commerce computer components store

build

Requirements:

  • Java 17 or above
  • Apache Maven 3.6.3 or above
  • docker 24.0.2+ and docker-compose v2.17.2+

(Linux) Instruction for run:

  • Open root project folder in console:
    • Execute comand: "mvn clean package"
    • Execute command: "docker-compose build"
    • Execute command: "docker-compose up -d"
  • Open Eureka in browser to enter eureka
  • Open Swagger in browser to open swagger for all services
  • If elasticsearch won't run then product-service will not as well. Write this command in console to update max memory on virtual machine thats let elasticsearch run: sysctl -w vm.max_map_count=262144

To stop docker containers exxecute command (in console from previous steps) "docker-compose stope"

Modules:

  • Product Service
  • Open Authentication 2 Server
  • Notification Service
  • Gateway Server
  • Eureka Server
  • Email Service
  • Customer Service
  • Jwt Authorization Server

Technologies

Architecture

  • Microservice

Backend

  • Spring Boot
  • Spring Web
  • Gateway Server
  • Spring Cloud
  • Discovery Server (Netflix Eureka)
  • OAuth2 Authorization Server
  • OAuth2 Resource Server
  • Spring Validation
  • Spring Mail
  • JWT
  • Stripe
  • Elasticsearch
  • OpenFeign
  • WebClient
  • Loadbalacer
  • DigitalOcean
  • Apache Kafka
  • Swagger
  • Redis Caching
  • JPA
  • AspectJ

Mail Templates

  • Template Engine - Thymeleaf

Databases

SQL

  • MySQL

NoSQL

  • MongoDB
  • Redis

Migrations

  • Flyway

Tests

  • JUnit 4/5
  • MockMVC

Code Write

  • Lombok
  • Mapstruct

Services

  • Github actions
  • Docker & Docker-compose

GitHub

Ubuntu Docker

Java IntelliJ IDEA

Spring Apache Maven

Hibernate MongoDB MySQL Redis ElasticSearch

Swagger

PayPal

CC BY-NC-ND 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 4.0 International License.

CC BY-NC-ND 4.0