This is a bank service where we will provide API to fronted for doing things such as:
- 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.
- Docker desktop
- TablePlus
- Golang
- Homebrew
brew install golang-migrate
- Sqlc
brew install sqlc
- Start postgres container:
make postgres
- Create simple_bank database:
make createdb
- Run db migration up all versions:
make migrateup
- Run db migration down all versions:
make migratedown
- Generate SQL CRUD with sqlc:
make sqlc
- Create a new db migration:
migrate create -ext sql -dir db/migration -seq <migration_name>
- Run test:
make test