Page MenuHomePhabricator

GSoC 2019 Proposal: Build statistics toolset to support WM-HU editor retention grant
Closed, DeclinedPublic


Profile Information

Name : Abhishek Chaudhary
Email :
Location : Dhanbad, India
Typical working hours : 3 pm to 2 am UTC +5:30 (can extend it, if required)


Short summary describing your project

The goal of this project is to improve editor retention in the Hungarian Wikipedia that will require much more detailed statistics than currently available. The aim of this project is to build a contributor statistics portal for the Hungarian Wikipedia that displays statistics and editor lists relevant for the program..Therefore, with this project, we aim to build a tool which will generate useful statistics about a developer in the easiest fashion. The tool will be hosted on Toolforge to make it more accessible.

Implementation of the project:
A web portal (Django WebApp) with the following features:

  • Feature to see statistics (no. of users, no. of articles edited, words added/removed,..) and list of editors (sorted by number of articles edited) in group according to number of edits:
    • Group 1 (no edits)
    • Group 2 (1-10 edits)
    • Group 3 (11-100 edits)
    • Group 4 (100+ edits)
  • Feature to statistics (no. of admins, no. of articles reviewed ,..) and see list of administrators (sorted by number of articles reviewed) in group according to number of reviews:
    • Group 1 (no reviews)
    • Group 2 (1-10 reviews)
    • Group 3 (11-100 reviews)
    • Group 4 (100+ reviews)
  • Feature to see the transitions of users and admins between the groups in last 30 days (by calculating statistics of last 30 days and last 60 days.)
  • Feature to see top lists of editors who perform a certain task (e.g. administrative actions, edit reviews, template edits) in last 30 days plus ratio of the total amount of tasks they perform in last 30 days.
  • Feature to see lists of editors who are potential targets for intervention:
    • transitioning from one group to another in last 30 days.
    • recently registered editors who have not been welcomed yet
    • editors who have recently stopped participating (no activity in last 30 days)
    • made some achievement and no one followed up yet (ex. recently reached their 1000th edit and not congratulated yet)
  • Feature to export above data in convenient format (CSV/Wikitable)
  • Relevant information related to architecture:
    • The portal will be hosted on Toolforge
    • It will use the data from the replica of the wiki database and will cache the results using Django’s Cache Framework

Possible Mentor(s)

@Tgr @Samat

Have you contacted your mentors already?



May 7 to May 26Community bonding period. Communicate and bond with mentors. Working on the current prototype to enhance more UI. Getting familiar with other task i.e. SQL (another prototype).
May 27 to June 2Create an API to get list of editors (no. of users, no. of articles edited, words added/removed,). Display results in front-end.
June 3 to June 9Feature to display the statistics about the editors (no. of edits, no. of users). Feature to get statistics and list of editors for different groups.
June 10 to June 16Create an API to get list of administrators. Feature to display list of Admins divided in Groups.
June 17 to June 23Create an API to get the transitions of users in last 30 days. Create an API to get the transitions of admins in last 30 days. Display both results in front-end.
June 24 to June 30Phase I evaluation. Read Toolforge's documentation to learn about hosting a tool on Toolforge. Hosting the current work in Toolforge.
July 1 to July 7Develop an API to get top list of editors of certain task in last 30 days: Administrative actions, Edit reviews.
July 8 to July 14Develop an API to get top list of editors of certain task in last 30 days: Template edits. Display above results in front-end.
July 15 to July 21Documentation and testing of above modules.
July 22 to July 28Phase II evaluation. Deploy the WebApp in Toolforge and start testing and to enhance UI simultaneously. Improvements based on the feedback received from mentors.
July 29 to August 4Feature to see list of editors who are potential targets for intervention. Create an API to get transitions from one group to another in last 30 days. Feature to get recently registered editors who have not been welcomed yet.
5 August to August 11In continuation to Intervention features: Feature to get those editors who have stopped participating(no activity). Feature to congratulate those editors who have made achievements(1000th edits).
August 12 to August 18Feature to export above data in convenient format(CSV / Wikitable).
August 19 to August 25Improvements based on the feedback received from mentors. Manual exhaustive testing and fixing. Writing documentation for final submission.
August 26 to September 2Mentors submit final student evaluations.
September 3Final results of Google Summer of Code 2019 announced


Describe how you plan to communicate progress and ask for help, where you plan to publish your source code, etc

  • I'll be using Django Framework and Python as scripting language.
  • I'll be active on hangouts during my working hours.
  • I'll be writing blogs related to the project to discuss the overall progress, experience, and learning during the internship. I plan to use medium for the same.

About Me

Tell us about a few:

Your education (completed or in progress)

I'm a final-year undergraduate student, pursuing Bachelor of Technology at Indian Institute of Technology(ISM), Dhanbad. I'll be graduating in May 2019.

How did you hear about this program?

I got to know about GSoC last year from my college seniors.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

I have no other commitments this summer. So I'll be able to give 40 hours or more per week. I am ready to commit extra time if needed in order to finish up the goals of the project. My summer break starts from 7th May, so I can start working full time from that day on. I'll not be taking any vacations.

We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

I'm applying only for the GSoC with Wikimedia Foundation.

What does excites you about this project?

The kind of exposure and experience a platform like this would provide me is a huge reason for me to want to be a part of it. I find nothing more exciting than working for a company like Google with a goal as impactful as this one. I sincerely love the goal of Wikimedia Foundation "Global movement whose mission is to bring free educational content to the world” and would be more than happy to work towards it.

Past Experience

Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them. Describe any open source projects you have contributed to as a user and contributor (include links).

I’ve been doing development since my third year at the college. My first project was to Implement Cryptography Algorithms of encryption and decryption. After that, I developed some websites for my learning purpose. Apart from the several prototypes , I had some projects which require skills ranging from server-end development (Django) to database management (MySQL). I use git and GitHub every day, and I am well acquainted with using them for version control.

Prototype of project

I have made a small prototype for the same.

  • Created an API to get the toplist of users (based on number of articles edited)
  • Used Mediawiki Recent changes API to get recent 500 edits
  • Displayed the toplist in a table on a web page (Users and numbers of Articles Edited ).
  • Hosted it live in DigitalOcean Server.

TechStack: Django framework, Python , HTML

Event Timeline

If you would like us to consider your proposal for review, please move it to the submitted column on Google-Summer-of-Code (2019) board.

(look for next steps in the email you'll receive shortly with an option to request for a debrief on why your proposal was not accepted)