programme.lv is a modern latvian programming education platform.
The frontend is served by a stateless next.js service. The backend is written in go and consists mainly of the controller and the scheduler. The controller routes incoming requests and communicates with the postgres database. The scheduler publishes jobs to workers.
Communication between the frontend and backend is done via REST API. Communication between the scheduler and the worker is done via gRPC and defined in the protofiles.
Live updates to frontend users will be supplied using websockets.
sudo caddy run --config ./caddy.conf --adapter caddyfile
cd website
yarn install
yarn run dev
Besides having go installed an .env file should be located in the backend folder and contain db_conn_string.
cd backend
go run scripts/migration/migrate.go
go run .
cd backend
cd worker
go run .