Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danilobandeira29/easy-funds
application to handle transfers money between user and user/merchant
https://github.com/danilobandeira29/easy-funds
c4-model docker docker-compose domain java jparepository microservices rabbitmq-management spring-boot swagger-ui
Last synced: about 2 months ago
JSON representation
application to handle transfers money between user and user/merchant
- Host: GitHub
- URL: https://github.com/danilobandeira29/easy-funds
- Owner: danilobandeira29
- Created: 2024-10-21T12:01:21.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2024-10-26T20:21:28.000Z (2 months ago)
- Last Synced: 2024-10-27T11:17:49.915Z (2 months ago)
- Topics: c4-model, docker, docker-compose, domain, java, jparepository, microservices, rabbitmq-management, spring-boot, swagger-ui
- Language: Java
- Homepage:
- Size: 1.01 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Easy Funds
Application to handle transfers money between user and user/merchant and publish Events into RabbitMQ.
## Architecture
All files are located at `@docs` folder.
Context
![easy-funds-context-diagram](@docs/easy-funds-context-diagram.png)
Container
![easy-funds-container-diagram](@docs/easy-funds-container-diagram.png)
### Swagger
When project is running, available at `http://localhost:8080/swagger-ui.html`
![easy-funds-swagger](@docs/easy-funds-swagger.png)
## Running the project
```shell
$ mvn clean package
$ docker compose up --build
```## Running Unit Tests
```shell
$ mvn test
```## Endpoints
You can do a manual test running `/client/transfer.http` file.
Transfer
```http request
POST http://localhost:8080/transfer
Content-Type: application/json{
"value": 10,
"payer": "1c0a69ff-bf1d-474d-a4ed-a9247e16ba0d",
"payee": "cfcb249c-62c5-41a2-9078-cb210f8c70a2"
}
```## RabbitMQ
To see Exchange, Queue and Messages, while the project is running open `http://localhost:15672`
and insert Username: `root` and Password: `root`.## TODO
- [ ] Observability such as Sentry and Elastic
- [ ] Authentication