Page MenuHomePhabricator

GSoC 2021 Proposal : Develop a UserScript/Gadget tutorial on MediaWiki.org similar to Wikipedia:The_Wikipedia Adventure
Closed, DeclinedPublic

Description

Proposal for https://phabricator.wikimedia.org/T274635

Profile Information

Name : Amritesh Anand
IRC nickname : A. Amritesh
Email : amriteshanand19@gmail.com
Resume : Amritesh Anand
Web Profile : https://github.com/amritesh19
Blog : https://amriteshanand19.medium.com/
Location : Patna, Bihar, India
Time zone : UTC +5:30
Typical working hours : 11 AM to 7 PM
On college days, 5 PM to 11 PM

Synopsis

Users can personalize their experience of browsing Wikipedia by using user scripts. These are programs written in JavaScript, which enable the users to do many things that they otherwise couldn't. These can enhance their reading, editing, and patrolling experience. The JavaScript WikiProject has made an enormous contribution to the development and documentation of user scripts. MediaWiki presents a huge list of user scripts and gadgets ready to be utilized by users. Though MediaWiki has good documentation on using and creating it, many people who are a beginner in Javascript face difficulty. This project will guide users in their way of using and developing user scripts, step by step in an engaging and productive manner. It will show them how to use MediaWiki’s JS module and API with the creativity of OOUI.

Possible Mentor(s) : @Jayprakash12345 @KCVelaga @APerson
Have you contacted your mentors already? Yes

Deliverables
  • Design and draft a 4-unit (missions) narrative. Update the script whenever necessary.
  • Do research and find the suitable game design for this tour and the way how it should be implemented.
  • Work (and seek help) on design and User Interface of the tour.
  • Prototype User Interface using Figma
  • Implement the missions:
    • Mission 1: Basic Intro
    • Mission 2: Using MediaWiki’s JS module
    • Mission 3: Using MediaWiki API
    • Mission 4: Using OOUI
  • Test each unit using QUnit
  • Bug testing and fixing the code whenever needed
  • Integrating the UI and missions
  • Documentation of the Guided Tour
  • Publishing the project in MediaWiki
Missions Overview

Mission 1: Basic Intro

Mission 2: Using MediaWiki’s JS module

Mission 3: Using MediaWiki API

Mission 4: Using OOUI

Timeline

Community Bonding Period (May 17, 2021 - June 7, 2021):

PeriodWeek NoTask
May 17 - May 23Week 1Designing and drafting the flow of narratives of missions.
May 23 - May29Week 2Study more about The Wikipedia Adventure and take inspiration from it.
Study game design and find the suitable one for this tour (and ways to implement it).
May 29 -June 7Week 3Study about the User Interface development. Design the theme and key elements for this tour.
Setup QUnit for unit testing

Coding Period (June 7, 2021 - August 16, 2021) :

PeriodWeek NoTimeline
June 7 -June 13Week 1Start working on the drafted script of Mission 1.
June 13 -June 19Week 2Implementation and bug fixing of Mission 1.
June 19 -June 25Week 3Start working on the drafted script of Mission 2.
June 25 -July 1Week 4Implementation and bug fixing of Mission 2.
July 1 -July 7Week 5Start working on the drafted script of Mission 3.
July 7 -July 12Week 6Implementation and bug fixing of Mission 3.
July 12 -July 16Evaluation IPreparing for evaluation and to resolve any delay in bug fixing
July 17 -July 23Week 7Start working on the drafted script of Mission 4.
July 24 -July 31Week 8Implementation and bug fixing of Mission 4.
August 1 – August 7Week 9Integrating the User Interface and missions.
August 8 – August 16Week 10Updating the project based on community feedback. Improving documentation of the project.

Student Final Evaluation (August 16, 2021 – August 23, 2021):

  • Publication of the Guided tour and its final documentation (after final approval of mentor).
  • Submission of my project.

August 23, 2021 - August 30, 2021:

  • A blog post about the whole journey of GSOC 21 and experience gained at WMF.

August 31, 2021 and later:

  • Celebrations
  • Explore other projects of WMF to contribute to.
  • Participate in future programs as a volunteer and a mentor.
Participation
  • A progress report biweekly to my mentors.
  • Blog post on completion of each major deliverables like after each mission, or after finding suitable game design and UI theme (almost biweekly).
  • I will create a Github repository. After passing tests and bug fixing, I will share the source code using MediaWiki.
  • I will maintain a workboard on Phabricator for the above-mentioned deliverables.
  • Regular communication with my mentors and other community members at WMF.
  • I will be available on Zulip during my working hours and on Gmail on non-working hours.
About Me

My education
I am an undergraduate student, pursuing Bachelor of Technology in Computer Science and Engineering from National Institute of Technology, Agartala. I am in the fourth semester of my eight-semester program.

How did you hear about this program?
I come to know about this program from my seniors.

Will you have any other time commitments, such as school work during the duration of the program?
I have my holidays (post-exam holiday and summer vacation) from 18th May to 26th July (almost 10 weeks). So, I will dedicate my time (around 45-50 hours a week) to this very project without any other commitments. After 26th July, I am having my college but I am dedicated to giving at least 30 hours a week till the project gets completed. I will also try to work out a major portion of the project before 26th July.

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 am only applying to Google Summer of Code 2021.

What does making this project happen mean to you?

  • Although many activities of open-source were going on since my childhood. The very first time I realized about it and WMF when I was doing Specialization on Journalism from Coursera. Contributing to this project would give me a great chance to integrate with the vision of WMF. The phenomenon of collaboration and contribution in WMF is amazing and I want to be part of it.
  • I am very passionate about this project as it will provide me an enormous chance of learning and taking guidance from WMF mentors. It would be the best opportunity for me to showcase and learn new skills.
  • This project will help the newbie developers to use and contribute to user scripts and gadgets, this motivation is enough for me to work on it.
Past Experience

Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them.

  • My team has participated in Hackabull Hackathon, where we build a tool to encounter Cyberbullying. It uses Machine Learning to predict the sentiment of messages. I have made the front-end of this project. Devpost Github
  • I have worked on Exploratory Analysis of Geolocational Data of Patna, which recommends accommodations to immigrants. I have to fetch, clean, analyse and run K Means Clustering on Geolocational data Github
  • I have worked on Codechef Notifier, it’s a chrome extension to notify users about their queued submissions in the contests of Codechef. I learned about the Chrome extension and its APIs. I got to dive deep and learn more about Javascript through this project. Github
  • I have created a portfolio website using React. It is integrated with the Github API. Its frontend is deployed in Netlify and backend in Heroku. Github Website

Describe any open source projects you have contributed to as a user and contributor (include links).

  • Existing CSS does not change background-color for <code> elements. Different snippets are added here each for [data-diff-action='insert'] and [data-diff-action='remove'] in the existing data-diff-action attribute selector.
  • As part of the review with a volunteer UX Writer, suggestions were made to simplify the instructions on several steps of the Section Translation workflow.
Micro Tasks

Task 1

Task 2

Task 3

  • I have created a user script that makes queries using MediaWiki API and shows it using OOUI Custom Widget.
    • It makes queries about the first and last editor of the current page (inspiration from phab:T274635). It also leads to the respective introduction page of the editor.
    • Another query is about the five most viewed pages of MediaWiki and its count. It also leads to the respective page.
    • User:A. Amritesh/API-OOUI-Demo.js
    • Demo video

Event Timeline

Hey @A.Amritesh

Thanks for showing your interest to participate in Google Summer of Code with Wikimedia Foundation! Please make sure to upload a copy of your proposal on Google's program site as well in whatever format it's expected of you, include in it this public proposal of Phabricator before the deadline i.e April 13th. Good luck :)

I have shared the draft of my proposal through Google's program site. Thanks for reminder. @Gopavasanth
Feel free to give feedback.

  • Make some room in Community Bonding Period to setup a unit testing enviroment (Maybe QUnit?) like Twinkle gadget test. Add it in deliverables.

A progress report every week to my mentors.

  • Do it bi-weekly.

I will share my source code using MediaWiki.

  • code to MediaWiki from GitHub

I will maintain a workboard on MetaWiki (or Phabricator) for the above-mentioned deliverables.

  • Only Phabricator

Note: Please give your valuable feedback.

  • Remove it

Make the changes and upload the proposal on the GSoC site.

Thanks @Jayprakash12345. I have made the suggested changes.

GSoC application deadline has passed. If you have submitted a proposal on the GSoC program website, please visit https://phabricator.wikimedia.org/project/view/5104/ and then drag your own proposal from the "Backlog" to the "Proposals Submitted" column on the Phabricator workboard. You can continue making changes to this ticket on Phabricator and have discussions with mentors and community members about the project. But, remember that the decision will not be based on the work you did after but during and before the application period. Note: If you have not contacted your mentor(s) before the deadline and have not contributed a code patch before the application deadline, you are unfortunately not eligible. Thank you!

I have my holidays (post-exam holiday and summer vacation) from 21st May to 26th July (9 weeks). So, I will have my semester exam till the first four days of the Community bonding period.

I had mentioned the tentative date of my engagement (examination) during the Community Bonding period, according to the academic calendar of my college, i.e. till 21st May 2021. As the exam schedule got published, my exam will be over till 17th May 2021, and no any kind of engagement till 26th July 2021. Can I update my proposal here to correct it? (As I will not be able to change it in my submitted proposal on GSoC website.)

That might be a better question for Zulip

That might be a better question for Zulip

My apologies. I will do the same.

@A.Amritesh We are sorry to say that we could not allocate a slot for you this time. Please do not consider the rejection to be an assessment of your proposal. We received over 100 quality applications, and we could only accept 10 students. We were not able to give all applicants a slot that would have deserved one, and these were some very tough decisions to make. Please know that you are still a valued member of our community and we by no means want to exclude you. Many students who we did not accept in 2020 have become Wikimedia maintainers, contractors and even GSoC students and mentors this year!

Your ideas and contributions to our projects are still welcome! As a next step, you could consider finishing up any pending pull requests or inform us that someone has to take them over. Here is the recommended place for you to get started as a newcomer: https://www.mediawiki.org/wiki/New_Developers.

If you would still be eligible for GSoC next year, we look forward to your participation!