- DB Schema : [https://dbdiagram.io/d/Bank-Go-65c363f7ac844320aea4730f]
- DB migrate :
brew install golang-migrate
migrate create -ext sql -dir db/migration -seq add_users
make migrateup
: to migrate the database upmake migratedown
: to migrate the database down - Generate CRUD using sql:
brew install kyleconroy/sqlc/sqlc
sqlc init
make sqlc
- DB CRUD Unit testing
- DB Transaction (store)
- Resolving DB deadlock
- Transaction Isolation Level
- build_test actions workflow
- RESTful HTTP API; createAccount, getAccount, listAccounts
- load config uing viper
- MockDb for testing using STUBS https://github.com/golang/mock
- AccountApi unit test
- createTransfer API
- createTransfer API unit test
- add a user table && its migration
- DB CRUD for the user table + Unit tests
- fix unit tests and api of accounts to adobt the user constrain keys
- Hash password bcrypt
- Create user api
- create user api unit test, solving issue of hashed password by creating a custom matcher
- Implement JWT Token Maker
- Implement Paseto Token Maker
- Implement Authentication middleware and rules on apis
- Implement EntryTx to create an entry and update account's balance
- [] add APIs: for update and delete account.
- [] how config to be used in unit test. This to make the switch condition to choose between JWT and Paseto applicable.
- [] List all entries per account