Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1:  +
<noinclude>
 +
[[Category:GSoC |.]]
 +
[[Category:sugar cordova|.]]
 +
<!-- You can add categories to tie features back to real deployments/schools requesting them, for example
 +
[[Category:Features requested by School Xyz|<Feature Name>]] (the |Feature Name option sorts the entry on the category page under the first letter of <Feature Name>). -->
 +
</noinclude>
 +
 
__NOTOC__ <!-- Please fix Section Header lengths to make a usable Table of Contents. (Use other means to format those lines). -->
 
__NOTOC__ <!-- Please fix Section Header lengths to make a usable Table of Contents. (Use other means to format those lines). -->
 +
{{Box|'''Project blog:''' http://sugarcordova.blogspot.in/}}
 +
 +
 
==About me==
 
==About me==
   Line 23: Line 33:     
==== Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer? ====
 
==== Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer? ====
Did contribute a little to the sugar project.A small contribution can be found here[http://git.sugarlabs.org/paint/mainline/commit/181c0a8dfc5fd434a978498840586e3d2b3637ba] .This patch was possible only by the cooperative support of Gonzalo. I worked on sugar in August - September last year. I went through the paint code to know the possible ways by which we can incoporate the functionality of saving the tool state at which the user left before saving the activity.This is done by storing the values of the tool and its corresponding state in form of json.I wish to contribute more to this wonderful community with supportive people around and that's why I am applying this time to gsoc. I hope to make a good contribution to the community. Many community dont really care about different people writing to them or review their mails and respond in time. The best part I love about the sugar community is that whether its walter bender or gonzalo or lionel or anybody else, they will surely make it a point to respond back to the people in the best possible manner and never hesitate sharing their knowledge with other.This is the reason why I too wish to be a part of this community where people care for and support each other.
+
Did contribute a little to the sugar project.A small contribution can be found here[http://git.sugarlabs.org/paint/mainline/commit/181c0a8dfc5fd434a978498840586e3d2b3637ba] .This patch was possible only by the cooperative support of Gonzalo. I worked on sugar in August - September last year. I went through the paint code to know the possible ways by which we can incoporate the functionality of saving the tool state at which the user left before saving the activity.This is done by storing the values of the tool and its corresponding state in form of json.I wish to contribute more to this wonderful community with supportive people around and that's why I am applying this time to gsoc. I hope to make a good contribution to the community. Many communities dont really care about different people writing to them or review their mails and respond in time. The best part I love about the sugar community is that whether its walter bender or gonzalo or lionel or anybody else, they will surely make it a point to respond back to the people in the best possible manner and never hesitate sharing their knowledge with other.This is the reason why I too wish to be a part of this community where people care for and support each other.
    
== About your project ==
 
== About your project ==
Line 32: Line 42:  
==== Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using? ====
 
==== Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using? ====
 
This project is aimed at building a new platform on cordova for sugar. It shall help us to build activities for mobile using html,js and css and the interaction with the device's native api can be provided by invoking the javascript libraries. These libraries provide device specific native backing code.We can access the camera functions and many others using javascript alone.So basically the mobile apps can be built in js rather than native code which implies that knowing the native code to built an activity and to interact with device functionality is no longer a neccesity.The technologies required to complete this project are javascript,python programming knowledge and sugar built, cordova platform for developing upon.
 
This project is aimed at building a new platform on cordova for sugar. It shall help us to build activities for mobile using html,js and css and the interaction with the device's native api can be provided by invoking the javascript libraries. These libraries provide device specific native backing code.We can access the camera functions and many others using javascript alone.So basically the mobile apps can be built in js rather than native code which implies that knowing the native code to built an activity and to interact with device functionality is no longer a neccesity.The technologies required to complete this project are javascript,python programming knowledge and sugar built, cordova platform for developing upon.
 +
 +
The figure below shows how the hybrid apps help the developers to port their applications to different platforms using the cordova platform and give a view why developing the cordova container for sugar would be useful.
 +
 +
[[File:Cordova applications run on different platforms.png|center|500px|Figure1]]
 +
 +
Also the application build using HTML,CSS,JS can be designed to run over various devices which in turn provides the developer to develop apps which are universal in nature. This can be achieved by making the design responsive which adapts according to the device's features.This forms a key reason why we would want to develop using HTML,CSS and JS usiing the cordova platform.The concept can be explained by the following image.
 +
 +
[[File:Why_is_cordova_neccesary.jpg|center|500px|Figure2]]
 +
 +
The main part allowing the interoperability of the html apps over different platforms is the cordova libraries that provide the javascript APIs.The high level view of the cordova architecture which allows seamless operation over different platforms can be explained as below.The native platform API's are first developed which communicate with the cordova libraries, these native cordova libraries then communicate with the javascript APIs which the developer uses to develop his HTML, CSS and JS application.
 +
 +
[[File:Cordova_Html_application_on_different_platforms.jpg|center|650px|Figure3]]
 +
 +
 +
To allow the web developers to interact with the device's native functionality, we shall build a communication between the python and javascript part by using the sugar web architecture.Once that is done, we then need to add to the cordova-js project of cordova - which provides the common API's for sending messages and triggering error and success callbacks with native framework responses.The high level view of the architecture to be built can be specified as follows.The cordova plugins will interact with the sugar platform through the sugar API (we need to develop that) and with the webview through its native API.This will then provide a javascript API to developers for their apps.
 +
 +
[[File:Sugar_cordova_architecture.jpg|center|650px|Figure4]]
 +
 +
Hence as per the above diagram we shall be building the cordova plugins, sugar api which interacts with the cordova plugins,the native cordova api which interacts with the webview and the javascript API which allows the developers to make their apps directly on HTML,CSS and JS using the device functionality through plugins and customs plugins.
 +
 +
So in a nutshell we shall develop the middle layer, which shall help the HTML apps to communicate with the sugar platform beneath.We shall build the cordova part as well as the native APIs needed to communicate with the cordova middle layer.Finally we shall provide the javascript APIs though which the developers can make their HTML apps for the sugar platform.So the final goal of the project is to provide the javascript APIs for the developers and code some sample apps which depict the usage of those APIs in the real environment
    
===== What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then. =====
 
===== What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then. =====
March 9 March 15 – Understand the high level architecture of project , go through the code of different platforms, come out with plan for sugar lab platform<br />
+
April 21 –May 19 Talk with my mentors and discuss a clear outline of the project, define steps to approach the problem and discuss ways by which we can attack the issue, understand all the technicalities required for the project - the sugar -web architecture through the code, the record activity and other python code on which we shall be developing, start coding in python as required <br />
March 16 – March 22 – Look into the corresponding code of sugar labs , how the cordova plugins can be made from the  present sugar code<br />
+
May 19 May 31 Code up the sugar APIs required for the further building the cordova plugins<br />
March 23 March 29 Understand the sugar code required for implementing the the functionalities <br />
+
May 31 - June 15 - Code the cordova plugins and the corresponding code in the cordova native APIs , write the javascript APIs<br />
April 1 – 12 – Buffer Period (Have sessional exams in college)<br />
+
June 15 - June 30 - Make a sample activity to show the working of the architecture developed<br />
April 13 – April 21 – After understanding the sugar code required for implementing the device functionality, can either continue with the code already there if exist or write in python in order to execute the corresponding activities<br />
+
'''Mid Term Examination'''<br />
April 21 – May 3 – Write the corresponding code in JavaScript<br />
+
July 1 - July 15 - add more plugins, improve upon the existing code as required<br />
May 3 – May 17 – Write some activities based on the JavaScript, python architecture made<br />
+
July 15 - July 31 - write the corresponding activities for the plugins added above and test the work done till now<br />
May 17  - May 31 – Improve the code , remove errors if any and start out with implementation of other functionalities<br />
+
August 1 - August 18 - Document the work, APIs and improve upon the existing project
May 31 – June 30 – Add functionalities, improve upon those made and make sample activities for new functionalities added<br />
  −
July 1 – July 18 – Incorporate suggestions and improvement after the evaluation<br />
  −
July 20 onwards – Document all the new API's of the JavaScript library made till now, add more if time allows and make the existing code bug free.
      
===== Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. =====
 
===== Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. =====
Line 63: Line 91:     
==== If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors. ====
 
==== If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors. ====
 +
'''Lionel :''' Today, Sugar activities written using the Sugar Web Framework had limited features because they can't benefit to device capabilities (camera, audio/video capture, accelerometer, network detection, ...). Integrating a PhoneGap container into Sugar will allow to provide the same level of features to Sugar Web activities than existing Sugar activities. Plus it will allow to web developers familiar with PhoneGap/Cordova framework to easily port or adapt their applications to Sugar. So we could expect to enhance the community of developers.
 +
 +
'''Suraj KS''' : Writing activities using HTML5/JavaScript has already given a big boost to Sugar. Once we can get wrap it in a Cordova/Phonegap container, it'll transform Sugar Web activities to a whole new level by utilizing the PhoneGap features. This could further attract many more developers towards Sugar and thereby improving both the quality and quantity of Sugar activities.
   −
Puneet Kaur : I think once this project is completed it will help people to develop activities directly on html,js and css and the developers don't even need to know the native language in order to interact with the device functionalities like camera etc.This will lead to a great expansion of sugar as all the mobile developers who know to code in html,js and css which isn't much difficult can easily pull in all the cool functions here and make the interaction with the sugar platform much more entertaining than before without much of an effort !
+
'''Puneet Kaur :''' I think once this project is completed it will help people to develop activities directly on html,js and css and the developers don't even need to know the native language in order to interact with the device functionalities like camera etc.This will lead to a great expansion of sugar as all the mobile developers who know to code in html,js and css which isn't much difficult can easily pull in all the cool functions here and make the interaction with the sugar platform much more entertaining than before without much of an effort !
    
==== What will you do if you get stuck on your project and your mentor isn't around? ====
 
==== What will you do if you get stuck on your project and your mentor isn't around? ====
Line 83: Line 114:     
==== Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more? ====
 
==== Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more? ====
I have worked with sugar before and that I consider would help me to dive in this project.Also have contributed to some phonegap android apps which are based on cordova.Hence I think I should be able to contribute to this project.
+
I am so fascinated with the project that I would love to work on it even outside GSOC. Would love to contribute to this opensource community which has indeed given the world a beautiful product which helps in learning.
 +
I have always been attracted to the education world and sugar labs has developed a wonderful solution to the problem the kids face.I see a lot of poor kids out there in my own land and feel sorry for them as they don't have access to the right education tools they must have. Hence, I feel a natural inclination towards this community and indeed wish to bring sugar labs to a much larger scale than is presently where each kid of the world experiences the joy of learning interactively. For somewhere down the line the root cause of all the ill in the world - crimes etc are related to the fact that the kids are not provided with the right set of values and education they must have been taught at that early stage.
 +
So sugar forms an essential part of this vision and would be great to see the kids in my country using it and benefiting.Hence I wish to contribute to the project as a part of giving back to the world what I have gained from it so far.
 +
would love to contribute to sugar otherwise also if not as a part of gsoc and specially take up this project as it fascinates me.
    
==== Please include the category tag at the bottom of your page: ====
 
==== Please include the category tag at the bottom of your page: ====
  −
[[Category:GSoC ]]
 
112

edits

Navigation menu