A REST (JSON) API that manages wallets of players in an online casino. The project is written in Go, and uses Gin. It has been built by implementing clean architecture and following the MVC design pattern. This makes the project easy to maintain and extend. For testing, the architecture makes services easy to test.
- Gin - Web framework
- viper - Go configuration library
- go-redis - Type-safe Redis client for Golang
- logrus - Logger
- validator - Go Struct and Field validation
- jwt-go - JSON Web Tokens (JWT)
- uuid - UUID
- bluemonday - HTML sanitizer
- swag - Swagger
- gomock - Mocking framework
- Docker - Containerization platform
- /api/v1 - Base URL for the API
- http://localhost:7612 - PHPMyadmin
- http://localhost:5000/swagger/index.html - API documentation
make develop // run all containers in development mode
make prod // Run all containers in production mode
make mock // Generate mocks for all services
make test // Run all unit tests