- Web Framework : GIN
- Database : PostgreSQL & Redis
- Aauthentication : JWT
- ORM : GORM
- Redis Client : go-redis
- Mail Client : Gomail
- Testing Tools : Testify & Mockery
- Validator : Validator/V10
- Configuration : Viper
- Logger : Zerolog & lumberjack (rolling logger)
- Virtualization : Docker
- Implement Clean Architecture : Controller -> Service -> Repository
Postman Page Link : Click Here
.
├── app
│ ├── cache // redis client
│ ├── database // orm client
│ ├── logger // logger clien
│ ├── mail // mail client
│ ├── router // endpoint management
│ └── main.go
|
├── config // app configuration
├── doc-assets // documentation assets
├── helper // helper function for hashing password, user-agent parser, etc.
├── internal
│ ├── controller // server handler layer
│ ├── handler // internal server error, no method, and no route handler.
│ ├── middleware // jwt middleware layer
│ ├── model
| | ├─ domain // data and table structure for database
| | └─ web // request and response interface
│ ├── repository // responsible for all CRUD operations
| └── service // business logic layer
| ├─ user_service*.go // responsible for account management (sign-up, login, etc)
| ├─ custom_link_*_service*.go // responsible for custom link and analytic logic
| └─ social_media_*_service*.go // responsible for social media link and analytic logic
├─- .env // container level configuration
├── docker-compose.yaml // multi-container configuration
└── Makefile // list of automation commands