Streamfair (STC) Backend microservice: This service handles operations related to user accounts. It includes creating new accounts, updating account details, and managing user authentication. The service interacts with the Accounts and AccountTypes tables.
Currently working on: Providing API
✔️ = partly done / in progress ✅ = done
- Implement database support: PostgreSQL with PGX Driver ✅
- Design DB Schema: dbdiagramm.io ✅
- Implement CRUD operations for Tables and Junction tables: SQL and SQLC -> Go ✅
- Implement Unit Tests for CRUD operations: 80%+ coverage ✅
- Implement DB Transactions: Go ✔️
- Implement DB Transaction Unit Tests: Tabledriven Tests with Go Routines and Channels ✅
- Take Care of Transactionlocks & Deadlocks ✅
- Transaction Isolation levels & read phenomena ✅
- Implement Github Actions to run automated Tests: Go, PostgreSQL ✅
- Document DB: DBDocs
- Building RESTful HTTP JSON API: Gin + PASETO ✔️
- Loading Configs and Envs: Go + Viper ✅
- Testing HTTP API: Mock DB / mockgen (source) ✔️
- DB Error handling: tags and custom validators ✔️
- Strengthen Unit Tests: Custom gomock matcher
- Implement Login User API: PASETO + Auth Middleware (Gin)
- Middleware: Authentication middleware, authorization rules gin
- Storing sensitive Data: Hashing with Argon2 ✅
- Refactoring: Unifying codebase, improve security of codebase and improve performance of db interactions and api ✔️
- Deploying to production: Docker + Kubernetes + AWS(?)
- Some more Cloud Engineering stuff
- Implement User sessions: refresh tokens
- Implement gRPC API: protobuf
- Implement gRPC Gateway for serving gRPC & HTTP requests
- Document API: ReDocly, Postman or SwaggerUI from go server
- Some more advanced backend stuff
- Implement authorization to protect gRPC API
- Improve logging for gRPC API
- Write HTTP logger middleware: Go
- Async processing with background workers: Asynq + Redis
- Email verification API
- Implement Unit Tests for gRPC API: mockdb + redis
- Unit testing with authentication
- To be updated