Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andriirv/my-car
Project is about build APIs via microservice approach using by Spring, Docker and Kubernetes (K8S)
https://github.com/andriirv/my-car
docker flyway gradle java kafka kafka-cluster kubernetes liquibase microservices-architecture mongodb openapi-specification oracle-database postgresql rabbitmq rest spring
Last synced: about 1 month ago
JSON representation
Project is about build APIs via microservice approach using by Spring, Docker and Kubernetes (K8S)
- Host: GitHub
- URL: https://github.com/andriirv/my-car
- Owner: AndriiRv
- Created: 2024-02-12T17:33:49.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-03-26T18:57:36.000Z (8 months ago)
- Last Synced: 2024-10-14T05:03:01.013Z (about 1 month ago)
- Topics: docker, flyway, gradle, java, kafka, kafka-cluster, kubernetes, liquibase, microservices-architecture, mongodb, openapi-specification, oracle-database, postgresql, rabbitmq, rest, spring
- Language: Java
- Homepage:
- Size: 222 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 'My car'
> Contents
> - [About](#about)
> - [Business-microservices](#business-microservices)
> - [Cars](#cars)
> - [Customers](#customers)
> - [ServicePartners](#servicepartners)
> - [Maintenance-microservices](#maintenance-microservices)
> - [ConfigServer](#configserver)
> - [EurekaServer](#eurekaserver)
> - [GatewayServer](#gatewayserver)
> - [Setup](#setup)
> - [Using](#using)## About
###### UPDATED March 13, 2024
`My car` is a project which play a role as a system maintenance of the cars. Customers buys a cars and auto-attach to
some of the service station.
Built based on the microservice approach which to distribute logic on a small modules / microservices, namely:* Business-microservices: `cars`, `customers`, `servicepartners`.
* Maintenance-microservices: `configserver`, `eurekaserver`, `gatewayserver`.- This project is for education purpose, and it's a cause why all microservices lies on the one repository.
- On working environment we need to use all of these microservices on separate repositories which handle different
development teams.### Business microservices
#### Cars
###### UPDATED March 13, 2024
- This microservice intend to reveal business logic about the customer cars.
- Has three entities: `Car`, `Car details` and `Car statistics`. All of three entities have ONE-TO-ONE relationship.
- Use a `PostgreSQL` as RDBMS.#### Customers
###### UPDATED March 13, 2024
- 'Customers' microservice has on a goal to handle customer / owner entities, like: `Owner`, `Owner credentials`
and `Owner notifications`.
- `Owner` and `Owner credentials` have ONE-TO-ONE relationship.
- `Owner` and `Owner notifications` have ONE-TO-MANY relationship.
- Use an `Oracle` as RDBMS.#### ServicePartners
###### UPDATED March 13, 2024
- This microservice described service station behavior, which include: `Service partner` / service station, `Worker`
and `Car maintenance` entities.
- `Service partner` and `Worker` have ONE-TO-MANY relationship.
- `Service partner` and `Car maintenance` have ONE-TO-MANY relationship.
- Use a `MongoDB` as NoSQL DBMS.### Maintenance microservices
#### Config server
###### UPDATED March 13, 2024
It's a microservice which based on Spring Cloud Config.
Provides support for externalized configuration in a distributed systems.#### Eureka server
###### UPDATED March 13, 2024
Plays a role of discovery service within microservice approach.
#### Gateway server
###### UPDATED March 13, 2024
Intended to a general start point or gateway to our microservice network.
## Setup
###### UPDATED March 13, 2024
Before to run of `My car` microservice infrastructure you have to make sure that your host can connect to the repository
which intend to use by Spring Cloud Config server.- If you have simple username & password approach to your repository then you need to add `username` and `password`
parameters under `spring.cloud.config.server.git`.
- Otherwise, you will need to setup ssh between host and repository and manually put ssh keys as files from your OS
directory to the root of this project: `root/ssh_keys`.Also make sure that your Docker and Kubernetes is enabled.
## Using
###### UPDATED March 13, 2024
You may to use Docker or Kubernetes 'launchers' to start `My car` microservice infrastructure. Please be aware for three
profiles for it: `default`, `prod` and `qa`.After proceed to one of these profiles you can find one bat file and this file will deploy all docker containers.
Deploying process may take a few minutes so please wait before all containers is started.