=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 user 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
| Period | Task
| ------- | ------
| May 6 to May 26 | **Community 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 2 | Design the database models. Dynamically fetch data from Wikipedia users database.
| June 3 to June 9 | Implement the API endpoint for providing the users based on various constraints.
| June 10 to June 16 | Implement dynamically providing views of the data.
| June 17 to June 23 | Write tests to make sure each component works as expected.
| June 24 to June 30 | **Evaluation June 24-28**, Deploy the backend to Toolforge and get it to work.
| July 1 to July 7 | Work on frontend. Design the various pages and dynamically fetch data from backend.
| July 8 to July 14 | Implement frontend for dynamically providing views to the data.
| July 15 to July 21 | Implement functionality to allow for the dynamic creation of more categories.
| July 22 to July 28 | **Evaluation July 22-26**, Deploy the frontend to Toolforge and get it to work.
| July 29 to August 4 | Document the various features. Collect feedback about the portal.
| August 5 to August 11 | Fix the issues as needed based on the feedback collected.
| August 12 to August 19 | Buffer Time.
| August 19 to August 26 | **Final Evaluation**
| Future Work | Continue 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](https://github.com/cltk/cltk). 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.
**Previous contributions to Wikimedia:**
- {T219505}
Some of the other open source projects that I have significantly contributed to are:
- Gitcoin (uses Django):
- https://github.com/gitcoinco/web/pull/2334
- https://github.com/gitcoinco/web/pull/3221
- https://github.com/gitcoinco/web/pull/2548
- https://github.com/gitcoinco/web/pull/3505
- cltk:
- https://github.com/cltk/cltk/pull/597
- Hydrus:
- https://github.com/HTTP-APIs/hydrus/pull/290
- https://github.com/HTTP-APIs/hydrus/pull/287
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.
- https://github.com/usmanmuhd/WritersCorner
- https://github.com/usmanmuhd/BlogCMS