Name: Shivansh Bindal
IRC nickname on Freenode: shivanshbindal9
Phone Number: +91-8295729539 / +91-8168611280
Typical working hours: 10 AM - 2 AM (UTC+5.30)
Video Chat: https://appear.in/shivanshbindal9
- 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.
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.
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
- 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
- Submit the demo app proposed
PHASE 3 (Deliverable before Phase 3 evaluation)
- (Optional) Work on another demo app
- Submit final report
|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.|
|24th June to 28th June||Phase I evaluation Submit a report of the tasks completed. Fix bugs, if any.|
|15th July to 21st July||Work on the demo app proposed and submit 1st iteration.|
|22nd July to 26th July||Phase II evaluation Submit a report of work done. Fix bugs in app.|
|5th August to 11th August||Write a 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 a final report of the tasks completed|
|27th August to 2nd September||Mentor submit final evaluation of the candidate|
I will be available anytime through Email, Zulip or if required, a well-planned video session. I have been and will be in constant contact with Srishti Sethi through Zulip. I have been an active user of Github since my freshman year. I will continue contributing via Github to our project. Apart from working on the project, I would be glad to help other contributors and users solve their issues and help the maintainers in reviewing Pull Requests.
Current Education(in progress):
- University: Indian Institute of Technology, Roorkee, India
- Field of study: Computer Science and Engineering
- Current Year of the study: Second Year
How did you hear about this program?
Our college has an active community of open source developers. Every year, many of our institute’s students get selected for Open Source Programs such as GSoC and Outreachy. I heard about this program from a senior of mine who himself completed his GSoC with OWASP.
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 having my semester examinations from 24 April to 4 May so I will be slightly inactive between 10 April and 4 May to prepare for my exams, which is way before the coding period.
During my summer break (5 May to 11 July) I can easily give 50+ hours per week to the project as I have no other commitments. I will be able to do about 35-40 hours a week when my college resumes (3-4 on weekdays and 10+ on weekends). But the major part of the project will be done before my classes begin and thus I will easily able to cope up with the remaining work and deadlines.
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)?
I am only applying for Google Summer of Code with Wikimedia organization.
What does making this project happen mean to you?
I was only recently introduced to the open source world and so far, I have found the developer community extremely supportive and helpful. There are a lot of open source projects that we make use of every day that makes our lives easier and help us learn new things. Wikipedia is the world's biggest digital encyclopedia and when I came to know that the project is open source, I was highly motivated to contribute to it.
Now, I have gotten a chance to contribute to the world’s biggest digital encyclopedia. I am grateful for this opportunity and assure you about my commitment and determination towards this project. Through this project, I will be able to help the developers around the globe to easily use WikiMedia's Action API's. Moreover, this project will not only give me the opportunity to work with the best developers around the world, but I'll also be able to give back something to the community and make learning easier for them.
I have been a software enthusiast since my freshman year and since then I have worked on some projects which were truly a great learning experience for me. In my pursuit of acquiring web development skills, I started contributing to the open source community so that I can give my part back to the organizations whose products have been an asset to me.
Also, at my university I am an active member of Information Management Group(IMG), which is solely responsible for maintaining the IIT Roorkee's intranet portal channeli and IIT Roorkee's official website, and has worked on several projects from scratch, so I am well verse with the software development cycle i.e. from designing to coding to production to maintenance.
- Programming Languages and Frameworks:
- Sound knowledge of OOPs, MVC architecture.
- Proficient with Django(Python Framework), Django REST framework, Django Channels, Websockets, Yii2(PHP Framework)
- Experienced with front-end frameworks such as React and Redux.
- Having moderate experience with MySQL and SQLite
- Development Environment:
- Ubuntu 18.04 LTS (preferable) or Windows 10
- Fully customized Visual Studio IDE.
- Vim(Fully customized) and Nano for small edits.
- Strong concepts of Git, can catch up with Mercurial and SVN if required.
- Other Interests:
- Shell Scripting
- Competitive Coding
Till now I have earned a great sense of understanding about the codebase. Also, I have made some pull requests mainly addressing the 2nd microtask listed on phabricator. Additionally, I have a decent knowledge of making templates and gadgets and using them.
- #80 (merged): make file names generic in modules.json file (solves issue #70).
- #114 (to be reviewed): reorganize readme.
- #70 (issue) : filename attribute not generic in modules.json .
I also contributed to Echo Extension and got a patch merged.
Along with working on this project I also contributed to other projects of WikiMedia Foundation enlisted in New_Developers guide of WikiMedia. The project to which I mainly contributed is WikiEduDashboard
- #2321 (merged): improve the layout of the search bar in mobile phone screen (solves issue #2255).
- #2331 (merged): add ruby spec for the added react-select component in home wiki project selector.
- #2380 (merged): implement i18n in yes no selector, modify CSS and functionality of Select component in yes no selector.
- #2410 (merged): solves on tab press issue in two components.
- #2413 (merged): add react-select in home wiki language selector.
- #2429 (merged): improve the styling of block type select alongside adding Select component.
- #2430 (merged): add react-select in course level selector.
- #2453 (merged): show due date only when the type is assignment (solves issue #2452).
- #2452 (issue): due date visible once set irrespective of block type.
- Static Site Generator: Static Site Generator is a web-based app to facilitate the professors of our college to make single page conference website, portfolio by simple drag-drop and component selection. It uses Yii2(PHP framework) for the backend, React and Redux for the frontend, MySQL as database.
- Water Breach Reporting APP: This app implemented a system to report the water structure breaches to the government. It is a mobile app with backend in Django REST Framework. Blockchain, implemented in python, is also used to make transactions immutable. The source code can be found here. This project was worked on as a part of Smart India Hackathon.
Microtask 1: As a part of Microtask we had to propose an idea for a demo app around the use of MediaWiki Action API's. After doing a bit of research and exploring various API's I came up with the idea of making a Follower's App where you can follow various users of WikiMedia and see what they are contributing to or have recently modified. The detailed proposal of the app can be found here.
Tabbed Window (Using Gadgets)
Similar to the Preferences page, the tabbed view can be implemented in the API pages where the page is not reloaded on switching the tabs.
Design of the window will be implemented by making new template(s) or modifying the currently existing template(s).
Details of workflow
- The landing page will be will have URL of schema https://www.mediawiki.org/wiki/API:Upload and the tabbed window will contain the list of all MediaWiki Action API as it is shown currently, but with a different style.
- Now, on switching the tab the page won't be reloaded but the content inside the box will change showing the request and response for different languages selected. The user can also browse the Github link provided to get the code.
- The documentation part will not have any code snippets and the entire code for the request will be in the tabbed window.