Streamfair (STC) Backend microservice: This service will validate user credentials and issue tokens upon successful authentication
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