Learning material

August 17, 2023 ยท View on GitHub

These are the tools used by the template, you don't need to master them all but being familiar with them definitely helps:

  • Scala, we use Scala 2.13 because it has great tooling support, we'll eventually upgrade to Scala 3.
  • Scala.js powers the frontend side.
  • Scalablytyped generates the Scala facades to interact with JavaScript libraries by converting TypeScript definitions to Scala.js facades.
  • yarn (v1) as the JavaScript package manager.
  • React as the view library.
  • Slinky being the Scala wrapper for React.
  • Webpack to bundle the web apps.
  • Scalajs bundler being the Scala wrapper for Webpack.
  • Material UI v3 as the Material UI framework on top of React (hoping to upgrade to v5 when Scalablytyped supports it).
  • Play Framework as the backend framework, used for the REST API.
  • sttp as the REST API client.
  • react-router is the frontend routing library.
  • play-json is the JSON library.
  • ansible as the tool for deploying everything to a VM.
  • nginx as the reverse proxy for handling the internet traffic, as well as the authentication mechanism for admin endpoints.
  • GitHub actions integration so that you have a way to get every commit tested.