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: Aditya Chaturvedi
IRC handle: Aditya Chaturvedi
Email: adityachaturvedi2906@gmail.com
Github: https://github.com/Adityachaturvedi2906
User Page: https://www.mediawiki.org/wiki/User:Resultant_edition
Location: Madhya Pradesh, India
Time Zone: GMT+5:30
Typical working hours: 10 AM to 10 PM. (GMT+5:30)

Synopsis

-In Wikimedia, Users can use many programs which are user scripts. These user scripts are written in JavaScript, which enables the users to do many things that they otherwise couldn't. Like it intensifies Documenting, reading, and making changes according to browsers events etc. The contribution towards the development and documentation of UserScripts of MediaWiki is very precise, there are numerous Userscripts/Gadgets available for all the users but it’s all about how users will come to know about that, although MediaWiki has already good documentation on a user script. But not every user is an intermediate or an advanced so this project primarily focuses on newbie developers and existing Wikimedia community members who have a little bit of knowledge about JavaScript. This project will help users to create a Userscript in Wikimedia productively in a fun and interactive manner and to use MediaWiki’s JS module and API with the OOUI library.

Possible Mentors:

@Jayprakash12345 - Jay Prakash
@KCVelaga - Krishna Chaitanya Velaga
@APerson - Enterprisey

Have you contacted your mentors already?

Yes

Abstract:

  • Create ‘Start Page’ for the tour: Create an entry page for the tour with all the information related to the tour and missions.
  • Create a game design for the guided tour: Designing a game for the User Script guided tour to make the user learn about the script in a fun and interactive manner instead of being monotonous
  • Create Missions for the tour:
    • Mission 1: Basic Intro
    • Mission 2: Using MediaWiki’s JS module
    • Mission 3: Using MediaWiki API
    • Mission 4: Using OOUI (Optional)
  • Testing and Bug Fixing: Test each part of the project and fix bugs and errors as they arise.
  • Documenting the project: Document each part of the project as I progress by creating bi-weekly reports and writing blogs after completion of the project to share with others what I have learned.

Implementations:

1. Mission 1:
  • Basic Intro: Give a proper piece of information about Userscript and gadget and give small messages to make sure a user is logged in.
  • The users will be explained interestingly and interactively to import their scripts in their Commom.js file
2. Mission 2:
  • Using MediaWiki JS module: In this mission, users will come to know about using MediaWiki JS Module productively and interactively.
  • The Users will get proper practical knowledge about ResourceLoader and core modules and with this knowledge, they will be made a UserSript by using the concept of the core module
3. Mission 3:
  • Using MediaWiki API: In this mission, the Users will gain the deep and conceptual knowledge of using MediaWiki API in a fun and interactive manner.
  • After acknowledging the concept of API the users will be made something interesting and complicated.
4. Mission 4
  • Using OOUI(optional): In this final mission a User will gain proper knowledge and the benefits of OOUI and user interface visuals, actions and procedures that exploit specific knowledge
  • After acknowledging the OOUI properly the user will be made an interface design creatively and they can also use the OOUI widgets

Deliverables

TIME FRAMESTART DATEEND DATETASK
Community Bonding17 May7 June1. Discussion with mentors for finalizing the idea and deadlines 2. Asking doubts in IRC(Zulip) 3. Stay in touch with Wikimedia community members 4. Setup a unit testing environment of QUnit 5. Study about MediaWiki JS module, MediaWiki API and OOUI in detail
Coding Phase 18 June16 JulyMilestones- 1. Basic Intro 2. Using MediaWiki’s JS module
Week 18 June14 June1(a) Implement the mission of Creating a Basic design
Week 215 June21 June1(b) complete the mission of Creating a Basic design
Week 322 June27 June2(a) Implement the mission of using MediaWiki’s JS module
Week 428 June4 July2(b) complete the mission of using MediaWiki’s JS module
Week 55 July11 July2(c) Add test codes and fix any remaining errors
FIRST EVALUATION12 July16 JulyWrite proper documentation
Coding Phase 217 July16 AugustMilestones- 3. Using MediaWiki API 4. Using OOUI (Optional)
Week 67 July14 July3(a) Implement the mission of using MediaWiki API
Week 715 July21 July3(b) Complete mission about Mediawiki API
Week 822 July27 July4(a) Implement the mission of using OOUI
Week 928 July4 August4(b) Complete the mission of using OOUI
Week 105 August11 August4(c) Add test codes and fix any remaining errors
FINAL EVALUATION12 August16 AugustWrite proper documentation
Post GSoC Period1. Share what I learned so that others can get benefit from what I learned 2. Continue working on Wikimedia New Developers projects. 3. I would love to keep on contributing and give my best for the organization. My major motivation behind this is the contributions I can make after learning new technologies 4. Stay in touch with organization administrators on Zulip.

Participation

  • The best way to communicate is through Email (My email id is adityachaturvedi2906@gmail.com) and in the IRC channel(Zulip) my username is Aditya Chaturvedi.
  • I am planning to publish the source code on GitHub.
  • As I have divided my milestones I will be reporting bi-weekly to my respected mentors.
  • I will discuss with my mentors weekly about the completion of milestones and deadlines to submit it productively.

About Me

  • I am a sophomore, pursuing a Bachelor of vocational studies in Software Development from Indira Gandhi National Tribal University Amarkantak, India.
  • I came to know about GSoC from my friends and GSoC Blogs.
  • I don’t have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program.
  • I am a diligent university student who never failed to meet a project deadline. Aiming to leverage my knowledge of web development and other skills. I am good at finding solutions to any problem that comes my way. I am reliable and can work very well under pressure. Ever since I started working on some projects, I was highly motivated to contribute to society and make this world a better place, through my technical knowledge, skillset and experience. I believe the concept of Wikimedia is really doing good and can do amazingly well in the field of providing free educational content to the world through its various projects, local chapters, and support structures. I also found the community very amazing, technically skilled and helping nature, especially mentors for MediaWiki I will be motivated and will ensure that I commit my maximum time towards this project.

Past Experience

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

  • I have made many projects such as designing the Help desk, static website for appointment booking and non-static website for School.
  • While making these projects I have learned many new technologies Such as HTML, CSS, JavaScript, Jquery and bootstrap etc.
  • The most valuable knowledge which I gained is understanding the audience, every website has its particular audience and according to that, a website should be designed.
  • Next month I am getting a chance to attend an event of KubeCon + CloudNativeCon. The Cloud Native Computing Foundation’s flagship conference gathers adopters and technologists from leading open source and cloud-native communities

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

You must have written a feature or bugfix for a Wikimedia project during the application phase (see the section about microtasks in the application process steps), please link to it here. We give strong preference to candidates who have done so.

  • Micro-task 1: This is a mini-tour of 2 steps which tells about the ‘Search’ feature

https://www.mediawiki.org/wiki/User:Resutant_edition/tour.js
Output: https://drive.google.com/file/d/1PB2oURn6__hl6a5hkK_oqMUIlttqGobu/view?usp=sharing

  • Micro-task 2: In this micro-task, I made a toggle button by which a Wiki page can be turned into dark mode as it will be useful for the users to use Wiki pages in low-light.

https://www.mediawiki.org/wiki/User:Resutant_edition/OOUI-Demo.js
Output: https://drive.google.com/file/d/1tJyLCZpkPyb9fnMs7RVSPcyfujXuzRKF/view?usp=sharing

  • Micro-task 3: In this micro-task, I made a button by which a user can see the number of Yesterdays page viewers

https://www.mediawiki.org/wiki/User:Resutant_edition/API-Demo.js
Output: https://drive.google.com/file/d/1Gyemt3VBAXiBcAuqXADhoxJJfBReWIDN/view?usp=sharing

Relevant computer languages and other technical skills:
  • JavaScript: 4/5
  • HTML: 5/5
  • CSS: 4/5
  • Bootstrap: 4/5
  • Jquery: 4/5
  • C++: 3/5
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 organizations?

I am only applying to Google Summer of Code 2021.

How much time do I have available, and how would I plan to use it?

Since I have holidays during the coding period, I would be able to give 30-35 hours per week to the project.

Other Info:

UI Mock-ups that displays, How a user will complete all the missions in a fun and interactive manner:

Event Timeline

Jayprakash12345 renamed this task from Develop a UserScript/Gadget tutorial on MediaWiki.org similar to Wikipedia:The_Wikipedia_Adventure to GSoC 2021 Proposal: Develop a UserScript/Gadget tutorial on MediaWiki.org similar to Wikipedia:The_Wikipedia_Adventure.Apr 11 2021, 4:31 PM

Hey @RESULTANT_EDITION

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

Please give your valuable feedback

  • Remove it

Create Pop-up messages for providing basic information

  • I don't know what is it.

70% - implementing the missions for the different aspects of the project
15% - solving bugs that arise after implementing the said features
15% - adding tests and proper documentation

  • Remove it as weekly time breakdown is enough.
  1. Writing blogposts after every milestone
  • Remove from community bonding period as you are not going to write every blogpost at once.

Community bonding period

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

Participation

  • Add creating bi-weekly report in Participation

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

Hey, @Jayprakash12345! thank you for the review I'll soon update it can you please check your Zulip I send my micro task link.

Hey, @Jayprakash12345, @APerson, @KCVelaga I have updated the Description, Kindly review it once.

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!

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!

Thank you for your response, I have added the micro-tasks in my proposal which I submitted on the GSoC website but I forgot to add it here. So, can I add it now to this Phabricator task?

Looking forward to hearing from you

@RESULTANT_EDITION 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