-
Provide API for frontend to do those things:
- Create and manage bank account (Owner, balance, currency)
- Record all balance change (Create entry account for each change)
- Money transfer transaction (Perform money tranfer between 2 accounts consistency within a transaction - Solving Double Booking problem)
-
Demo tech stacks used in application:
- Golang for main langage
- GIN for rest API
- Authentication and authorization using JWT / Paseto
- Unit testing with testify / gomock / default go test
- SQLC for high performance SQL query with auto generate type-safe interfaces to those queries
- Postgres DB
- GoMock for store mocking using in APT testing
- Docker and Docker compose for local development
- CI/CD with Github action
- Start app and db containers:
docker compose up
- Test API
make test
- Stop and remove containers:
docker compose down
This app follow Backend Master class that creatd by TechSchool channel (https://www.youtube.com/channel/UC6MtKoJrZLNELkS96F99eIQ)