This is a REST API that contains endpoints for a bank.
- PostgreSQL as the database
- Go Gin Framework for API development
- Docker for containerization of the application
- AWS EKS and Kubernetes for deployment
The service exposes endpoints that allow the frontend to do the following:
- Create and manage bank accounts, which are composed of owner’s name, balance, and currency.
- Record all balance changes to each of the account. So every time some money is added to or subtracted from the account, an account entry record will be created.
- Perform a money transfer between 2 accounts. This should happen within a transaction, so that either both accounts’ balance are updated successfully or none of them are.
-
Create the bank-network
make network
-
Start postgres container:
make postgres
-
Create simple_bank database:
make createdb
-
Run db migration up all versions:
make migrateup
-
Run db migration up 1 version:
make migrateup1
-
Run db migration down all versions:
make migratedown
-
Run db migration down 1 version:
make migratedown1
-
Run server:
make server
-
Run test:
make test
The
make
commands are specified in the makefile provided in the root directory of the repository.