==Profile==
**Name** : Diksha Gupta
**Email** : guptadiksha534@gmail.com
**IRC nick** : diksha
**Github** : https://github.com/guptadiksha307
**Location** : New Delhi, India
**Time zone** : UTC +5:30
**Typical Working hours** : 4:00 pm to 3:00 am (UTC +5:30)
==Synopsis==
The [[ https://www.mediawiki.org/wiki/API:Main_page | MediaWiki action API ]] is a web service that allows access to some wiki-features like authentication, page operations, and search. It can provide meta information about the wiki and the logged-in user.
The project aims to improve the documentation of 20 top 100 most viewed MediaWiki Action API pages on-wiki by:
- Re-writing it to follow this template [[https://www.mediawiki.org/wiki/API:Documentation_template | template]]
- Adding code samples to demonstrate the use of the API modules.
- Developing a demo app based on some of the modules and creating a tutorial to explain its implementation.
**Mentors**: Brenda Jerop @jeropbrenda
==Experience + Contribution made for the project==
The Wikimedia Foundation empowers and engages people around the world to develop educational content in the public domain, and to spread it effectively and globally.
As an Outreachy applicant, I have been active on Phabricator and I started working and interacting with Wikimedia developers from 1st October 2019. The positive responses from them helped me to know that it would be easy to be a part of this team and contribute to the best of my potential and learn more.
I found the Wikimedia's project- Documentation improvements to the ~20 top 100 most viewed MediaWiki Action API pages on-wiki really interesting. The goal of this project was to improve documentation of ~20 top 100 most viewed MediaWiki Action API pages on-wiki using the Documentation template. For this project, it was important for me to have basic knowledge of javascript, python and PHP programming languages and be familiar with tools like Github and Phabricator. We were provided some minor tasks. While working on my initial contributions, I communicated with mentors of this project on Zulip, asked for help and suggestions. Because of their guidance and support I was able to contribute to this project.
* https://github.com/wikimedia/mediawiki-api-demos/pull/180 - I have contributed sample codes in Python, Javascript and PHP programming languages for the API: Alldeletedrevisions page. The PR is merged.
https://www.mediawiki.org/wiki/API:Alldeletedrevisions - This is the improved MediaWiki Action API page according to the Documentation template provided.
* https://phabricator.wikimedia.org/T235395 - The task was to design a high-level documentation page that describes the various options available for retrieving page content via the API, with examples, and either link off to more specific documentation or transcludes such documentation within the page.
https://www.mediawiki.org/wiki/API:Get_the_contents_of_a_page - This is the page which I created in the API namespace that describes all the ways through which we can get the retrieved content of a page via MediaAction APIs. This task helped me to learn about most of the MediaWiki Action APIs and their working. The page is being reviewed by the mentor.
* https://phabricator.wikimedia.org/T58860- The task is to improve documentation of API's "dir" parameter. I'm currently working on this task.
==Timeline==
**5th November - 25th November**
- Set up installations and Gerrit access (for code review).
- Continue working on a task- https://phabricator.wikimedia.org/T58860.
- Brush up on my PHP and MediawikiJS programming language skills.
**26th November - 3rd December**
- **Community bonding period** - implement all the guidelines on the [[https://www.mediawiki.org/wiki/Outreachy/Participants#Community_bonding_period | MediaWiki Outreachy/Participants#Community_bonding_period page]]
**Week 1(3rd December- 10th December)**
- Create a list of top 50-60 unimproved pages and group similar pages together using [[ https://tools.wmflabs.org/massviews/?platform=all-access&agent=user&source=category&target=https%3A%2F%2Fmediawiki.org%2Fwiki%2FCategory%3AMediaWiki_action_API&range=latest- 20&subjectpage=0&subcategories=1&sort=views&direction=1&view=list | Massviews Analysis ]]
- Continue working on the project – Improve documentation of API's "dir" parameter.
**Week 2(11th December- 18th December)**
- Improve the documentation of another 3 API pages and submit the pull request for their sample codes.
- Set up the installation of some extensions and try to improve their documentation.
- Submit a patch for the project
**Week 3(19th December- 26th December)**
- Improve the documentation of another 3 API pages and submit the pull request for their sample codes.
- Start working on task 2- https://phabricator.wikimedia.org/T235151.
**Week 4( 27th December-2nd January)**
- Improve the documentation of another 3 API pages and submit the pull request for their sample codes.
- Submit patch for review for task2.
**Week5( 3rd January-10th January)**
- Improve the documentation of another 3 API pages and submit the pull request for their sample codes.
- Start working on Overview pages.
**Week6+week7( 11th January- 25th January)**
- Improve the documentation of another 5-6 API pages and submit the pull request for their sample codes.
- Improve MediawikiJS programming language skills.
- Finalize an Overview page.
**Week 7 + week 8(26th January-9th February)**
- Improve documentation of remaining API pages and submit pull requests for their sample codes.
- Write sample code in MediaWiki JS to get a user's watchlist feed as explained in https://github.com/wikimedia/mediawiki-api-demos/issues/169
- Submit a pull request for the above sample code.
**Week 9(10th February- 17th February)**
- Start working on demo apps and Create a draft for the tutorial of the demo app.
**Week 10(18th February- 25th February)**
- Complete work on tutorial of demo apps and sent them for review.
**Week 11(25th February-3rd March)**
- Add the tutorial to the main namespace
- Finalize, review, organize, and document any necessary changes.
**Other deliverables during the internship**
- Blog posts on my progress every week.
- Blog posts on my experience with Wikimedia Foundation (WMF) and about my ongoing projects at least once every
two weeks.
- Regular communication with my mentors and other community members.
==Participation==
- I will use Phabricator for managing bugs and subtasks.
- I will be available in Gmail to be contacted when needed in the non-working hours.
- I will work on a separate branch on git and upload code to the forked repo almost on a daily basis. I will create pull requests as and when a complete feature is done.
- I will communicate with my mentors and ask for help on the project's communication channel - [[ https://wikimedia.zulipchat.com/#narrow/stream/208145-outreachy19/topic/Phab.20T232816.20API.20documentation.20improvements | Phab:T2323816 API documentation improvements]] on zulip.
==About me==
I graduated from [[ http://dtu.ac.in/ | Delhi Technological University, New Delhi, India ]] this year only with a degree in Bachelor of Technology in Electronics and Communication Engineering. I am a patient learner and have huge interest in Data Science. In my College days, I have participated in many Techweeks and Techfests. As an IEEE society member, I used to teach Web Development to my college and other college students as well. To me dedication to one's work is the primary ingredient of satisfaction.
This is the first time that I have got an opportunity to contribute to the free and open-source software through Outreachy. Earlier I have interacted with many open source developers and participated in many open source events too like HacktoberFest. I started working on Github and git because GitHub is the most popular platform for open source collaboration. since I have made some contributions to the Wikimedia projects, now I know how to contribute to the open source and looking forward to contributing to projects by submitting issues and contributing code.
==Past experience==
I'm a Data scientist. I have experience in working with C++, Python, HTML, CSS and Machine Learning among others. Among databases I have mostly worked on mysql. Among OS I mostly use Windows10 but I like working in Ubuntu as well.
==Relevant Projects==
* https://github.com/guptadiksha307/python_project- Here are some of the Python projects which I have worked on. These projects require basic knowledge of APIs, Javascript, JQuery, HTML and CSS. In the project- The distance between two cities, I have created a professional app for calculating traveling distances between cities using Google Maps API. Through this app, I tried to calculate the driving distance and the duration and showed this on the map.
* I have also built a Web Scraper that scrapes the information about books from the following website - http://books.toscrape.com/ and added the retrieved data in a CSV file. Through this project, I learned how to get responses through an API in JSON format.
* https://github.com/guptadiksha307/Original-Flappy-bird-JavaScript- In this project I have created an original flappy bird game with Javascript code.
**How did I learn about Outreachy?**
I heard about Outreachy from one of my colleagues. She was the mentor of Outreachy round 14. Later I came in contact with many open source enthusiasts and also had interactions with a few past interns of Outreachy. As an Outreachy applicant, I'm glad to be a part of Wikimedia community. I think contributing to wikimedia will impact the world in a very positive manner. Outreachy program is a wonderful initiative and I will be obliged to be a part of this program through Wikimedia.
**Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?**
I will be free from all other commitments from 3rd December 2019 to 2nd February 2020. From 2nd February onwards I will start preparing for my entrance examinations which will take at max 3-4 hours a day, an average of 24 hours a week.