{"id":22018501,"url":"https://github.com/flavienbwk/gitlab-reward-system","last_synced_at":"2026-05-14T20:02:47.372Z","repository":{"id":80814622,"uuid":"222007150","full_name":"flavienbwk/Gitlab-Reward-System","owner":"flavienbwk","description":"A web service which implements a reward system with badges based on statistics using your Gitlab instance API.","archived":false,"fork":false,"pushed_at":"2023-05-01T21:17:15.000Z","size":155,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-14T03:47:38.299Z","etag":null,"topics":["docker","gitlab","reward-service","statistics"],"latest_commit_sha":null,"homepage":null,"language":"TSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flavienbwk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-15T21:36:48.000Z","updated_at":"2020-06-29T09:02:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"3777f7df-204c-4950-a5cd-601b8eecb11b","html_url":"https://github.com/flavienbwk/Gitlab-Reward-System","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/flavienbwk/Gitlab-Reward-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2FGitlab-Reward-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2FGitlab-Reward-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2FGitlab-Reward-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2FGitlab-Reward-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flavienbwk","download_url":"https://codeload.github.com/flavienbwk/Gitlab-Reward-System/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2FGitlab-Reward-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33041204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","gitlab","reward-service","statistics"],"created_at":"2024-11-30T05:12:22.883Z","updated_at":"2026-05-14T20:02:47.351Z","avatar_url":"https://github.com/flavienbwk.png","language":"TSQL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gitlab Reward System (Gitlab RS)\n\n\u003ccenter\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[![Gitlab RS logo](./api/app/static/logo.png)](./api/app/static/logo.png)\n\n\u003c/center\u003e\n\nA web service which implements a reward system with badges based on statistics using your Gitlab instance API.\n\n**This project is under active development, only the documentation is written. Support this project by adding a star !**\n\n## Getting started\n\nDuring the installation of Gitlab RS, you will need to have access to a Gitlab user with **admin access** so you can grab the API key with full privileges.\n\nThis is needed by Gitlab RS because the reward system need to analyze all users activities.\n\n### Configuration\n\nFirst, you will need to generate a Gitlab access token key by visiting `https://\u003cyour-gitlab\u003e/profile/personal_access_tokens`.  \nMake sure to tick all `Scopes` checkboxes and click on `Create personal access token`. It will appear in a message on top : copy it.\n\n_Under construction_\n\n### Run\n\nSimply execute :\n\n```\ndocker-compose up -d\n```\n\nAnd visit [`localhost:10079`](http://localhost:10079) to access the web application\n\n## Create your own badges\n\n_Under construction_\n\n## Badges list\n\n### Currently implemented\n\nNone (under active development).\n\n### To be implemented\n\nPreview | Name | Description | Code name | Properties\n--------|------|-------------|------|-----------\n_None_ | I am a real {company name} engineer ! | I've commited to the codebase in the last 3 months | present | computed, unique\n_None_ | Polyglot 1 | I code in 1 language | polyglot | computed, overlayed\n_None_ | Polyglot 2 | I code in 2 languages | polyglot | computed, overlayed\n_None_ | Polyglot 4 | I code in 4 languages | polyglot | computed, overlayed\n_None_ | Polyglot 6 | I code in 6 languages | polyglot | computed, overlayed\n_None_ | Polyglot 8 | I code in 8 languages ! | polyglot | computed, overlayed\n_None_ | Polyglot 10+ | I code in at least 10 languages ! | polyglot | computed, overlayed\n_None_ | Commit writer | I enjoy writing extensive commit descriptions (\u003e80 characters) | commit-writer | computed, unique\n_None_ | Little star | My repos have been stared at least 1 time ! | star-aficionado | computed, overlayed\n_None_ | Rising star | My repos have been stared at least 10 times ! | star-aficionado | computed, overlayed\n_None_ | Issues whipper | I've closed +10 issues ! | issues-closer | computed, overlayed\n_None_ | Issues hunter | I've closed +25 issues ! | issues-closer | computed, overlayed\n_None_ | Issues sniper | I've closed +50 issues ! | issues-closer | computed, overlayed\n_None_ | Issues killer | I've closed +100 issues ! | issues-closer | computed, overlayed\n_None_ | Issues destroyer | I've closed +200 issues ! | issues-closer | computed, overlayed\n_None_ | PR explorer | I've opened +10 PR ! | pull-requester | computed, overlayed\n_None_ | PR aficionado | I've opened +25 PR ! | pull-requester | computed, overlayed\n_None_ | PR cherif | I've opened +50 PR ! | pull-requester | computed, overlayed\n_None_ | PR prince(ss) | I've opened +100 PR ! | pull-requester | computed, overlayed\n_None_ | Kind of PR | I've opened +200 PR ! | pull-requester | computed, overlayed\n_None_ | Contributor 1  | I've contributed to at least 0.1% of the codebase | contributor | computed, overlayed\n_None_ | Contributor 2  | I've contributed to at least 1% of the codebase | contributor | computed, overlayed\n_None_ | Contributor 3  | I've contributed to at least 3% of the codebase | contributor | computed, overlayed\n_None_ | Contributor 4  | I've contributed to at least 5% of the codebase | contributor | computed, overlayed\n_None_ | Contributor 5  | I've contributed to at least 10% of the codebase | contributor | computed, overlayed\n_None_ | Superstar | My repos have been stared at least 20 times ! | star-aficionado | computed, overlayed\n_None_ | Intern ! | I've once been an intern | contract-type | attributed, cumulative\n_None_ | Apprentice ! | I've once been an apprentice | contract-type | attributed, cumulative\n_None_ | Full-time employee ! | I've once been a full-time employee | contract-type | attributed, cumulative\n\n:information_source: _attributed_ badges are given by a Gitlab RS administrator through the administration interface (`/admin-dashboard`).\n\n:information_source: _overlayed_ badges are badges that cannot be cummulated. The highest will replace the last one earned.\n\n### System \u0026 rules\n\nA CRON task runs every 24 hours (by default) to compute statistics and badges.\n\nIf the badge requires a **percentage** of _something_ : the user reaching the conditions to win the badge keeps it even if he doesn't reach the conditions one other day.\n\n## Philosophy (how Gitlab RS can help your team)\n\nReward systems are used in a lot of companies, such as Google or StackOverflow, and take shape as badges that are accessible publicly from the member's profile.\n\nIt may look like such system only serves the ego of collaborators, but it has a much more useful intent.\n\nA reward system will :\n\n- Make your team member efforts more valorized\n- Improve their skills\n- Strengthen the code base\n\nReward systems are not about ignoring bad behaviour. They are about recognizing and celebrating positive, healthy behavior. \n\nHow can you make sure the system you put into place does this effectively, and encourages your team members to be as efficient as possible ?\n\n### What to consider when creating a reward system\n\n#### 1. Identify the behavior you want to change\n\nMaybe it's your team members inability to follow the optimal Python's coding style or using the continuous integration tools of the team. Maybe it's something else... but pick them !\n\n#### 2. Start a feedback loop\n\nIn your system, make sure that you have a way to measure progress or determine whether your team members are engaging in the desired behavior. If, for instance, you want them to commit regularly, how are you going to ensure they do it ?\n\nAnd when they start to do it consistently, what's the next step ? How can you move forward with this behavior ? Maybe you add specifications in the way they need to commit (extended description, tagging issues in description...). Until they reach all achievments !\n\nEventually pay them a coffee or give them some goodies ;)\n\n#### 3. Stay fun\n\nAdd some funny badges such as \"Jeeez, slow down\" when comitted continuously during 6 hours. So your team enjoy the reward system more than ever !\n\n## Contributors\n\nDo not hesitate to PR your algorithms of badge ideas ! If approved, it will be added to the official Gitlab RS repository along with your Github username !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflavienbwk%2Fgitlab-reward-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflavienbwk%2Fgitlab-reward-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflavienbwk%2Fgitlab-reward-system/lists"}