The backend is written in Scala, using Scala Play and Akka streams, communicating to the frontend through WebSockets.
The frontend is written in Vue, using Vuetify for a Material look.
To run the app, clone the repository, then run docker-compose using
docker-compose up
Alternatively, you can run the frontend and backend separately,
cd backend
sbt run
cd frontend
npm install
npm run serve
Check out the tutorial.
Our design rationale is documented here.