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

https://github.com/caard0s0/vanguard-server

Backend Application. Vanguard is a Financial Software for Financial Institutions.
https://github.com/caard0s0/vanguard-server

aws backend docker gin go golang kubernetes postgresql restful-api

Last synced: 8 days ago
JSON representation

Backend Application. Vanguard is a Financial Software for Financial Institutions.

Awesome Lists containing this project

README

          


Build Status


Build Status

 


Vanguard - API Server


A complete RESTful API for Financial Institutions, developed with Go.


Report Bugs
 • 
Actions
 • 
Pull Requests

 

![bank](https://github.com/user-attachments/assets/69e542a3-1b9f-4479-81ea-cea3fa5eb6ed)

A Financial Software specialized in the intermediation of money between savers and those in need of loans, as well as in the custody of that money.

This API was written following SOLID principles and Clean Code guidelines, for better scalability and code maintenance.

Using PostgreSQL as a database ensures durability and consistency in financial records.

The application was deployed on AWS, efficiently orchestrated by Kubernetes. This choice allows for dynamic scalability and simplified container management.

The implementation of automated tests, integrated into the continuous integration (CI) process, ensures code stability at all phases of development.

Additionally, monitoring is a priority. Prometheus and Grafana work together to provide detailed insights into application performance. This proactive approach, through metrics and dashboards, allows a quick response to any anomaly, maintaining system reliability and availability.

 

Built With

[![Tech Tools](https://skillicons.dev/icons?i=go,postgres,docker,aws,kubernetes,githubactions,postman,grafana,prometheus)](https://skillicons.dev)

Table of Contents



  1. Getting Started


  2. Grafana Dashboard

  3. API Documentation

  4. License

  5. Contact

 

Getting Started

To get started, You need to have Go 1.22+ installed on your machine, for more information visit Go Downloads. You also need to have Docker Desktop installed, for more information visit Docker Desktop Install.

OBS: This guide is designed to run this project locally (Local Development), on Linux-based systems.

Installation

1. Clone the repository.
```bash
git clone https://github.com/caard0s0/vanguard-server.git
```

2. Install Golang-Migrate as CLI. for more information visit Golang CLI Documentation.

3. Create an `app.env` file with environment variables.

WARNING: The values ​​below are for testing purposes only, please change them in the future.

```bash
cat > app.env << EOF
DB_DRIVER=postgres
DB_SOURCE=postgresql://root:secret@postgres:5432/bank?sslmode=disable
HTTP_SERVER_ADDRESS=0.0.0.0:80
HTTP_CLIENT_ADDRESS=http://localhost:3000

TOKEN_SYMMETRIC_KEY=12345678901234567890123456789012
ACCESS_TOKEN_DURATION=30m

EMAIL_SENDER_NAME=
EMAIL_SENDER_ADDRESS=
EMAIL_SENDER_PASSWORD=
EOF
```

4. Install GoMock and be able to use the MockGen tool.

* Framework installation.

```bash
go install github.com/golang/mock/mockgen@v1.6.0
```

* add this PATH to your go/bin folder in the `~/.zshrc` file or another Shell.

WARNING: This PATH below is just an example.

```bash
export PATH=$PATH:~/.asdf/installs/golang/1.22.5/packages/bin
```

5. Install SQLC. for more information visit SQLC Documentation.

WARNING: To install and use the Full Application, click on the Link below.

6. Install the Client Side. for more information visit Vanguard - Web Version.

Usage

After completing the installation, you can run the project.

1. Create and run the Containers.

```cmd
docker compose up -d
```

Tests

To be able to run all the tests, follow the command below.

1. Run all the Tests.

```cmd
go test -v -cover ./...
```


Grafana Dashboard

A dashboard created with Grafana to view all the main information about Docker Containers and Requests.

![docker_dashboard](https://github.com/caard0s0/united-atomic-bank-server/assets/95318788/77bb2774-20ff-4d0e-b652-2d9b72be5618)
 
![api_dashboard](https://github.com/caard0s0/united-atomic-bank-server/assets/95318788/dfde683d-24db-4841-a960-89db31114446)


API Documentation

A complete and detailed documentation of the API using Swagger. To view, visit API Documentation.

![swagger_docs](https://github.com/user-attachments/assets/3b62e9d7-efde-47fa-9a92-a9adcf8b0d98)


License

This project is being distributed under the MIT License, see ```LICENSE.txt``` for more information.


Contact

* Software Engineer
* Vinicius Cardoso - Email


↑ back to top