Page MenuHomePhabricator

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

Description

Profile Information

Name: Muhammad Usman
IRC nickname on Freenode: muhdusman
Email: me@usmanmuhd.com / muhdusman98@gmail.com
Webpage: https://usmanmuhd.com
GitHub: https://github.com/usmanmuhd
Location: Bangalore, India
Typical working hours: 3 AM to 3 PM GMT. Will be available anytime on prior notice.
Timezone: +5:30 (IST)

Synopsis

The project is aimed at building a statistics portal for the Hungarian Wikipedia with the following objectives:

  • Display statistics for contributors and editors.
  • Provide a funnel view of Hungarian Wikipedia community under the following categories:
    • Users with m to n number of edits.
    • Users with m edits in last n days.
    • User who have done more than k reviews in last n days.
    • Also provide an easy and abstracted way for an administrator to add more such categories.
  • Provide more details of each group such as number of users, transition of a users between various groups and the trends for these transitions.
  • Provide a list of users who can potentially transition from one group to another, users who have made some achievement yet have not been congratulated, recently joined users who have not been welcomed and the users who have had negative experience.
  • Provides the list of users who perform tasks such as administrative tasks, review edits and template edits.
  • Provide the list of users who started editing in a particular month or year. Also provide a list of users who were actively participating in a given time frame.

Architecture:

  • REST API to expose each information.
  • Implement the backend in Flask or Django framework.
  • Implement the frontend in VueJS or any JS framework as recommended by the mentors.
  • Provide ability to export data in CSV or wikitable.
  • Provide support for internationalization.
  • Host the tool on Toolforge.
  • Run a daemon process that fetches data in certain intervals of time and stores in the local database.

Mentors: @Tgr @Samat
Have you contacted your mentors already? Yes

Timeline

PeriodTask
May 6 to May 26Community Bonding Period. Discuss the implementation details and research on the UI/UX. Create initial design mock up. Understand the various details of Hungarian Wikipedia and the working of it. Start the initial project repository and upload the various designs. Split the whole project into smaller todos. Understand how Toolforge works and get the necessary access.
May 27 to June 2Design the database models. Dynamically fetch data from Wikipedia users database.
June 3 to June 9Implement the API endpoint for providing the users based on various constraints.
June 10 to June 16Implement dynamically providing views of the data.
June 17 to June 23Write tests to make sure each component works as expected.
June 24 to June 30Evaluation June 24-28, Deploy the backend to Toolforge and get it to work.
July 1 to July 7Work on frontend. Design the various pages and dynamically fetch data from backend.
July 8 to July 14Implement frontend for dynamic views of the data.
July 15 to July 21Implement functionality to allow for the dynamic creation of more categories.
July 22 to July 28Evaluation July 22-26, Deploy the frontend to Toolforge and get it to work.
July 29 to August 4Document the various features. Collect feedback about the portal.
August 5 to August 11Fix the issues as needed based on the feedback collected.
August 12 to August 19Bug fixes and finalisation.
August 19 to August 26Final Evaluation
Future WorkContinue to work on bugs. Mentor students in GCI and GSoC.

Note: This is a tentative timeline and will be adjusted in consultation with the mentor.

Deliverables

  • Contributor statistics portal for the Hungarian Wikipedia
  • Documentation and unit tests.
  • Deploy to production.

Participation

  • Will be working around 40 hours each week.
  • Work on my repository on GitHub which can be moved to gerrit if needed.
  • Available on IRC during my working hours.
  • Available on Email outside working hours.
  • Update the status of the issues being worked upon as a comment in Phabricator.
  • Publish a blog once every two weeks.

About Me

I am a pre-final year undergraduate student, pursuing Bachelor of Technology in Computer Science and Engineering from PES University, Bangalore, India. I have been contributing to open source since August 2017. My first big contribution to open source was adding Kannada Language support to cltk project. Since then I have made numerous contributions to various open source projects. I have developed a keen interest in working on open source projects. It gives me immense pleasure to work on real world issues, solve them and see my code working perfectly in production.

I first heard about GSoC last year but could not apply as my exams were overlapping with the program. This time I have no other commitments during the duration of the program. I hope this program will provide me a great chance to delve into bigger open source projects and provide me exposure to the open source community.

I am very much inspired by the mission of the Wikimedia Foundation. It is something I very much feel myself and would like to make it happen. This project would give me a chance to improve on the amount and quality of knowledge which is present on Wikipedia. This will go a long way in helping everyone.

Past Experience

I have experience with working on Python, JavaScript, Java, HTML and CSS along with other technology stacks as well. I have worked with MySQL, PostgreSQL and MongoDB in database technologies. I have used git for all personal and open source projects.

Microtasks completed:

Previous contributions to Wikimedia:

Some of the other open source projects that I have significantly contributed to are:

All my other open source contributions and personal projects are available on https://github.com/usmanmuhd.

Any Other Info

I also have a good amount of experience with web development using Flask and Django. I have built Blog CMS using both the frameworks. The code is available on GitHub.

Event Timeline

@Tgr @Samat @srishakatux Could you please review it so that I can submit it soon?
As it is a new project, I have added links to my previous open source projects to show my ability to work.

@Tgr The final submission is today, so shall I ahead and submit this? or should there by any changes?

Thanks for applying!

Login and admin page won't be needed as all data is public anyway and does not really need to be managed.

If you can find the time before the deadline, doing a small related coding task would be useful: implement something from the requirements, or something similar, on the query service Quarry. E.g. show the list of editors who made the most edits in the project ("Wikipedia") namespace in the last 30 days and are not in the bot user group.
See the database layout and Quarry's description for more information.

Thanks for the review. I will change those parts accordingly.

Which db should I use for the getting the edits?

Usmanmuhd updated the task description. (Show Details)

@Tgr Added 2 coding tasks. Will go ahead and submit the proposal.

Tgr renamed this task from GSoC Proposal 2019: Build statistics toolset to support WM-HU editor retention grant to GSoC 2019 Proposal: Build statistics toolset to support WM-HU editor retention grant.Apr 11 2019, 5:31 PM

(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)