Difference between revisions of "Summer of Code/2015/mohayon.SugarWebBasicActivitySet"

From Sugar Labs
Jump to navigation Jump to search
Line 1: Line 1:
== About You ==
 
'''What is your name?'''
 
  
My name is Michaël Ohayon, I am a 4th year student at Epitech Paris
+
===About You===
  
'''What is your email address?'''
+
* What is your name?
 +
Jérémie Amsellem
 +
* What is your email address?
 +
mail@lp1.eu
 +
* What is your Sugar Labs wiki username?
 +
lp1
 +
* What is your IRC nickname on irc.freenode.net?
 +
lp1
 +
* What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)
 +
French, but I'm fluent in English
 +
* Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)
 +
I'm located in Dublin, Ireland (UTC+0) but will be located in France (UTC+1) starting from June and I'm planning to work from 10:00 to 15:00
 +
* 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?
 +
During high school I have been volunteering for the french ubuntu non-profit organization (http://doc.ubuntu-fr.org/utilisateurs/lupin) during their install parties. My work was to help people migrate from Windows to Ubuntu and troubleshoot existing Ubuntu setups, since then I have been very interested by open-source communities and Free Software's philosophy. I like to correct wikis and github projects when I find an error or a fix I can do, so fully working on an open-source project this summer would be the logical next step for me.
  
mohayon75@gmail.com
+
===About your project===
  
'''What is your Sugar Labs wiki username?'''
+
We are looking for projects that will enhance the Sugar Learning Platform. Please consider how your project will have impact on children learning.
  
mohayon
+
* What is the name of your project?
  
'''What is your IRC nickname on irc.freenode.net?'''
+
Sugarizer OS
  
mohayon
+
* 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?
  
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''
+
The Sugarizer OS project is a way to bring sugarizer as a full environment on a non-sugar device.
 +
In order to do so, Sugarizer OS will be an Android launcher replacing the native one.
 +
It will be fully compatible with the existing Android system and able to launch both native applications and Sugarizer activities.
  
My native language is French, I am fluent in English.
+
This project is challenging and interesting because it enables a whole new big feature for Sugarizer : bringing it to a new and bigger range of devices with a better Android integration, this way Sugar can be deployed and used in an easier way.
  
'''Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)'''
+
It is going to be an useful feature because it enables a lot more children to work with the Sugar environment and have it fully integrated to their own Android device, or the one they use at school.
  
I'm located in Paris, France.
+
The framework used by Sugarizer to be deployed on mobile platforms is Cordova with Java (for Android) and the Sugarizer project uses JavaScript and HTML technologies.
 +
I also have a good understanding of Python language which could be helpful since some Sugarizer components are written in Python.
  
I'm planning to work 17:00 - 22:00 on Monday, Tuesday and Wednesday (I got a part time job) and 10:00 - 18:00 the other days.
+
The main challenges of this project will be :
  
'''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?'''
+
- Creating a launcher fully integrated with an Android device in terms of ergonomy and functionnality
 +
- Writing Cordova modules instead of native Java Android code to interact with the system
 +
- Handling the Neighbourhood functionnality and enable the user to connect to connect to a WiFi hotspot via Sugarizer OS
  
I got invested inside the french ubuntu loco team (ubuntu-fr.org) by helping during ubuntu parties.I started in October 2007 as a simple visitor and became a volunteer by helping people switching from Windows to Ubuntu.
 
Back in thoses days, migrating was not as simple as today and this was a really great human experience for me. As a longtime GNU/Linux educated user, Open-source is something really important to me. It's a way to communicate and share values with everyone.
 
  
Now that I'm a programmer, I think that I can move forward and also contribute with my programming skills.
+
* What is the timeline for development of your project? The Summer of Code work period is from mid-May  to mid-August; 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 (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.
  
I attended a GSOC conference by Lionel Laské and decided to register.
+
'''Timeline'''
  
==About your project==
 
  
'''What is the name of your project?'''
 
  
Sugar Web Basic Activity Set
+
{| style="border-spacing:0;"
 +
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''
 +
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work'''
  
'''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? 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.'''
 
 
This project is a full rewriting of some Sugar apps : Calculate, Paint, Memorize and Record using the Sugar Web Framework in order to get close to every device.
 
Thoses apps are the basics apps that every children need to have.
 
 
This rewriting is needed to merge apps from Sugar/Fedora and Sugarizer/Web.
 
Those apps tends to be used by every childrens using either a XO or a Web Browser. (Including PhoneGap/Cordova supported platform such as Android/iOS).
 
 
The goal of the project is to provide the same experience for childrens ignoring the devices they are on. Moving to PhoneGap/Cordova is a really great step for Sugar, it's a way to provide the Sugar experience to every child using the web standards.
 
 
The main technologies to be used will be '''HTML5 and Javascript'''. The ability to read the Python source code is required in order to provide the same features for the Sugar Web apps as on the XO.
 
 
'''I have identified many difficults parts : '''
 
 
- The abstract of the the touch/click layer in order to handle childrens using a computer with a keyboard and a mouse but also a child using a touchscreen with a phone or a tablet.
 
 
- Responsive design in order to get a usuable app on both small and big screens
 
 
- The storage layer which as to save the app state but also videos and pictures resources.
 
 
- Phone compatibility which can be tricky with inputs and drawings (iOS and Android are not always acting the same way and need code customisations)
 
 
'''Libraries'''
 
 
These are some libraries that I will look into in order to accelerate the development. The libraries are all at least MIT licensed. This is not a definitive choice, iOS and Android compatibility has to be checked.
 
 
'''EaselJS''' is a library made for working with canvas. I will definitely use it for the games development.  It is MIT licensed
 
 
'''wPaint''' is a jQuery plugin used to create "Paint like" apps. It has a builtin support of undo/redo. I think it's a great start for the Paint App. It is MIT licensed
 
 
'''RecordRTC''' is a Javascript-based media-recording library. I will look into this library to develop the Record app. It is MIT licensed
 
 
'''JSXGraph''' is a Javascript library used for geometry and function plotting. I will use it for the Calc app. It is LGPL/MIT licensed
 
 
'''Math.js''' is a Javascript library used for expression parsing. It will be used for the Calc app. It is Apache licensed.
 
 
I will develop step by step using an Agile methodology.
 
 
I have downloaded the Calculate, Paint, Memorize and Record xo files and will mimic their GUI.
 
My apps will have the same look and feel that the natives ones.
 
 
My timeline
 
 
{| class="wikitable"
 
| Week 0 || Research Work on frameworks compatibility (phone, tablets and XO laptop located at Le Spot Bouygues)
 
 
|-
 
|-
| Week 1 - 19 May || Calculate application :
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0
Base GUI, landscape mode<br>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Touch / clicks inputs handling<br>
+
* Community bonding period
Base mathematical expression handling<br>
+
* Doing some research on Android launchers integration with the Cordova framework
Results displaying and saving inside the Journal
+
* Deepen my knowlege on the way the Sugarizer project is built
 
|-
 
|-
| Week 2 - 25 May || Calculate application :
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Advanced mathematicals expression handling<br>
+
Week 1 - 23 May
Graph support<br>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Ouput format controls (digits, bases)<br>
+
* Creation of a basic Android launcher with Cordova, based on the Sugarizer repository
Input buttons for sin,cos, etc<br>
 
Blog posts, documentation writing<br>
 
 
|-
 
|-
| Week 3 - 1 June || Calculate application :
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Testing on XO, Android, iOS, PC<br>
+
Week 2 - 30 May
Bug fixing<br><br>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Sugarizer Activities:
Paint application :
+
* Enable launching of Sugarizer Activities on the launcher
Base GUI, landscape mode<br>
+
* Checking and if needed fixing Sugarizer Activities
Touch / clicks inputs handling<br>
 
Basic drawing<br>
 
Color palette<br>
 
Undo / Redo<br>
 
Text typing support<br>
 
Saving to the Journal (local or cloud)
 
 
|-
 
|-
| Week 4 - 8 June || Paint application :
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Testing on XO, Android, iOS, PC<br>
+
Week 3 - 6 June
Bug fixing<br><br>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Android Applications:
Memorize application programming :<br>
+
* Enabling launching of Android applications on the launcher
Base GUI<br>
+
* Handling Android notifications
Base game context<br>
 
Grid size picker<br>
 
Default grid creation<br>
 
Ability to play the Game<br>
 
Blog posts, documentation writing
 
 
|-
 
|-
| Week 5 - 15 June || Memorize application programming :
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Grid creation using images, text and sound from Journal<br>
+
Week 4 - 13 June
Grid saving to the Journal (local or cloud)<br>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|  
Load game from journal (local or cloud)
+
* Handling of Android system settings from the Sugarizer OS settings
 +
* Favorite Applications views
 
|-
 
|-
| Week 6 - 22 June || Memorize application programming :
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|  
Testing on XO, Android, iOS, PC<br>
+
Week 5 - 20 June
Bug fixing<br><br>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Record application programming :<br>
+
* Handling of device's wifi hotspot connection
Base GUI<br>
+
* Enabling the Sugarizer Neighbourhood feature
Picture taking<br>
 
Publishing pictures to Journal (local or cloud)<br>
 
Testing on XO, Android, iOS, PC<br>
 
Blog posts, documentation writing
 
 
 
|-
 
| MidTerm Evaluation | MidTerm Evaluation
 
|-
 
| Week 7 - 29 June || Planning scheduling evaluation and modifications if required
 
All apps checking<br/>
 
Bug hunting<br/>
 
Bug fixing
 
|-
 
| Week 8 - 6 July || Record application programming :
 
Sound recording<br/>
 
Sound publishing to Journal (local or cloud)<br/>
 
Testing on XO, Android, iOS, PC<br/>
 
Blog posts, documentation writing
 
 
 
|-
 
| Week 9 - 13 July || Record application programming :
 
Video recording<br/>
 
Video publishing to Journal (local or cloud)<br/>
 
Testing on XO, Android, iOS, PC<br/>
 
 
|-
 
|-
| Week 10 - 20 July || Calc and Paint app checking
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Bug hunting<br/>
+
Week 6 - 27 June
Bug fixing<br/>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Blog posts, documentation writing
+
* Finishing ergonomy changes and Android integration
 +
* Testing on multiple different screen sizes and devices and bug fixes / changes
 
|-
 
|-
| Week 11 - 27 July || Memorize and Record app checking
+
| colspan="2"  style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations
Bug hunting<br/>
 
Bug fixing
 
 
|-
 
|-
| Week 12 - 3 August || All apps checking
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 4 August to 17 August
Bug hunting<br/>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Post evaluations:
Bug fixing<br/>
+
* Improvements and bug fixing according to evaluations feedbacks
Blog posts, documentation writing
+
* Launching of a set of tests for every activity and feature
 
|-
 
|-
| Week 13 - 10 August || All apps checking
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 17 August to 23 august
Bug hunting<br/>
+
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"|
Bug fixing
+
* Finalization of the project with my mentors, tests and code rewriting
 +
* Submission of the final mentor evaluation
 
|-
 
|-
| Week 14 - 17 August || Final patches in order to make everything working flawlessly
 
 
|}
 
|}
 +
* 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.'''
+
I am used to work on project with deadlines since that's the main part of our school teaching methods and
 
+
I've been working as an Android developer and on Android projects for the last three years,
I am really dedicated to my work, I can't stand doing something and not finishing it.
+
some of them were done under the supervision of Lionel Laské and with the Epitech student working on
 
+
sugarizer applications during the last GsoC.
I like when working really hard gets to something : my scolarity is great, my GPA is 4 (out of 4).
 
I've led a R&D laboratory in my school focused on Google Technologies (Android / Dart / Angular / Go).
 
Our goal was to  keep track on the student's free projects and give them advices and workshops to discover new technologies.
 
 
 
I got seen by my school and proposed to work with the GIGN on a serious project, I can't say any details but this was a great opportunity.
 
After this project, I got hired as I'm now a "Innovation Mentor" for my school and keep track on students inside the national innovation lab (12 cities).
 
 
 
This year I worked with big companies from Bouygues, thanks to Lionel Laské, on making innovation prototypes using new technologies such as the Google Glass or iBeacons.
 
 
 
I really like to learn by myself and to discover new horizons and that's why I'm writing this today.
 
My two formers internships were about Mobile and PhoneGap/Cordova using HTML5/JS. I think I can handle the amount of work of this project and contribute to the community.
 
 
 
 
 
==You and the community==
 
'''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.'''
 
 
 
'''My answer : '''
 
 
 
I think this will be a great move for Sugar onto web platforms.
 
Sugarizer will allow everyone with every device to access the same user experience with the same look and feel.
 
This is really important to provide a standard way to use Sugar, essentially when kids are involved in the using. Using web standards will allow a new way for developpers to developp and for users to discovers the possibilities provided by Sugar.
 
Thoses apps are the basics apps required to make Sugarizer a really great thing to use.
 
I hope Sugarizer will allow every child, ignoring their devices to acces education through Sugarizer !
 
 
 
'''Lionel Laské :'''
 
 
 
Sugarizer is a way to look forward on Sugar future. But to start a real deployment with Sugarizer, we need to include inside the activities most used today by children and teachers on Sugar. More, this basic set of activities is an important source of content for other activities in Sugar ecosystem: Record activity for example will be the main source of content for Memory, Fototoon, Write or Paint activity. So this project is really a bootstrap for the development of Sugar Web.
 
 
 
'''Martin Abente Lahaye :'''
 
 
 
It's been a while since we started with JavaScript activities and I think its time that we cover such basic set of activities. Record is especially interesting as I haven't seen anything similar for the web. This would help projects such as Sugarizer to offer a more complete experience of Sugar in the web.
 
  
'''What will you do if you get stuck on your project and your mentor isn't around?'''
+
I'm actually working on HTML5, Jquery, AngularJS and pure JavaScript projects, one of them is a template for
 +
developers to quickly deploy responsive websites in JavaScript and HTML5.
  
I will ask the Sugar community, friends, collegues and my school mentors to discuss with me in order to explain what my problem is.
+
The technologies used for the Sugarizer OS project are the ones I like to work with and am at ease with, I like to develop various projects and when I have some spare time I find some personal projects to contribute to (https://github.com/lupin012345).
  
I think that discussion is the first step of getting new opinions and others point of view.
+
Finally, my classes end before the beginning of the Google Summer of Code so I will be able to be fully involved for this project.
Of course I will also use my great friends, Google, StackOverflow, Github to see if somebody has encountered the same problems I did.
 
  
'''How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?'''
+
===You and the community===
 +
* 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.
  
I think that I will setup a blog, in order to show what the project progress is. This blog will be updated with technical and non technical posts in order to allow everyone to understand what's going on.
+
If this project was successfully completed, I think it would be an important evolution for the Sugar project as it would enable a very wide range of children to make use of the full sugar environment on their Android devices. The fact that Sugar is working on web platforms was a huge step for the Sugar Labs community and the Sugarizer OS project seems to be the next important goal for the community in order to gain new users for the Sugar platform since nowadays one device out of two is an Android device.
  
- I will (if it is relevant) create pages on the Sugar wiki
+
Michael Ohayon :
  
- The Git commit messages will be clear and helpfull for others developpers
+
"Hi Jérémie,
  
- My code will be documented in order to reveal my work and progression
+
Your project is a major step for sugarizer.
  
- I will also use IRC to discuss with over people in order to get their opinions of the progress and or any problem I could have.
+
Bringing sugarizer to a full Android experience will setup a sugarizer driven environment.
  
 +
Of course, You will not only add wifi to sugarizer :)
  
==Miscellaneous==
+
It's about shaping a catalog and ecosystem that will obviously be simpler for children and teachers !
  
'''Screenshot of the Sugar development environment'''
+
I agree with you, Android is our main target, the number of devices is huge and the system is customizable.
  
<gallery>sugar-home-mohayon.png</gallery>
+
Done right, this will be the first brick of a great abstraction in order to run sugarizer with enhanced compatibility on many devices.
  
 +
Good luck.
 +
Michaël"
  
'''Describe a great learning experience you had as a child.'''
+
Lionel Laske :
  
I like to discover things, one of the best experience I had was around 2000, close to the summer when I discovered that it was possible do create things on a computer
+
"Lot of schools expect to deploy Sugar on tablet. Sugarizer allow Sugar to run on Android, it was a first step. However managing a deployment of tablets need more than just running an application. Sugar need to take control of the operating system on tablet in the same way that it take control of the XO laptop. It will allow to give a better experience to children: the machine will boot directly on Sugarizer and it will be easy to interact from other native Android application like GCompris, Scratch JR, ... Plus having a control on Android will allow to create some deployment tools to handle and administrate a set of tablets. For example: backup, MDM, ...
 +
So with Sugarizer OS we have opportunity to really propose deployment of Sugar tablet in schools."
  
I remember going in the computer room and to discover Macromedia Flash. In this session we were in pairs and I really enjoyed using the software to draw stickmens.
+
* What will you do if you get stuck on your project and your mentor isn't around?
  
This really looks simple to me now that I'm a programmer running on ArchLinux every day.
+
If I really can't find any solution for my problem by myself, I will ask someone else in the Sugar community and explain my problem. So far I always had quick and accurate answers from the Sugar Community.
I think that we had only made 5 or 6 frames but it was animated and I found it awesome :)
 
  
Simple things can change our perceptions and made people want to do things, I'm sure that my choice of studies is really close to the education and friends I had.
+
* How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?
  
'''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'm thinking about writing a journal or some kind of blog too keep the community informed even through I will frequently interact with my mentor and Lionel Laské during whole progress of the project.
  
Eveything is okay !
+
===Miscellaneous===
 +
Links to the pull requests I made on the Sugarizer repository :
  
<gallery>Xo-and-i-mohayon.png</gallery>
+
* https://github.com/llaske/sugarizer/pull/37
 +
* https://github.com/llaske/sugarizer/pull/30
 +
* https://github.com/llaske/sugarizer/pull/33
  
[[Category:2015 GSoC applications]]
+
[[Category:2016 GSoC applications]]

Revision as of 08:01, 25 March 2016

About You

  • What is your name?

Jérémie Amsellem

  • What is your email address?

mail@lp1.eu

  • What is your Sugar Labs wiki username?

lp1

  • What is your IRC nickname on irc.freenode.net?

lp1

  • What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

French, but I'm fluent in English

  • Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)

I'm located in Dublin, Ireland (UTC+0) but will be located in France (UTC+1) starting from June and I'm planning to work from 10:00 to 15:00

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

During high school I have been volunteering for the french ubuntu non-profit organization (http://doc.ubuntu-fr.org/utilisateurs/lupin) during their install parties. My work was to help people migrate from Windows to Ubuntu and troubleshoot existing Ubuntu setups, since then I have been very interested by open-source communities and Free Software's philosophy. I like to correct wikis and github projects when I find an error or a fix I can do, so fully working on an open-source project this summer would be the logical next step for me.

About your project

We are looking for projects that will enhance the Sugar Learning Platform. Please consider how your project will have impact on children learning.

  • What is the name of your project?

Sugarizer OS

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

The Sugarizer OS project is a way to bring sugarizer as a full environment on a non-sugar device. In order to do so, Sugarizer OS will be an Android launcher replacing the native one. It will be fully compatible with the existing Android system and able to launch both native applications and Sugarizer activities.

This project is challenging and interesting because it enables a whole new big feature for Sugarizer : bringing it to a new and bigger range of devices with a better Android integration, this way Sugar can be deployed and used in an easier way.

It is going to be an useful feature because it enables a lot more children to work with the Sugar environment and have it fully integrated to their own Android device, or the one they use at school.

The framework used by Sugarizer to be deployed on mobile platforms is Cordova with Java (for Android) and the Sugarizer project uses JavaScript and HTML technologies. I also have a good understanding of Python language which could be helpful since some Sugarizer components are written in Python.

The main challenges of this project will be :

- Creating a launcher fully integrated with an Android device in terms of ergonomy and functionnality - Writing Cordova modules instead of native Java Android code to interact with the system - Handling the Neighbourhood functionnality and enable the user to connect to connect to a WiFi hotspot via Sugarizer OS


  • What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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 (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

Timeline


Week Work
Week 0
  • Community bonding period
  • Doing some research on Android launchers integration with the Cordova framework
  • Deepen my knowlege on the way the Sugarizer project is built

Week 1 - 23 May

  • Creation of a basic Android launcher with Cordova, based on the Sugarizer repository

Week 2 - 30 May

Sugarizer Activities:
  • Enable launching of Sugarizer Activities on the launcher
  • Checking and if needed fixing Sugarizer Activities

Week 3 - 6 June

Android Applications:
  • Enabling launching of Android applications on the launcher
  • Handling Android notifications

Week 4 - 13 June

  • Handling of Android system settings from the Sugarizer OS settings
  • Favorite Applications views

Week 5 - 20 June

  • Handling of device's wifi hotspot connection
  • Enabling the Sugarizer Neighbourhood feature

Week 6 - 27 June

  • Finishing ergonomy changes and Android integration
  • Testing on multiple different screen sizes and devices and bug fixes / changes
Midterm Evaluations
Week 7 - 4 August to 17 August Post evaluations:
  • Improvements and bug fixing according to evaluations feedbacks
  • Launching of a set of tests for every activity and feature
Week 8 - 17 August to 23 august
  • Finalization of the project with my mentors, tests and code rewriting
  • Submission of the final mentor evaluation
  • 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.

I am used to work on project with deadlines since that's the main part of our school teaching methods and I've been working as an Android developer and on Android projects for the last three years, some of them were done under the supervision of Lionel Laské and with the Epitech student working on sugarizer applications during the last GsoC.

I'm actually working on HTML5, Jquery, AngularJS and pure JavaScript projects, one of them is a template for developers to quickly deploy responsive websites in JavaScript and HTML5.

The technologies used for the Sugarizer OS project are the ones I like to work with and am at ease with, I like to develop various projects and when I have some spare time I find some personal projects to contribute to (https://github.com/lupin012345).

Finally, my classes end before the beginning of the Google Summer of Code so I will be able to be fully involved for this project.

You and the community

  • 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 this project was successfully completed, I think it would be an important evolution for the Sugar project as it would enable a very wide range of children to make use of the full sugar environment on their Android devices. The fact that Sugar is working on web platforms was a huge step for the Sugar Labs community and the Sugarizer OS project seems to be the next important goal for the community in order to gain new users for the Sugar platform since nowadays one device out of two is an Android device.

Michael Ohayon :

"Hi Jérémie,

Your project is a major step for sugarizer.

Bringing sugarizer to a full Android experience will setup a sugarizer driven environment.

Of course, You will not only add wifi to sugarizer :)

It's about shaping a catalog and ecosystem that will obviously be simpler for children and teachers !

I agree with you, Android is our main target, the number of devices is huge and the system is customizable.

Done right, this will be the first brick of a great abstraction in order to run sugarizer with enhanced compatibility on many devices.

Good luck. Michaël"

Lionel Laske :

"Lot of schools expect to deploy Sugar on tablet. Sugarizer allow Sugar to run on Android, it was a first step. However managing a deployment of tablets need more than just running an application. Sugar need to take control of the operating system on tablet in the same way that it take control of the XO laptop. It will allow to give a better experience to children: the machine will boot directly on Sugarizer and it will be easy to interact from other native Android application like GCompris, Scratch JR, ... Plus having a control on Android will allow to create some deployment tools to handle and administrate a set of tablets. For example: backup, MDM, ... So with Sugarizer OS we have opportunity to really propose deployment of Sugar tablet in schools."

  • What will you do if you get stuck on your project and your mentor isn't around?

If I really can't find any solution for my problem by myself, I will ask someone else in the Sugar community and explain my problem. So far I always had quick and accurate answers from the Sugar Community.

  • How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?

I'm thinking about writing a journal or some kind of blog too keep the community informed even through I will frequently interact with my mentor and Lionel Laské during whole progress of the project.

Miscellaneous

Links to the pull requests I made on the Sugarizer repository :