Google Summer of Code Application 2010
Total Page:16
File Type:pdf, Size:1020Kb
Google Summer of Code Application 2010 Project Idea: File Upload question type Abhinav Chittora Education : Graduation (B. Tech) 8th Semester Major : Information Technology College : Engineering College Bikaner Table of Contents: 1. Contact Information 2. Project Outline i. How we are going to upload files? ii. Where we are going to store uploaded files? iii. Configuration Options for Questions iv. Administer Roles? v. Data Entry/ Statistics/ Printable Survey/ Response Browsing/ Response Editing, how? vi. Third Party processing hooks? vii. Any thing else? 3. How will limesurvey benefit from the project? 4. Time line 5. Experience in Open Source development 6. Project related experience 7. Academic Experience 8. Why Limesurvey? 9. References & Important Links Contact Information: Name : Abhinav Chittora Email Id : bijolianabhi[at]gmail[dot]com IRC Nick : Abhinav1 IM & user id : Google Talk ( [email protected]) & Skype (bijolianabhi) Location : Bikaner ( India) Time Zone : IST (UTC + 05:30) Phone No. : +91 9460351625 Blog Address : http://experiencesoc.wordpress.com (Blog to show Google Summer of code Progress) Project Outline: Limesurvey, The Open Source Survey Application has been working in Open Source field since February 20, 2003. In its early days it was called PHPSurveyor. Limesurvey has proposed many idea for Google Summer of Code 2010. File Upload Question Type is one of them and I found myself capable to complete this project. File uploading is the main task that should be done carefully. Uploaded files should be stored at server according to survey. For this we have to note these points: - 1. How we are going to upload files? Ans: We can upload files using CakePHP with model and without model. My personal opinion is to use CakePHP to upload files with model, since we can utilize power of CakePHP with model. 2. Where we are going to store uploaded files? Ans: We can store files outside the webroot folder on the server so that we can easily protect them from the unauthorized access. Each survey will have a directory to upload the files. All the files uploaded as a response of a question in survey will be stored in a directory. Naming will be done according to token or token+time stamp. 3. Configuration Options for Questions. Ans: While defining question with file type we have to make sure about following configuration options, this configuration options can be added in advance settings:- 1. Maximum upload size ( it also depends on the PHP configuration) 2. Number of files uploaded as answer. ( this can easily handled by PHP) 3. Should the file mark as public? (just make a check box to make it public. Since the survey statistic can be viewed publicly so if user checks the button "Make Public" then the file will be available to download for users.) 4. Allowed file extensions.( we can use filter while file choose dialog to filter the files, All extension should be in upper case so that we can easily handle that.) 5. Can user remove the remove the uploaded files. 4. Administer Role? Ans: What will be admin role after uploading the files? Here I am describing some tasks of admin that can be accomplished: 1. Downloading the uploaded files ( make a page to show the list of uploaded file with check box. Admin will check the files to download them as a archived form.) 2. Viewing the uploaded files ( we can make link the name of file to preview the file and admin can download that by “ right click-> save link as “. 3. Deleting the uploaded file ( admin must have permission to delete the file, there will be option to delete the file/files). 4. Altering the uploaded files. ( admin will able to change the content and the details for the files). 5. Data Entry/ Statistics / Printable Survey / Response Browsing/ Response Editing, How? Ans: Data Entry Screen is the page where which is used to enter data in paper based survey. It should be compact and effective. If we are uploading pictures then the files can be easily shown on the page, and if we are going to upload other documents such as pdf files, document files then we can only add that on the page. Now come to Statistics page, it is used to show the statistics of the survey. Statistics will include total no of file uploaded and the total files size. So that survey admin can get the file system statistics. In case of printable survey and we need picture to upload as answer then we can add a space to affix the picture or just add a note behind the survey that please attach the picture with survey. Response browsing is the toughest task after uploading the files on the server. We have to make an interface so that the admin can browse the responses and uploaded files as well as. For this I am going to make a separate page that will contains table of all the files, here admin can browse the files by clicking them. If admin will click on a picture then it will open a <iframe> using any JavaScript library( here I will prefer Jquery) and a slide show will be start so that he can browse all the files. If admin want to download the files then there will be a option to choose the files and after choosing all the downloading files admin can click on download button it will download the selected files in archive format. Response browsing for Images: If the uploaded file is Image with any possible format then for browsing there will be a slide show based on Lightbox 2 which is based on JQuery. Slide show with Lightbox is not only a fancy slide show but also it provide some cool navigation feature. so I like Lightbox plugin of JQuery. Response browsing for Documents: If the uploaded file are documents i.e. *.doc, *.odt, *.txt, *.rtf, *.pdf, *.ppt, *.xls, and Other document formats then we can use Google Document List API [0]. There will be a link to view these files that will open the files in new tab/ windows. Google's Document List API is used to Share/Create documents. Response browsing for Video/Audio files: If user uploads some video/audio files with any format that is supported then we can create a trigger that will convert the uploaded files into the open media format such as *.ogg, *.ogv. that we can easily browse using <embed> tag and if the user is using Mozilla Firefox 3.5+ or Opera, Apple Safari, Google Chrome, then we can use HTML5 code i.e <audio> and <video> to browse the uploaded files. Response edit can be done on the same page that is described in response browsing page. Admin will have a option to edit/ delete/ add files here. 6. Third party Processing hooks? Ans: Third party processing refers to processing uploaded files before used by third party. This processing include cropping pictures/ adding watermarks in documents/ converting video in specific format etc. While defining a question having file type, we can provide some configuration option that can used for processing the files. For example if the application developer have Javascript images processing tool then we can easily provide him to attach the Javascript function as a trigger. We provide facility to add third party function to be called by limesurvey. For this we have to add a textbox which will take input a function name which should be called just after uploading the file. Through this we can easily integrate third party processing tools. Although Limesurvey need not to process the files it self but some processing tools for example Image cropping that are not much heavy can be added to Limesurvey. Image cropping can be done by Javascript Libraries. For example JCrop which is based on JQuery can be used for Image Processing. If we use this then we need not to worry about the confiltion and compitability. 7. Any thing else? Ans: I am going to make response browsing more user friendly by adding Slide shows and Document viewer in Limesurvey. Slide Show/ Document viewer can be added via some popular Javascript libraries such that Jquery, Prototype, YUI, Mootool etc. (for Slide show my personal choice is Lightbox.) How will LimeSurvey benefit from my project? Currently Limesurvey does not support file type question, After completing the project Limesurvey will able to add question with file type. This will be great feature for Limesurvey. Time Line: Here I am providing time line that I will follow. I Hope, I will follow that as state: • Before coding period starts: Understanding the code, bounding with community. • First Fortnight( May 24 – June 07, 2010) ◦ Adding file type question in Limesurvey. ◦ My university exams will be scheduled so I have to concentrate on study. • Second Fortnight ( June 08- June 23, 2010) ◦ Providing Security for uploaded files ◦ Removing security threads. ◦ Simultaneously working on feature suggestions by the community. • Third Fortnight (24 June – 12 July, 2010) ◦ Adding configuration options for file type questions. ◦ Code submission for first midterm evaluation.* ◦ Simultaneously working on feature suggestions by the community. • Forth Fortnight ( 13 July – 28 July, 2010) ◦ Adding Administrator tasks. ◦ Adding Data Entry screen/ Printable Survey/ Response Browsing Screen. ◦ Simultaneously working on feature suggestions by the community. • Fifth Fortnight ( 29 July – 16 August, 2010) ◦ Adding third party processing hooks ◦ Documenting the work done so far. ◦ Simultaneously working on feature suggestions by the community. • Sixth Fortnight ( from 17 August, 2010) ◦ Work on Documentation, testing and bug removing. ◦ Work on improving code. • After August 30, 2010** ◦ Party time :) After party I am available to code for community to code any time and will continue contributing to organization.** Note: *Submitting code for midterm refers that I am ready for evaluation.