**Name :** Abhishek Chaudhary
**Email :** firstname.lastname@example.org
**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](https://tools.wmflabs.org/) 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)
> Have you contacted your mentors already?
| **Period** | **Task** |
|May 7 to May 26|**Community 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 2| Create 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 9|Feature 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 16| Create an API to get list of administrators. Feature to display list of Admins divided in Groups.|
|June 17 to June 23| Create 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 30|**Phase I evaluation**. Read Toolforge's documentation to learn about hosting a tool on Toolforge. Hosting the current work in Toolforge.|
|July 1 to July 7| Develop an API to get top list of editors of certain task in last 30 days: Administrative actions, Edit reviews.|
|July 8 to July 14| Develop 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 21| Documentation and testing of above modules.|
|July 22 to July 28| **Phase 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 4| Feature 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 11| In 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 18| Feature to export above data in convenient format(CSV / Wikitable). |
|August 19 to August 25| Improvements based on the feedback received from mentors. Manual exhaustive testing and fixing. Writing documentation for final submission. |
|August 26 to September 2|Mentors submit final student evaluations.|
|September 3|**Final 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](https://medium.com/@abhishekism9450) for the same.
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](https://www.iitism.ac.in). 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.
> 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
* Live Link: http://22.214.171.124:8000/home/
* GitHub Link: https://github.com/Abhishekism9450/RecentEditsWebApp