**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 FRAME | START DATE | END DATE | TASK
| ----- | ----- | ----- | -----
| Community Bonding | 17 May | 7 June | 1. 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 1 | 8 June | 16 July | **Milestones**- 1. Basic Intro 2. Using MediaWiki’s JS module
| Week 1 | 8 June | 14 June | 1(a) Implement the mission of Creating a Basic design
| Week 2 | 15 June | 21 June | 1(b) complete the mission of Creating a Basic design
| Week 3 | 22 June | 27 June | 2(a) Implement the mission of using MediaWiki’s JS module
| Week 4 | 28 June | 4 July | 2(b) complete the mission of using MediaWiki’s JS module
| Week 5 | 5 July | 11 July | 2(c) Add test codes and fix any remaining errors
| FIRST EVALUATION | 12 July | 16 July | Write proper documentation
| Coding Phase 2 | 17 July | 16 August | **Milestones**- 3. Using MediaWiki API 4. Using OOUI (Optional)
| Week 6 | 7 July | 14 July | 3(a) Implement the mission of using MediaWiki API
| Week 7 | 15 July | 21 July | 3(b) Complete mission about Mediawiki API
| Week 8 | 22 July | 27 July | 4(a) Implement the mission of using OOUI
| Week 9 | 28 July | 4 August |4(b) Complete the mission of using OOUI
| Week 10 | 5 August | 11 August | 4(c) Add test codes and fix any remaining errors
| FINAL EVALUATION | 12 August | 16 August | Write proper documentation |
| Post GSoC Period | | | 1. 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).**
* I have contributed to the “Fixup: Vertically centre align ‘services’ section”
https://github.com/harshgoel05/hand-holding/pull/25
* I have contributed to WikiProject Articles for creation/Helper script
as a contributor
https://github.com/WPAFC/afch-rewrite/pull/155
**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:
* UI Mock-up 1
https://drive.google.com/file/d/1J_YZwiqr8o8PUX35CFQwPbHnerONgpbv/view?usp=sharing
* UI Mock-up 2
https://drive.google.com/file/d/1j6oykFdc2qmvEVwK1lQCREsg-FwancUO/view?usp=sharing
* UI Mock-up 3
https://drive.google.com/file/d/1Y9c-8aF80jhghFxXek7LAeNUKZA64jNc/view?usp=sharing
* UI Mock-up 4
https://drive.google.com/file/d/1rWB462Mot4xPHCYAawnAQkrK43fJ-yr7/view?usp=sharing