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 startThe 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.
