You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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.
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'.
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.
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'.
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.
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.
Add a slack bot that will send a daily notification of the weekly contribution leaderboard table. (More details to be added for this).
The text was updated successfully, but these errors were encountered:
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
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.
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'.
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.
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'.
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.
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.
Add a slack bot that will send a daily notification of the weekly contribution leaderboard table. (More details to be added for this).
The text was updated successfully, but these errors were encountered: