- golang
- gRPC
- postgresql
- redis
- minio
- Clone this repo
- Run
go mod download
to download all the dependencies.
- Copy
.env.template
and paste it in the same directory as.env
. Fill in the appropriate values. - Run
make docker
. - Run
make server
orair
for hot-reload.
- Copy
docker-compose.qa.template.yml
and paste it in the same directory asdocker-compose.qa.yml
. Fill in the appropriate values. - In
microservices/auth
folder, copystaff.template.json
and paste it in the same directory asstaff.json
. It is the staffs' student id list (givenstaff
roles instead ofuser
). - Run
make pull-latest-mac
ormake pull-latest-windows
to pull the latest images of other services. - Run
make docker-qa
. - Run
make server
orair
for hot-reload.
- Run
make test
When run locally, the gateway url will be available at localhost:3001
.
- Swagger UI:
localhost:3001/api/v1/docs/index.html#/
- Grafana:
localhost:3006
(username: admin, password: 1234) - Prometheus:
localhost:9090
- Gateway's metrics endpoint:
localhost:3001/metrics
- gateway: Routing and request handling
- auth: Authentication and user service
- backend: Group, Baan selection and Stamp, Pin business logic
- checkin: Checkin for events service
- store: Object storage service for user profile pictures
- model: SQL table schema and models
- proto: Protobuf files generator
- go-proto: Generated protobuf files for golang
- frontend: Frontend web application