Name: Sachin
IRC nickname on Freenode: Sachin Thakan
Location (country or state): Haryana, India
Time Zone: (UTC+5.30)
Typical working hours: 8 AM - 9 PM
===Synopsis
**Project Idea** - [[https://phabricator.wikimedia.org/T274635|idea]]
- User scripts are javascript programs written by users which can add additional features to the page user using or editing on Wikimedia.
- Aim here is to create a Guided Tour very similar to [[https://en.wikipedia.org/wiki/Wikipedia:The_Wikipedia_Adventure|The_Wikipedia_Adventure]]
- MediaWiki provides Mediawiki's JS modules, Mediawiki's API's, OOUI that allows high customization of the wiki pages.
- Mission 1: Basic Intro to deploying user scripts
- Mission 2: Writing user scripts using MediaWiki's JS module
- Mission 3: Writing user scripts using MediaWiki API
- Mission 4: Writing user scripts using OOUI (Optional)
- Possible Mentor(s)
# @Jayprakash12345
# @KCVelaga
# @APerson
- Have you contacted your mentors already?
**Yes**
===Deliverables
Following are the main parts of each mission:
1. Basic Intro to the user script
- This will involve a demonstration of the manipulations of the page we can do using scripts.
- Showing the right path to make changes (like changes in common.js)
- Examples of some interesting user scripts like finding read time for a page, changing background color with a single click, etc.
2. Using JS modules available in MediaWiki in our scripts
- Demonstration of the main JS modules like mw.config, mw.hook, and mw.html and changes associated with them
3. Using MediaWiki API
4. Using OOUI modules along with available gadgets
===TimeLine
**Community Bonding Period**
| Date | Tasks |
| May 17, 2021 - May 24, 2021 | I will utilize this period to improve my command of JavaScript and JQuery. Also, I will understand more about the JS Modules on MediaWiki, API's and OOUI Module and their application related to my project |
|May 25, 2021 - June 7, 2021 | Here I will learn about testing of the patches and tools used to do the same, also I will interact a lot with my mentors and my other students in the community and will try to learn a lot from them |
** Coding Period **
| June 7, June 16 | Work on Basic Intro design, which will include making a basic prototype introducing the user to User-Script. The task will be to code the template for that basic design, messages, and CSS for the same|
| June 17, June 25 | This week we will debug some code from last week and will work on JS module intro to the user and use cases for the same |
| June 26, July 2| This week we will collect work from the last two weeks, document it properly, test thoroughly, debug that work and will start implementing 3rd mission|
| July 3, July 12| This week will go into the design and coding of the third mission and its documentation and testing |
| July 13, July 16 | **First Evaluation: will take a lot of feedback from my mentor and will try to improve on any aspect if found lagging** |
| July 17, July 27 | This week, demonstration for OOUI modules along with useful Widgets will be coded|
| July 27, August 7| This week will again be a summary week with documentation of earlier work and debugging for the same|
| August 8, August 15| Will try to assemble all the four mission well, and do a lot of testing |
| August 16, August 23| Final Documentation and testing|
|August 24, August 31| **Final Evaluation**|
|August 31 | **Results**|
===Participation
- I will be available anytime through Zulip during working hours
- I will be available through the mail during off-work hours
- I will keep track of my progress through my personal Journal
===Time Commitment
- ** During Phase 1 ** -I will be able to devote as high as 50 hours per week.
- ** August 1 onwards ** - due to university classes will be able to devote 30-35 hours per week (That's why I am covering only the 4th mission in the second phase)
===About Me
- I am A 3rd year UG student at IIT Kanpur
- I have been studying Aerospace Engineering along with a deep interest in Competitive programming and Web-app development
- I came to know about the open-source in my second year from my friends and seniors, subsequently about the GSoC and other open-source programs
**What does making this project happen to mean to you?**
- This is my first major involvement in open-source and it means a lot to me since it will set me for a further long journey in open-source development. Apart from that, I am always excited about doing something that may impact a lot of people around me, and I consider WikiMedia as the best platform for such a deed.
==Past Experience
- Proficient in C/C++, Python, Matlab and familiar with HTML, CSS, JS, Node.js, Express.js
**Project 1. Web Application Development and Deployment on cloud server**
- Created an API based web application using HTML, CSS, Node.js, Express and deployed it on AWS EC2 server
- Learned technologies including Cache management, Elastic IP load balancer, Virtual Hosting through Apache2, DNS configuration [[https://github.com/thakan25/Movie-Searcher/tree/master/jsCodes|Link]]
** Project 2. Connect-4 game using Minimax Search algorithms and Monte-Carlo Simulation**
- Implemented Minimax Algorithm on Connect 4 game to make an intelligent move against a human player
- Designed Monte-Carlo Simulation as a competitor to Minimax Algorithm to demonstrate its limits without pruning [[https://github.com/thakan25/connect4|Link]]
- Skills learned/implemented: Python, Minimax Search Algorithm, Monte-Carlo Simulations
- 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.
Yes, I have worked on Microtasks available under this project,
# **Microtask 1**
- Installed MediaWiki on my system
- Understood the working of Guided tours on a pages
# **Microtask 2**
- Developed user scripts to add some interesting feature to my MediaWiki page
- All scripts are available under my User page in User:BhalleRam/common.js
===Any Other Info
Add any other relevant information such as UI mockups, references to related projects, a link to your proof of concept code, etc