Providing APIs for the frontend to do the following things:
- Create and manage bank accounts.
- Record all balance changes to each of the accounts.
- Perform a money transfer between 2 accounts.
With the purpose of learning different topics regarding Backend Development such as:
- Understanding the DB isolation levels
- Use Docker for local development
- Build RESTful HTTP APIs using Gin. This includes loading app configs, mocking DB unit tests, handling errors, authenticating users, authorizing with JWT and PASETO, and managing refresh token
- Build app with Docker and deploy it to a production Kubernetes cluster on AWS. Also using GitHub Action to automatically build and deploy the image to the EKS cluster
- Build gRPC APIs
- Embedding Swagger as part of the backend service
- Writing logger HTTP middlewares and gRPC interceptors
- Build asynchronous processing with background workers and Redis as its message queue
- Send emails to users via Gmail SMTP server
- Writing unit tests for gRPC services that might involve mocking multiple dependencies at once