Exam project for Web and Software Architecture course, year 2023/2024.
Structure from Fantastic coffee (decaffeinated):
cmd/
contains all executables; Go programs here should only do "executable-stuff", like reading options from the CLI/env, etc.cmd/healthcheck
is an example of a daemon for checking the health of servers daemons; useful when the hypervisor is not providing HTTP readiness/liveness probes (e.g., Docker engine)cmd/webapi
contains an example of a web API server daemon
demo/
contains a demo config filedoc/
contains the documentation (usually, for APIs, this means an OpenAPI file)service/
has all packages for implementing project-specific functionalitiesservice/api
contains an example of an API serverservice/globaltime
contains a wrapper package fortime.Time
(useful in unit testing)
vendor/
is managed by Go, and contains a copy of all dependencieswebui/
is an example of a web frontend in Vue.js; it includes:- Bootstrap JavaScript framework
- a customized version of "Bootstrap dashboard" template
- feather icons as SVG
- Go code for release embedding
Backend
docker build -t wasaphoto-backend:latest -f Dockerfile.backend .
Frontend
docker build -t wasaphoto-frontend:latest -f Dockerfile.frontend .
Backend
docker run -it --rm -p 3000:3000 wasaphoto-backend:latest
Frontend
docker run -it --rm -p 8080:80 wasaphoto-frontend:latest