An application for improving (application and project) skills of your teams by gamification.
It allows teams to self assess their skills and checks if they are reaching a specified ability level. If they reach a new ability level, they will be rewarded with a cool new Team Avatar, Level Rewards (like a virtual belt) and topic specific Badges. TeamDojo also calculates scores, based on specific skill, level and badge ranking/difficulty and ranks the teams by the amount of their achieved scores.
There are two slightly different ways to build and run TeamDojo:
- Development with hot module reloading of the frontend, and
- Production to play around with TeamDojo.
There are also two ways of persistence:
- Embedded database (recommended for development), and
- PostgreSQL (recommended for production).
Either way you choose you always need an OAuth identity provider to run TeamDojo. For local setupt there is a compose file to run a Keycloak service.
First you need the repository:
git clone https://github.com/otto-de/TeamDojo.git
cd TeamDojo/
You need some tools:
- Java 17 (We strongly recommend to use SDKMAN.)
- NodeJS 16 (We strongly recommend to use NVM.)
- GNU Make
- Docker & Docker Compose
- direnv (Optional to source env vars from
.envrc
.)
For installing some NodeJS prerequisites simply run:
shell make prerequisites
Basically everything is done by Gradle build scripts. So simply build and run is done by invoking ./gradlew
(gradle wrapper). You can pass Spring Boot profiles to gradle (e.g. ./gradlew -Pprod
).
As mentioned above the application requires at least the Keycloak service and depending on the Spring Boot profile a PostgreSQL. The Docker Compose files for these services are located in src/main/docker/
.
To type all the commands to spin up the required services and build and run is quite tedious. so we added a Makefile
to provide shorthands. Just type make
to get a list of all available targets.
For development mode you need two terminal windows (we recommend using tmux):
- In the first terminal run
make start-backend
, and- This will also start the Keycloak, which will take a while.
- in the second terminal run
make start-frontend
.- This will open a browser windows locating to http://localhost:9000.
To run TeamDojo in production mode with PostgreSQL simply run:
make start
The application will be available at http://localhost:8080
You can find more information in our developer documentation.
We provide a Liquibase changeset with some demo data (src/main/resources/config/liquibase/initial_demo_data.xml
). If you start the backend with "dev" profile it will be inserted automatically.
If you want to insert the data when running other profiles you must pass the Java option -Dspring.liquibase.contexts=demo
to Spring Boot.
The default admin credentials are: admin/teamdojo, configured in src/main/resources/config/liquibase/users.csv.
The secret for the "Remember me" Cookie is configured in src/main/resources/config/application-prod.yml.
Please change the password and secret in your production environment.