Summer of Code/2016/Sugarizer OS
Summary preview: (Initial proposal)
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)
About your 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 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 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 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. Also I have very good knowledge and experience on android programming since I have developed several android applications for my semester projects at university.I am a hard working and dedicated person which always seek success in the work I do.
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.
- 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
- Here is the list view for sugarizer activities
- Here is the apk build using cordova