This is the code that we write in the Typelevel Rite of Passage course on Rock the JVM.
This repository contains the application we write in the course: a jobs board for Scala developers. The application features
- user management with role-based access control
- an email system
- user-generated content with Markdown support
- full credit card checkout with Stripe checkout sessions
- various forms of data storage and retrieval (CRUD-style)
You can find a live version of the app here. For a while, some companies actually used it and hired a bunch of students from Rock the JVM.
The application is built with
- Cats Effect for effects
- Cats for functional programming
- Doobie for data storage
- http4s for HTTP server
- other Typelevel libraries for various purposes: Circe, PureConfig, FS2, log4cats, etc
- Java mail for emails
- Stripe for checkout
- Tyrian on the frontend
- have a docker database ready - this means, for dev purposes,
docker-compose upin the root folder - in another terminal
sbt, thenproject server, then~compileto compile the server incrementally as you develop - in the same terminal
runMain com.rockthejvm.jobsboard.Applicationto start the server - in another terminal
sbt,project appand~fastOptJSto compile the frontend - in another terminal (that's 4 in total), go to the
app/directory, runnpm install - still in terminal 4, run
npm run startto start serving the page - go to
http://localhost:1234to see the page
If you have changes to suggest to this repo, either
- submit a GitHub issue
- tell me in the course Q/A forum
- submit a pull request!