The project backend is written in very straightforward Scala without tricky FP and types acrobatics. If you are an experienced Java developer but don't know Scala, I believe Scala should not become a big barrier.
Frontend is written in TypeScript and React.
For describing backend <----> frontend communication contract (API), we use Protobuf.
We use Nix to install all tools and other dependencies required for development. You don't need to install JVM, Node, Protobuf compiler separately.
- Install Nix
- Install git-lfs
- Add the following content to your
~/.gitconfig:
[filter "lfs"]
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
- Use
make devcommand at the repository root to enter the development environment shell. - Go to
./devenvdirectory and runmake dev-localto start local Pulsar-standalone instance in Docker. - Go to the Protobuf definitions directory
cd ./protoand runmake buildhere. - Go to the server directory
cd ./serverand runsbt, thenrunhere. - Open a second terminal, go to the UI directory
cd ./uiand runmake devhere.
If you're using VSCode, use this snippet to create a new component from a template: https://gist.github.com/visortelle/271627130d7dfcfa44e1f71fc5b6dfaf
Run act to run GitHub Actions job locally.