An open API service indexing awesome lists of open source software.

https://github.com/miguelprogrammer/neighborfood-payment

Payment module, rest application, supports the neighborfood application which contains most of the use cases, the purpose of this micro-service is to practice refactoring, separating some services from an existing rest application
https://github.com/miguelprogrammer/neighborfood-payment

exagonal-architecture refactoring rest-api spring-boot

Last synced: about 1 year ago
JSON representation

Payment module, rest application, supports the neighborfood application which contains most of the use cases, the purpose of this micro-service is to practice refactoring, separating some services from an existing rest application

Awesome Lists containing this project

README

          

Module Payment of Neighborfood Application - Clean Architecture

# Allure Report dashboard
*

# Cucumber
*
*

# jUnit & Mockito
*
*

# Jacoco Report
*

# Profiles test unit and integration
```
mvn -P integration-test
```

# Profiles test system
```
mvn -P system-test
```

Project aims to refactor the architecture used in the project Neighborfood - Ports and Adapters


Neighborfood-app

* To upload the application, use the docker-compose up or docker-compose up --build command, use a client for the request, the results are also presented via the console to fill in the response.



Through the monolith, I will create an application similar to Ifood.

This application is being developed to prove theories, software development with DDD, every flow developed here is intended only to put into technical practices of domais driven design, I will use docker to upload the application to the PostgreSql database.

I will refactor the previous architecture to a clean architecture.

Clean architecture also says a lot about not dirtying or violating the layers. This architecture is based on using the outermost layer to the innermost ones. To do this, the use of appropriate layers must be followed in order to not harm the proposal brought by the adopted model.

* Doc DDD miro: miro
* Json doc to postman requests: request postman
* Api-docs Swagger OpenPI swagger-ui -> Access documentation only by running the application or by inserting the contents of the src/main/resources/api/resource.yml file on the swagger web editor website
* Video YouTube Application Neighborfood demonstration video


Doc uml diagrams













* To execute the project and orchestrate containers, install minikube, the platform used in development and testing.
* Run the minikube start command to access the minikube dashboard, where you can view the containers in a more simplified way.
* With docker-desktop installed, enable the kubernetes engine in docker settings.
* Using the command line via cmd, navigate to the k8s project directory and run the commands kubectl apply -f filename so that applications can upload containers, pods and services.
* Using the command line, cmd, run the command minikube service app-neighborfood-service, this way you will have access to the api document, swagger-openapi
Orchestrating containers with minikube, spinning up two instances


NEIGHBORFOOD MENU

* 7 - Make payment
* 7.1 - There is a Mercado Pago webhook for us to test the payment, the integration of this service should be well used, it is where we will prove a way to plug the service without harming our layers.



Happy flow:

* 6 - Make payment
* 7 - Check the order status
* 7.1 - When you check the order status after payment, the system will move to the next statuses until the order is finalized



Java documentation, generated by Maven, contains detailed information about the technologies used, versions and much more, It can be accessed through the target/site.