User:Salil

Identity
Name : Salil Email : salilpa007@gmail.com Project Title : developing an API sandbox environment

Contact/working info
Timezone : UTC +5:30 hours Typical working hours : 1600 - 0200 (flexible) IRC : _Salil_ on Freenode Gtalk : salilpa007@gmail.com Skype : salil.p.a Facebook : http://www.facebook.com/salilpa Blog : http://salilpa.com/home

API Sandbox environment
aim of the project is to make an api sandbox environment where developers can test their code without writing anything. The api sandbox will allow the users to select individual methods and find its parameters and test them using a simple to use gui. users will also be able to use the automatic code generated to use a particular method.

About Me
I am a third year undergraduate student at IIT Kharagpur. I have been working as a web developer for the past three years. I have developed many websites and web apps during this period. I am currently the web team head of Kshitij and samudramanthan. I am very passionate about programming and have taken additional courses in Database engineering, Foundations of computation, Algorithms. I am very proficient in PHP, MYSQL, JavaScript and CSS. I have earlier made apps that use mediawiki api, facebook api, flickr api, yahoo YQL and google api. I am also experienced in JQuery and have used it to enhance the usability of the websites i designed.

Home page

 * will consist of a dropdown which consists of all the methods supported by mediawiki api.
 * this page will be up-to date and will automatically detect new methods that are added to the api. the content will be directly taken from api page
 * a small documentation shall be provided for each method in this page
 * documentation shall change instantaneously with selection of a method. this effect shall be achieved by loading full documentation and making the css code as display:none for all other divs except the selected method
 * on clicking the button go, the page shall go to the method's page
 * home page mock up : mock up

Method page

 * will consist of multiple text boxes where user can enter the values for each parameter
 * a small div displaying the details of the parameter shall be displayed when user clicks and types in each textbox
 * on submit the url to be executed shall be displayed in a div
 * the result shall be loaded ajaxically in the content div
 * method page mockup - mock up

Integrating with API documentation

 * in the present documentation links shall be provided to the sandbox
 * the sandbox shall behave with respect to the method passed from documentation
 * the present api links can be converted to sandboxed links

automatic code generation

 * automatic code generation for getting the the result in multiple languages like python, PHP, HTML
 * extend the number of languages

Before official coding period
- get more involved with mediawiki community - learn more about mediawiki api
 * April 25 - May 2

- Analyze the api documentation - figure out a way to automate the parameter extraction of a particular method - find a coding approach where addition of a new method will automatically reflect in the sandbox
 * May 3 - May 22

Official coding period
- Start making the main home page - write a PHP script to automatically fetch all the methods in the api - use JQuery to display the necessary documentation for each method - write PHP script to fetch different parameters of each method - make a user interface for the method page - make the div which calls the method and catch the various errors that can come when using ajax calls - display the result in human readable JSON and XML using JQuery code beautification - start working on the automatic code generation for PHP and HTML - make a php script which gives a string output which contains the necessary code. this script will also take parameters for url calls - start documentation integration of the api sandbox - try and extend the script to Python and Perl - give proper documentation for the sandbox itself - two weeks for unlikely delays - try to make GUI better - focus on documentation
 * May 23 - June 5
 * June 6 - June 19
 * June 20 - July 10
 * July 11 - July 24
 * July 25 - July 31
 * August 1 - August 15

Participation
I will be in constant touch with my mentor and community regarding the updates of my project. I will be online in my gtalk, facebook and irc accounts for most part of the day. I will try to be a constant participant in the opensource discussion in mediawiki. If i ever come across a problem, i will after discussing with my mentor, shall ask for help in IRC and mailing lists. I will also be maintaining a personal blog where i would post regular updates about my project

Past open source experience
I have a good knowledge of working with many opensource technologies and apis. I have designed lots of websites primarily in PHP and Mysql


 * Canopus india
 * Taal inc
 * Kshitij
 * Samudramanthan

Any other info
Mock up of home page mockup

Mock up of method page mockup

Mock up of method page of Opensearch opensearch