Summer of Code/2016/SugarizerOS

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 Laské :

"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 :