===Profile Information
**Name**: Shivansh Bindal
**IRC nickname on Freenode**: shivanshbindal9
**Github**: https://github.com/shivanshbindal9
**E-mail**: shivanshbindal603@gmail.com
**Phone Number**: +91-8295729539 / +91-8168611280
**Location**: India
**Timezone**: India(UTC+5:30)
**Typical working hours**: 10 AM - 2 AM (UTC+5.30)
===Synopsis
**DEVELOP CODE SAMPLES IN JAVASCRIPT AND PHP TO DEMONSTRATE THE USE OF MEDIAWIKI ACTION API MODULES**
- The project will involve designing and embedding a tabbed window on API pages to demonstrate the use of MediaWiki action API's.
- Writing a code generator to generate code samples denoting the use of various modules that support GET requests.
- Writing codes for all other modules that do not support simple GET requests.
- Documenting the code samples on the wiki.
- Develop a sample app around the use of MediaWiki action API.
This project will make it easier for developers around the globe to use the API's provided by MediaWiki and thus expanding the user base of MediaWiki.
**MENTORS : Srishti Sethi @srishakatux, Sarah Rodlund @srodlund**
I have been an active member of the community since December and have been contributing to other sister projects of the WikiMedia foundation. After the announcement of the GSoC project ideas, I was deeply interested in the aforementioned project and I also made a few contributions to the project. I also have been in regular contact with mentor Srishti Sethi on Zulip as well as on phabricator.
===Deliverables
The project will involve writing code in python for making an autogenerator that automatically generates code in PHP and any other language(s) for API modules that support simple GET requests. Also, it will involve writing code for various modules in various languages like Javascript and PHP. The project also includes designing and embedding the tabbed window on the API pages that will demonstrate the use of action API's and documenting various code samples on the wiki.
**PHASE 1 (Deliverable before Phase 1 evaluation)**
- Design and develop the new tabbed view using gadgets
- Autogenerator for API modules to generate code snippets in PHP
- Code for modules that do not support simple GET request in Javascript and PHP
- Wiki Documentation of several pages in the new tabbed version
**PHASE 2 (Deliverable before Phase 2 evaluation)**
- Document the remaining pages in the new tabbed version
- Work on the various tools to reduce the effort of the maintainers of the repository such as setting up the Travis, update README for code modules in PHP and Javascript and adding templates for pull requests, issues, etc.
- Submit the demo app proposed
**PHASE 3 (Deliverable before Phase 3 evaluation)**
- Complete the documentation and code for various modules in PHP and Javascript worked on as a part of other outreach programs
- (Optional) Work on another demo app
- Submit final report
=== Timeline
| **Period** | **Task** |
|------------ |-----------|
|6th May to 26th May |**Community bonding period** Work on the design of the tabbed window to be embedded, write a gadget to implement the and make/modify templates based on the design.|
|27th May to 2nd June| Write autogenerator for PHP, work with the mentor to improve the hierarchy of the project.|
|3rd June to 9th June| Write code for modules that do not support GET requests in PHP, Javascript.|
|10th June to 16th June| Document ~15 code samples on the wiki in both Javascript and PHP in the new tabbed view.
|
|17th June to 23rd June |Document next ~ 20 code samples on the wiki in both Javascript and PHP in the new tabbed view|
|24th June to 28th June|**Phase I evaluation** Submit report of the tasks completed. Fix bugs, if any. |
|29th June to 7th July|Make changes in the project repository such as writing templates for PULL REQUEST, ISSUE TEMPLATE, setting continuous integration software tool such as Jenkins or Travis for the project. Write code for various modules, added as a part of other outreach programs, in Javascript and PHP.|
|8th July to 14th July|Document next ~ 20 code samples on the wiki in both Javascript and PHP in the new tabbed view.|
|15th July to 21st July| Work on the demo app proposed and submit 1st iteration.|
|22nd July to 26th July|**Phase II evaluation** Submit report of work done. Fix bugs in app.|
|27th July to 4th August| Write code for various modules, added as a part of other outreach programs, in Javascript and PHP. Document ~10 code samples on the wiki.|
|5th August to 11th August|Write tutorial for demo app made. Document remaining code samples on the wiki (if any). Fix bugs in code samples and app, if any.|
|12th August to 19th August|Work on another demo app to demonstrate the use of MediaWiki Action API's.|
|20th August to 26th August |Finish the demo app. Write code for any remaining module(s) and document it. Submit final report of the tasks completed|
|27th August to 2nd September|**Mentor submit final evaluation of the candidate** |
|--------------|-------------------|
===Participation
Describe how you plan to communicate progress and ask for help, where you plan to publish your source code, etc
===About Me
Tell us about a few:
- Your education (completed or in progress)
- How did you hear about this program?
- Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
- 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)?
- What does making this project happen mean to you?
===Past Experience
Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them. Describe any open source projects you have contributed to as a user and contributor (include links). If you have already written a feature or bugfix for a Wikimedia technology such as MediaWiki, link to it here; we will give strong preference to candidates who have done so
===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