This is the code that we write in the ZIO Rite of Passage course on Rock the JVM.
This repository contains the application we write in the course: a review-board for companies, in the style of Glassdoor. The application features
- user management
- an email system
- user-generated content
- AI integration
- 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.
The application is built with
- ZIO for effects, tests, config, logging and others
- Tapir for HTTP definitions, with ZIO HTTP as the server
- Quill for data storage
- Flyway for migrations
- Java mail for emails
- Stripe for checkout
- Laminar on the frontend, integrated with ZIO
- have a docker database ready - this means, for dev purposes,
docker-compose up
in the root folder - in another terminal
sbt
, thenproject server
, then~compile
to compile the server incrementally as you develop - in the same terminal
runMain com.rockthejvm.reviewboard.Application
to start the server - in another terminal
sbt
,project app
and~fastOptJS
to 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 start
to start serving the page - go to
http://localhost:1234
to 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!