Summer of Code/2016/Sugarizer OS

From Sugar Labs
Jump to: navigation, search

About Me

  • What is your name?
    • Paula Hewage Sameera Lakruwan Gunarathne
  • What is your email address?
    • Sameera.gunarathne.11@cse.mrt.ac.lk
  • What is your Sugar Labs wiki username?
    • Sameeragunarathne
  • What is your IRC nickname on irc.freenode.net?
    • Sameeragunarathne
  • What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)
    • My native language is Sinhala. I am 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.)
    • Srilanka, 2.30 pm – 7.30 pm (UTC) & 10.30 pm – 00.30 am (UTC)
  • 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?
    • Yes. I have participated for GSoC '15 for Fossasia organization under fashiontec. Below is the link for github repository which I contributed. The project was about to develop a platform(web) that provides user an interface to manage and trouble shoot knitting machines, and help them connect knitting machines with numerous compatible devices (laptops, tablets, mobile phones)

knitweb repo page:[1]

knitweb contributors page[2]

About my project

  • 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?
    • Sugarizer OS is designed to boot a device on sugar learning platform and allow user to easily utilize both sugarizer activities and system native applications. The proposed implementation is to run sugarizer on android as a launcher so that each of the sugarizer activity can be extended as a separate application. This provides user an enhanced user experience while providing native android services. Android launcher usually consists of two components which are home screen and the app drawer. Following features are identified in implementation of Sugarizer OS.
      • Sugarizer home screen
      • Sugarizer activities (apps)
      • Sugarizer List View
      • Sugarizer Network settings
      • Sugarizer OS settings

Sugarizer Home screen

Sugarizer home screen consists of app icons for sugar activities as well as for native android applications. This home screen consists of an app dock to provide easy access to the favorite sugarizer applications.

Sugarizer activities

Sugarizer activities(i.e. paint, Memorize) are put into the app drawer as separate applications with their respective icons. In this way flow of the activities can be loose coupled and can add more functionality to each activity as it is represented by a separate android application.

Sugarizer List view

Sugarizer List view enables user to choose favorite applications that comes to the home screen. List view displays all the sugar activities available and let you choose the applications that should go into home screen.

Sugarizer Network settings

Sugarizer network settings allows to connect to a neighborhood via wifi and share activities.

Sugarizer OS settings

Sugarizer OS settings allows user to easily access native android settings and switch between launchers.

  • Technologies
    • Android programming, HTML5/CSS, JavaScript
  • What is the timeline for development of your project?

(April 22-May 22)

Community bonding

Research on Android launcher design that suitable for sugarizer activities

Research on how cordova works with sugarizer

Week 1

(May 23-May 29)

Design Sugarizer OS

* Design Activity flow * Design launcher layout * Get feedback

Week 2

( May 30 - June 5)

Sugarizer Home:

Design app dock for sugarizer activities

Implementing the launch of sugarizer client from appdock Implementing navigation between screens(left/right swipe)

Get feedback from mentors

Design Documentation and blog posts

Week 3

(June 6 - June 12)

Sugarizer Activities:

Design app layout for each sugarizer activity

Decode client code to seperate out functionality for each activity

Start implementation of each activity as an seperate app

* Gears activity, Maze Web activity, Paint activity

Unit testing on each implemented activity

Week 4

(June 13- June 20)

Sugarizer Activities:

Continue on implementing sugarizer activities as seperate apps

* Memorize activity, Physics JS activity

Get feedback

Unit testing on each implemented activity

Documentation and blog posts

Week 5

(June 21- June 28)

(Mid term evaluations)

Sugarizer Activities:

Continue on implementing sugarizer activities as seperate apps

* Calculate activity, Clock Web activity, Turtle Blocks JS activity

Unit testing on each implemented activity

Week 6

(June 29- July 3)

Sugarizer Home:

Complete implementation of sugarizer activities

Integrate apps into the app dock at sugarizer home

Test launch of each app from the launcher

Documentation

Week 7

(July 4 - July 10)

Sugarizer List view:

Design list view layout

Implementing layout to choose activities that goes into sugarizer home

Implementing activity flow between list view and sugarizer home

Unit Testing for list view

Documentation

Week 8

(July 11 - July 17)

Sugarizer Network Settings:

Implement wifi connectivity settings access from a sugarizer activity

Implement network component to establish connection between two sugarizer activities in the neighborhood

Implement search neighborhood functionality

Unit Testing for network component

Week 9

(July 18 - July 24)

Sugarizer Network Settings:

Implement end to end communication between sugarizer apps on devices in the same neighborhood.

Test end to end communication flow for a selected activity

Documentation

Week 10

(July 25 - July 31)

Sugarizer OS settings:

Implement functionality to switch between android native settings and sugarizer settings.

Implement functionality to switch between launchers

Week 11

(August 1 - August 7)

Sugarizer OS:

Putting all together. Test for end to end functionality

Deliver alpha version of the launcher

Create a test plan

Get feedback

Week 12

(August 8 - August 16)

Sugarizer OS:

Execute test plan and fix bugs

Deliver Beta version Blog posts and Documentation

Week 13

(August 17 - August 24)

(Final Evaluation)

Sugarizer OS:

UX enhancements

Provide complete test report and release a version for acceptance testing

Complete documentation

  • 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 a computer science and engineering final year undergraduate of University of Moratuwa, Sri Lanka. I am a hard working and dedicated person which always seek success in the work I do.
    • I have contributed in GSoC 2015 for fashiontec in Fossasia organization. There the application was to develop a platform(web) that provides user an interface to manage and trouble shoot knitting machines, and help them connect knitting machines with numerous compatible devices (laptops, tablets, mobile phones). I was able to successfully complete the project within the time frame. Therefore I am very good at web based technologies such as HTML and JavaScript.
      • Knitweb application repo: https://github.com/fossasia/knitweb
      • Knitweb app contribution: https://github.com/fossasia/knitweb/graphs/contributors
    • Also I have very good knowledge and experience on android programming since I have developed several android applications for my semester projects at university.
      • Android Buddy App: [3]
      • Digital Address Converter App: [4]

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 Sugar OS will be a great move to give sugar experience to users on non-Sugar devices. Since the users of the sugar platform are children, to give sugar experience through mobile devices would be much effective. Nowadays smart mobile devices are common among people and kids are also tempted to play with them. Therefore if we take that advantage into account and provide an OS with full sugar experience kids will love it and it would give more effective learning experience too. In the technical point of view the current converted apk of the sugarizer platform takes about 240 MB memory which is relatively large amount considered with apks installed. Therefore if we introduce a launcher and separate apps for each sugarizer activities this effect can be resolved.

  • 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?
    • I can get help from the sugar community and from my friends and lecturers from the university. I can use help of communities such as stack overflow for non-domain specific help (i.e android issues).
  • 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 am willing to do my work according to a scrum project methodology so that I can send project progress, issues , to dos via mail to my mentors and to the mailing lists. Also I can maintain a blog for keep my work updated and to show project progress. I can also use IRC to inform the problems I have and the progress I made. Daily or weekly report of the git commits can be attached with the scrum mail.

Miscellaneous

  • If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies:
    • Here is the apk build using cordova
      • wUFYL8j.png
    • Here is the list view for sugarizer activities
      • jwQ5CRv.png
        • Describe a great learning experience you had as a child.
          • A great learning experience I had as a child is look into the inside of the toys(toy cars,tanks) that I had by removing the housing. I used to look into the mechanism of how the wheels are rotating, how the springs are used to store energy etc. It was fun and I learnt many practical things by doing it.
        • 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?
          • Not for now. Everything is okay.