My Proposal for GSoC 2014 with WordPress.org
Name: Deven Bansod
Personal Website : https://devenbansod.wordpress.com
Skype ID or GTalk: firstname.lastname@example.org
IRC nick: DevenB
Phone number: +91- 9772224232
School Name: Birla Institute of Technology and Science (BITS), Pilani
Years completed: 2
PHP Experience Level: Above Intermediate. I have done substantial amount of work using PHP in the last two years. It includes building a CMS from scratch which hosted blogs for free on our intra-institute LAN, developing two simple Plugins for WordPress (hosted on the plugin Repository), creating a website for my Cultural Organisation, Entry Marker and Checker in a Food Festival to check Double Entry.
WordPress Experience Level: Plugin Developer.
Link to project description on WordPress-powered blog: https://devenbansod.wordpress.com/2014/03/11/project-description/
Describe your idea in detail: I am going to work upon the “Forms_Plugin” Idea on the WordPress GSoC 2014 Page(Link). WordPress uses a lot of ‘forms’ on their community sites (like WordCamp.org) for a number of purposes like applications, contact forms, post submissions, sign-up forms, surveys, etc. They currently use a combination of Polldaddy (polldaddy.com) surveys and Jetpack forms (commercial).
The project would focus on creating a forms/surveys plugin as required by the WP community outreach team to support WordCamps and Meetups and will be suitable for general purpose use.On completion, the Plugin will be offered for free on the WP Plugins repository. The the Plugin would be used as follows :
- The Website Administrators will go to ‘WC_Forms’ (A New Post_Type) in the admin navigation menu -> click on an ‘Add New Form’ button. The new form will have some common base forms to start with; or he may create one from scratch. They will customize it in a user friendly GUI and save it; get the shortcode to be embedded somewhere, or directly publish it to a page.
- The Administrators publish the Form into a Page. The Form is then available to general public to fill out.
- A foreign user fills out the form and submits. The submitted Data is stored in wp_posts with ‘WC_Feedback’ as Post_type with a proper structure.
- The Administrators may go to ‘Form_Feedbacks’ in the admin menu to see the submissions separated with respect to different forms. They would be able to view/export the submitted forms, each separately.The rest of the working/options available are listed below.
Features of the Plugin :
- Ability to add various types of fields with innumerable properties like parent field option(For example, a field will be visible only if a particular option is selected in the previous field) and many more
- Ability to populate some fields of some other Post_types from the data submitted through one form (for example, a speaker fills out a Call for Speakers form, the plugin will automatically populate some fields in speakers’ Post_type so as to automate the process of copy-pasting it.)
- The Plugin will provide an option to notify the Admin as well as the Form Submitter through email about the recent form submission.
- Base forms with some standard questions (Like Call for Speakers, Call for Organizers etc.) to start off and then build over it with so as to save the effort and time plus an ability to make a whole custom one from scratch as well
- Basic CSS for the form elements(according to the theme) with an option adding a different class to the elements.
- Once made, a Form will have generated a shortcode which can be used in any other post type as well.
- Proper Sanitizing and Handling of the Submitted Data and option to choose from Submission to a specific Page or else submission through AJAX and display Specific text after submission.
Internal Working of Some Important Features:
- Populating some Other Post Types in wc_post_types(like Organizers, Speakers etc. ) can be done by just adding a Post_meta value with the Meta Key(for eg. : ‘_wcpt_user_id’ ) same as what is added in wc_post_types so that wc-post-types plugin can pick it up from there
- For Base Forms, we can include a JS/JQuery function in our enqueued script that when a base form is selected, it automatically adds the base form fields to the Current Form(i.e. currently the fields are temporarily added) which get stored in this form(in Post_meta) when you save the Form.
What have you done so far with this idea: I have interacted with Ian Dunn and other developers on the wp-hackers mailing list and have discussed the idea quite extensively with them. Ian and I have discussed the design of the Plugin how it would work. The thoughts and advices of all the people on the mailing list have been very important in reaching to this stage. Also, I have started working on the conceptualization of how the things that are required will be done for the Form making and Form Submission handling and how the design of code has to be there and have readied a basic framework for the Plugin. I have discussed various Features and Solutions to the Problems that WC team currently faces with Ian and have thought well about how the features will be designed and applied.
Plugin, theme, or core: The Project will a Plugin. It will be conceived as a WP plugin and will be hosted for free on WP Plugins Repository on completion.
Anticipated challenges: The change in User Interface for the Regular Admins who currently use some other service for Form Handling may be slightly disrupting and time consuming at the start. Making it as simple as possible and as easy to work with, will be slightly challenging.
Potential mentors: Ian Dunn
Milestones and deliverable schedule: The Discussion with the Mentor(s) in The Community Bonding period goes on over the new features that can be added or the way in which the things can be done.
|Time Period||Work that will be done during this Period|
|19th May-22nd May||Actual Coding starts. Revise project plan with mentor, setup development environment|
|23rd May-28th May||Unavailable (See ‘Other Commitments’ Section Below)|
|29th May-5th June||Start coding. Implement the Basic Structure of the Plugin and get it working|
|6th June-12th June||Implement the Admin Panel Form Creation UI and its back-end Design.(Continuously asking Mentor for reviews and suggestions because the whole plugin will be built over this)|
|13th June-19th June||Complete the Form Creation UI as well as the backend for Displaying the Form in the Front-end|
|19th June-22nd June||Ask the Mentor to review the written code and suggest any changes|
|23rd June-27th June||Implement the changes that the Mentor has suggested, Fix any bugs and Submit the Mid-term Evaluations|
|28th June- 5th July||Complete the Basic Plugin Functionality of Creating the Forms and Handling the Forms|
|6th July- 8th July||Discuss with and ask mentor as well as on the mailing list for an extensive review so as to make sure, we are on the right track.|
|9th July – 16th July||Implement the Changes, Fix the Bugs and start adding the Features mentioned above in the Project Details Section|
|17th July- 24th July||Complete adding new features and ask Ian if the features required for WordCamp.org are met or not. If not, implement those too.|
|25th July- 31st July||Fix the shortcomings and the Bugs. Start proper Documentation of the Plugin and self-review the whole code while adding comments.|
|1st August- 4th August||Unavailable due to college registration.|
|5th August- 12th August||Mentor’s final review. Fix all the minor issues, bugs and shortcomings pointed out by Mentor and people on the mailing list. (And Pencils Down)|
|13th August- 17th August||Apply for Adding the Plugin on WordPress.org Repository. Final Code Submissions|
Other commitments: I won’t be available between 23rd and 28th May due to a family function. My college reopens on 1st August, and I may lose around 3-4 days then for the registration process.
PHP Experience: I have more than Intermediate experience in PHP. It includes
- Developed Backend for a Web App on Graphical IDE for C (Link Here)
- A CMS made from scratch which provided Blogs for free on Intra-institute LAN
- Creating a Simple Web Site for my Cultural Organisation
- Entry Marker and Checker in a Food Festival to check Double Entry
JS Experience : I have worked upon a WebApp where we made a Graphical IDE for C. It involved extensive JS and JQuery for its UI. Here
WordPress Experience: I have a fairly good experience with the WordPress Codex as I have written 2 Simple Plugins (1st Plugin – Post Views, 2nd Plugin – Blog Tools). I recently committed a new Version for the First Plugin ‘Post Views’. I recently submitted a patch to #307 on the Meta Trac. I have tried submitting Patch to the Core Trac ticket #26827.
I am also a regular Blogger on WordPress.com.
Other Open Source/Free Software Experience: None
- I am a Member of SSMS Committee of the BITS Pilani Campus where my work is to design and maintain a Software(.NET Framework) for billings and orders using a Barcode.
- I was also responsible for making the back-end handler for Registration Portal for a national Level Conference (Youth Conference 2014)
- I have worked on a Project on Graphical IDE for C in which I wrote the complete Backend Scripts(PHP) and Some JS & JQuery Part.
- I worked for a Campus Start-up ‘Bandhana.org‘ where I was responsible for leading the Technical Side of the product development and was heavily involved in conceptualizing its Website (I have now have stopped working for them)
Academic Institution: BIRLA INSTITUTE OF SCIENCES AND TECHNOLOGY(BITS), Pilani.
Current Program: B.E.(Hons.) Computer Science + M.Sc.(Hons.) Economics (Dual Degree)
Anticipated Graduation: 2017
Academic Performance: CGPA = 8.52
GSoC for Credit: NO.
You’re applying to work with WordPress during GSoC because: WordPress powers around one-fifth of the Web and having PHP and JS as my skill-set, WordPress seemed an appropriate place where I could apply my skills to a good use for the community. Also, I have been a WordPress.com blogger for quite a long time, so WordPress was a natural choice.
After GSoC, you envision your involvement with WordPress will be:
I plan to stick around with the WordPress developers Community after GSoC 2014 ends. I will be the maintainer of the Plugin after it has been Hosted on the WP Plugin Repository.
Hoping to have a Wonderful and Fruitful Summer with WordPress.org