- golang
- gRPC
- postgresql
- redis
- minio
- Clone this repo
- Run
go mod downloadto download all the dependencies.
- Copy
.env.templateand paste it in the same directory as.env. Fill in the appropriate values. - Run
make docker. - Run
make serverorairfor hot-reload.
- Copy
docker-compose.qa.template.ymland paste it in the same directory asdocker-compose.qa.yml. Fill in the appropriate values. - In
microservices/authfolder, copystaff.template.jsonand paste it in the same directory asstaff.json. It is the staffs' student id list (givenstaffroles instead ofuser). - Run
make pull-latest-macormake pull-latest-windowsto pull the latest images of other services. - Run
make docker-qa. - Run
make serverorairfor 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