Identity edit

Name : Salil
Email :
Project Title : developing an API sandbox environment

Contact/working info edit

Timezone : UTC +5:30 hours
Typical working hours : 1600 - 0200 (flexible)
IRC : _Salil_ on Freenode
Gtalk :
Skype : salil.p.a
Facebook :
Blog :

Project summary edit

API Sandbox environment edit

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 edit

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.

Deliverables edit

Required deliverables edit

Home page edit

  • 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 edit

  • 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 edit

  • 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

If time permits edit

automatic code generation edit

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

Project schedule edit

Before official coding period edit

  • April 25 - May 2
 - get more involved with mediawiki community
 - learn more about mediawiki api
  • May 3 - May 22
 - 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

Official coding period edit

  • May 23 - June 5
- 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
  • June 6 - June 19
- write PHP script to fetch different parameters of each method
- make a user interface for the method page
  • June 20 - July 10
- 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 
  • July 11 - July 24
- 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
  • July 25 - July 31
- try and extend the script to Python and Perl
- give proper documentation for the sandbox itself
  • August 1 - August 15
- two weeks for unlikely delays
- try to make GUI better
- focus on documentation

Participation edit

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 edit

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

Any other info edit

Mock up of home page mockup

Mock up of method page mockup

Mock up of method page of Opensearch opensearch