Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gamification of the contribution. #8

Open
gkapoor121212 opened this issue Nov 26, 2021 · 0 comments
Open

Gamification of the contribution. #8

gkapoor121212 opened this issue Nov 26, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@gkapoor121212
Copy link
Contributor

User Story

We should have a gamification feature in the contribution tracker. The users should be able to see the contribution leaderboard displaying all the users ranked according to how much they have contributed to open source. All the contributions can be combined on basis of a formula to generate a score and scores can be used to rank the candidates. A slack notification can also be triggered, providing updates on basis of whatever configuration has been done by the administrator.

Implementation

  1. Create a configuration form for the administrator to configure the score for each type of contribution. Eg: Adding Comments: 1 Point, Adding Patch/MR: 10 Points, Adding a new project: 25 Points, etc.

  2. Add a 'Score' paragraph field in the user entity to store the score value, make sure it is hidden in the profile edit form or just a read-only field for all the types of users. It can have subfields such as 'Weekly', 'Monthly' and 'All Time'.

  3. As soon as a contribution is logged in the system, add an additional procedure to calculate the score and store it in the 'Score' field for the respective user.

  4. Create a new view 'Leaderboard' providing information of currently configured points, all the users ranked on basis of score. Add filter for the contribution time range (Weekly, Monthly, and All-Time). As soon as the filter is changed, the sort criteria of view is modified accordingly. In case, it is set to 'Weekly', users should be ranked on basis of a weekly score. The default filter can also be 'Weekly'.

  5. Add a one-time process (Batch or Drush Command) to calculate the points of all the users in the system and test the working of the all-time leaderboard.

  6. Add a process of resetting weekly and monthly scores. These scores should be set to 0 for all users once a week/month ends. Configure appropriate cron jobs for triggering these.

  7. Add a slack bot that will send a daily notification of the weekly contribution leaderboard table. (More details to be added for this).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants