Summer of Code/2016/Sugarizer Activity Set

From Sugar Labs
Jump to navigation Jump to search

About Me

What is your name?


What is your email address?

What is your Sugar Labs wiki username?


What is your IRC nickname on

zhirzh (on

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

Hindi is my native language. I am also comfortable with 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 live in Rajasthan, India. I find the following working hours comfortable.

  • UTC(18.30 - 00.30) => IST(00.00 - 06.00)
  • UTC(04.30 - 10.30) => IST(10.00 - 16.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?

Working in an open-source project is something new to me. I have been working with javascript for the past two years, but always worked on small to medium scaled projects - most of them for college activities, fests etc. I enjoyed the time I was working on projects and I felt the experience is invaluable.

But recently, I have felt the need to work on something on a larger scale. The reason I want to work for an open-source project is multi faceted. Primarily, it is the exposure and experience. Working with a team of friends is different than working for/with an organization. And that difference can only be felt by working for one.

Secondly, the idea open-source resonates with my thinking. I respect the fact how open-source allows people all around to help projects that matter to them. The concept removes the need to re-invent the wheel whenever someone requires a preexisting tool with a little tinkering.

And finally, the sheer joy. I get ecstatic when I see my projects taking shape and when they are finally done. It is for that feeling that I want to work for SugarLabs for the upcoming summers.

About my project

What is the name of your project?

Sugarizer Activity Set

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?

Quoting the project description on the projects page Quoting the project description on the 'projects page'

The goal of this project is to port some famous Sugar activities into HTML5/Javascript Sugar Web activities that will be include into the Sugarizer Package. Three activities will be ported:

  1. Moon: Moon is a Moon phase viewer, includes Lunar phase information and eclipse data.
  2. Speak: Speak is a talking face. Anything you type will be spoken aloud using the speech synthesizer, espeak.
  3. Fototoon: Fototoon is an activity that let user create cartoons using pictures from the journal.

Sugar activities can run only on Sugar environment. This limits their access. The web project Sugarizer, however, works in browsers and is easier to access and use. People can more easily try activities available as web-apps. As an added bonus, the main project also gains popularity.

Technologies involved

The main requirement will be Javascript, with basic familiarity of HTML and CSS. Under javascript, some specific web-APIs are required:

Some project specific Javascript libraries are also needed:

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.

Working Days Target

March 20 - March 30 (10 days)


  • Implement types of eyes and change the number
  • Implement cursor following algo
  • Implement 'talk back'

April 1 - April 20 (20 days)


  • Implement changing of mouths
  • Implement chatbot

April 21 - April 25 (5 days)


  • Fix minor bugs in the entire app
  • Check for cross-browser compatibility

April 26 - May 5 (10 days)


  • Fix minor bugs in the interface

May 6 - May 20 (15 days)

May 21 - May 25 (5 days)


  • Implement photo upload and download
  • Implement Fabric.js object for interactive canvas operations

May 25 - May 30 (10 days)


  • Implement Fabric.js object for interactive canvas operations

June 1 - June 5 (5 days)


  • Fix any remaining bugs

June 10 - June 15 (5 days)


  • Fix major bugs
  • Give finishing touches to already implemented features

June 15 - June 20 (5 days)


  • Fix major bugs
  • Give finishing touches to already implemented features

June 21 - June 28 (8 days)

Midterm Evaluation

July 1 - July 30 (30 days)

All 3:

  • Work with mentor towards removing bugs, improving compatibility, improving code structure and begin documentation

August 1 - August 20 (20 days)

All 3:

  • Test application in different environments - browsers, versions, screen sizes, internet connections, touch support

August 21

Code submission

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.

It is for the following reasons that I am confident that I will successfully finish the project.

  • Experience of 2 years (and counting) with the Javascript.
  • No other commitments in the summer.
  • College stays off during summers (May to August). Can devote as much as 10 hours per day.

I have also been working on a prototype for Moon activity since March 5, 2016.

Some of the projects that I have worked on:

Code.Fun.Do project - Qualified for the Microsoft Code.Fun.Do Finalist Forums (Nationals)

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 thought: When an OS level application is ported onto web, it becomes much easier to access it. All that is needed is a browser and internet. Moon, Sugar and Fototoon are activities that nurture curiosity and creativity. By making these webapps, I can introduce larger number of children to these technologies.

Lionel Laské: Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.

Walter Bender: Sugarizer OS is an attempt to spread the core ideas of Sugar to learners who do not have access to the Sugar Desktop. While we have made a lt of progress on the basic functionality, we still have just begun to scratch the surface regarding offering a rich collection of Apps. This project should go a long ways towards realizing a more complete offering.

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

If I do get stuck, there are a few things that I can do:

  • Drop a mail to the mentors.
  • If I am unable to reach them, I can ask other community developers for help in the IRC and the mailing list
  • Meanwhile, internet (google, stackoverflow, personal blogs etc) are all at my disposal
  • As a last resort, I will reach out to my college friends who can help me.
  • On the off chance that all my attempts fail, I will move on to a different part of the project - one that is not affected by the problem.

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?

  • A follow up page on the wiki, containing progress in great detail.
  • Online demos of the current status
  • Maintain a ToDo file in the github repository
  • Post (frequently) in the mailing list, asking for feedback.