Coder Social home page Coder Social logo

flavienbwk / gitlab-reward-system Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 155 KB

A web service which implements a reward system with badges based on statistics using your Gitlab instance API.

License: MIT License

TSQL 81.25% Dockerfile 5.00% Python 13.09% Shell 0.67%
gitlab docker reward-service statistics

gitlab-reward-system's Introduction

Gitlab Reward System (Gitlab RS)

License: MIT

Gitlab RS logo

A web service which implements a reward system with badges based on statistics using your Gitlab instance API.

This project is under active development, only the documentation is written. Support this project by adding a star !

Getting started

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

This is needed by Gitlab RS because the reward system need to analyze all users activities.

Configuration

First, you will need to generate a Gitlab access token key by visiting https://<your-gitlab>/profile/personal_access_tokens.
Make sure to tick all Scopes checkboxes and click on Create personal access token. It will appear in a message on top : copy it.

Under construction

Run

Simply execute :

docker-compose up -d

And visit localhost:10079 to access the web application

Create your own badges

Under construction

Badges list

Currently implemented

None (under active development).

To be implemented

Preview Name Description Code name Properties
None I am a real {company name} engineer ! I've commited to the codebase in the last 3 months present computed, unique
None Polyglot 1 I code in 1 language polyglot computed, overlayed
None Polyglot 2 I code in 2 languages polyglot computed, overlayed
None Polyglot 4 I code in 4 languages polyglot computed, overlayed
None Polyglot 6 I code in 6 languages polyglot computed, overlayed
None Polyglot 8 I code in 8 languages ! polyglot computed, overlayed
None Polyglot 10+ I code in at least 10 languages ! polyglot computed, overlayed
None Commit writer I enjoy writing extensive commit descriptions (>80 characters) commit-writer computed, unique
None Little star My repos have been stared at least 1 time ! star-aficionado computed, overlayed
None Rising star My repos have been stared at least 10 times ! star-aficionado computed, overlayed
None Issues whipper I've closed +10 issues ! issues-closer computed, overlayed
None Issues hunter I've closed +25 issues ! issues-closer computed, overlayed
None Issues sniper I've closed +50 issues ! issues-closer computed, overlayed
None Issues killer I've closed +100 issues ! issues-closer computed, overlayed
None Issues destroyer I've closed +200 issues ! issues-closer computed, overlayed
None PR explorer I've opened +10 PR ! pull-requester computed, overlayed
None PR aficionado I've opened +25 PR ! pull-requester computed, overlayed
None PR cherif I've opened +50 PR ! pull-requester computed, overlayed
None PR prince(ss) I've opened +100 PR ! pull-requester computed, overlayed
None Kind of PR I've opened +200 PR ! pull-requester computed, overlayed
None Contributor 1 I've contributed to at least 0.1% of the codebase contributor computed, overlayed
None Contributor 2 I've contributed to at least 1% of the codebase contributor computed, overlayed
None Contributor 3 I've contributed to at least 3% of the codebase contributor computed, overlayed
None Contributor 4 I've contributed to at least 5% of the codebase contributor computed, overlayed
None Contributor 5 I've contributed to at least 10% of the codebase contributor computed, overlayed
None Superstar My repos have been stared at least 20 times ! star-aficionado computed, overlayed
None Intern ! I've once been an intern contract-type attributed, cumulative
None Apprentice ! I've once been an apprentice contract-type attributed, cumulative
None Full-time employee ! I've once been a full-time employee contract-type attributed, cumulative

ℹ️ attributed badges are given by a Gitlab RS administrator through the administration interface (/admin-dashboard).

ℹ️ overlayed badges are badges that cannot be cummulated. The highest will replace the last one earned.

System & rules

A CRON task runs every 24 hours (by default) to compute statistics and badges.

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

Philosophy (how Gitlab RS can help your team)

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

It may look like such system only serves the ego of collaborators, but it has a much more useful intent.

A reward system will :

  • Make your team member efforts more valorized
  • Improve their skills
  • Strengthen the code base

Reward systems are not about ignoring bad behaviour. They are about recognizing and celebrating positive, healthy behavior.

How can you make sure the system you put into place does this effectively, and encourages your team members to be as efficient as possible ?

What to consider when creating a reward system

1. Identify the behavior you want to change

Maybe 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 !

2. Start a feedback loop

In 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 ?

And 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 !

Eventually pay them a coffee or give them some goodies ;)

3. Stay fun

Add some funny badges such as "Jeeez, slow down" when comitted continuously during 6 hours. So your team enjoy the reward system more than ever !

Contributors

Do 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 !

gitlab-reward-system's People

Contributors

flavienbwk avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.