SonarQuest is a gamification tool extending SonarQube, that allows developers to get rid of their code quality issues in a playful way by solving quests and adventures, earning rewards for refactoring code smells and optimization.
Quick Start
Install
Start your adventure with your team in 3 steps via Docker:
- Clone this repo in a destination of your choice.
- Run SonarQuest using Docker in the root project folder sonarquest:
docker-compose up
. (This will install the latest Docker images) - We added some initial users to play around with. Open SonarQuest at http://localhost:4200 and login with the following credentials:
Role | Username | Password |
---|---|---|
Admin | admin | test |
Game Master | gm | test |
Developer (Player) | dev | test |
Don't want to use Docker? Check out the Installation Guide in our wiki!
Start the game
- Log in as admin.
- Connect to any reachable SonarQube server and check the connection.
- Get all the projects on SonarQube into SonarQuest and make a single project playable as a "world".
- Assign a game master and players to this world.
- Log in as predefined game master or add a new game master.
- Get all issues aka tasks for the current world.
- Create quests by writing a short story and add tasks to make them solvable.
- (Optionally) create an adventure and add quests to it to support a whole story.
- Get your players to log in (all pre-made avatars have the password test and their username as login) and take on your quests by selecting to fight in a quest and to fight issues in the quests.
- Login in as a game master from time to time to synchronize SonarQuest with the SonarQube project to have SonarQuest pay out rewards to your players!
Have fun!
Interested in getting to know SonarQuest more intense? Check out our GitHub wiki!
Contributing
Interested in joining our adventure of making code refactorings much more fun? We are glad that you are here! We are looking for enthusiasts and pioneers who want to be part of a motivated community, regardless of whether you are designer, an idea generator or - of course - a developer: We welcome you! Check out the Contributing Guide to get started.
Support
You have still open questions? Feel free to open an issue in GitHub. We will answer as fast as possible.
Used frameworks
SonarQuest is a web-based app with an Angular UI application and Spring Boot as backend server.
- Angular (licensed under MIT)
- Angular Material (licensed under MIT)
- Teradata Covalent (licensed under MIT)
- RPG-Awesome (licensed under BSD 2-Clause)
- Node.js
- express.js (licensed under MIT)
- Spring Boot (licensed under Apache License 2.0)
License
This project is licensed under the BSD 3-Clause "New" or "Revised" License - see the LICENSE file for details. The licenses of the reused components of the SonarQuest server can be found in Licenses SonarQuestServer.