I am a final year Computer Science and Engineering undergraduate at Shri Mata Vaishno Devi University. As part of the GSoC’18 I worked on community and webservices project to build a gamification system for all the active newcomers at coala.
43e4291bf4a8b6d83b004483d260cf2dfdd0d3ae139d598f40e473d05513f9c6
Copy Hash valueRepository | Link to Commit/s | Description | |
c | coala-bears | View | GitCommitBear: Parse remote with giturlparse |
c | coala | View | Jinja2.py: Add support for ignore comments |
c | cEPs | View | cEP-0020: Add Newcomer metrics and Gamification system |
w | webservices | View | org/cron.py: Use dict.get method to r_json |
w | webservices | View | Add IGitt Cache mechanism |
w | webservices | View | requirements.txt: Use == for installing IGitt |
w | webservices | View | Serialize coala issues on GitHub and GitLab |
w | webservices | View | Implement logging |
w | webservices | View | Add teams to Contributor Model |
I | IGitt | View | Repository: Add filter_merge_requests method |
w | webservices | View | backend/db.sqlite3: Add old database files |
w | webservices | View | org/: Only pass valid usernames to methods |
w | webservices | View | org/cron.py: Fix contributors cron job |
w | webservices | View | Serialize coala mrs on GitHub and GitLab |
c | community | View | data/tests/: Add tests for data app |
c | community | View | test_management_commands.py: Fix webservices error |
c | community | View | data/: Fix import_contributors_data command |
c | community | View | test_models.py: Fix tests |
c | community | View | Get 100% test coverage for the data app |
w | webservices.coala.io | View | Generate a fake api similar to coala’s webservices |
c | community | View | data/: Import IGitt data |
c | community | View | data/: Add url field to Issue and MergeRequest model |
c | community | View | Add gamification app |
w | webservices | View | org/: Use igitt_django models to save igitt data |
w | webservices | View | org/: Make an api to show active newcomers |
i | igitt-django | View | Switch to sqlite3 |
c | community | View | [WIP] gitter/: Messages, Analysis and Import |
w | webservices | View | [WIP] Serialize messages on gitter by newcomers |
This project is about automating the recognition of activities performed by people who join the coala community, and encourage them to progress towards obtaining the role of “Developer” in the community.
This project incorporated a gamification system which allows us to track the progress of newcomers activities and assign some points to each of the activities they do. The newcomers will get some score which will be the sum of all the points they have earned by performing several activities. The score they get will be a deciding factor for the current ‘Level’ of the newcomer and the activities they perform will be a deciding factor for ‘Badges’ they have earned.
coala always tries to be a welcoming organization for newcomers, giving them clear pathways and as much direct assistance as possible. However, it is already known that newcomers face many barriers while attempting to contribute to open source for the first time, and additional barriers while attempting to contribute to projects run by the coala organization. On the other hand, gamification is widely used to engage and motivate people to accomplish tasks and improve their performance.
Thus, the goal of this project is to use gamification to orient and motivate newcomers to overcome onboarding barriers to contribute and engage with coala and its community.
To build the gamification app, there was a need of constant data supply of all the activities newcomers do, i.e. Getting a pull request merge, Creating an issue and sending messages to the gitter channels. The work to achieve the same has been done in the webservices repo. And the output of all the script can be viewed at webservices.coala.io which is a workaround to get a fixed URL for all the APIs until there is the integration of continuous deployment in the webservices.
The second and the important part of my work, from importing the useful newcomers data to building the gamification app has been done in the community repo. And now we have a leaderboard which shows the score, current level and the badges earned by all the active newcomers at coala.
The biggest challenge for me was to design the models of the gamification system and choosing the correct path to implement the process. I almost did the wrong implementation of the process twice but again because of well written cEP and the guidance of my mentor John I had a clear idea of what I have to achieve. So, I did some more thinking and research on Django and get the basic work done. And once the algorithms were in place everything went smoothly with the reviews of my mentors.
1). Integration of continous deployment to the webservices.
2). Use real webservices APIs.
3). The leaderboard on community website is very basic. It could be prettified and improved.
4). Add support of Gitter messages analysis to the gamification app. WIP.