This is a symbolic project for training and learning GoLang.
The main purpose of the project is to serve as a microservice that provides simple authentication and authorization mechanism. The project is based in event-driven architecture(EDA) and clean architecture principles.
The project provides a REST API for synchronous communication. For asynchronous communication, it utilizes AWS SNS and webhooks.
*. Development mode
In development mode, you need to duplicate .env.dev
file and rename it to .env
. Feel free to change any value in your new .env
file just in case.
# installing dependencies
go mod download
# starting infrastructure dependencies
docker-composer up -D
# starting rest api
go run cmd/rest-api/main.go
# starting events consumer
go run cmd/event-consumer/main.go
# starting webhook schedule
go run cmd/webhook-schedule/main.go
# starting webhook sender
go run cmd/webhook-sender/main.go
# Run all test
go test -coverprofile=coverage.out ./...
# Coverage
go tool cover -html=coverage.out
- To view API endpoints and payloads, access this directory *.
- To see all the events, check this file out.
*. You can use the Rest Client extension in your vscode to test the API. Use this file as a model to configure your vscode settings.