This is the project page for the Sugar Labs application to Google Code In 2015. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2015.

Message to potential participants

It is important that you obtain permission of your parents.

Es importante que obtengas el permiso de tus padres para participar.

https://developers.google.com/open-source/gci/resources/contest-rules

Please see the Contest Rules for Eligibility and Registration process.

https://developers.google.com/open-source/gci/resources/contest-rules

Details regarding the required forms and paperwork are here: Google Code In 2015/Participate#Students.

Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/

Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org

Why we are participating

Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.

Some background from GCI

[See https://developers.google.com/open-source/gci/resources/getting-started]

Open Source Fundamentals

You can contribute without being a coder! You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:

Documentation
If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.
Research
An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.
Outreach
If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.
Training
You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.
User Interface
User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.
Other
If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.

Collaboration

Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had.

Quality over Quantity

It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.

Some basics about Sugar Labs

For some basics about the project, see Chapter 4 of Learning to Change the World.

Getting started with coding

Sugar development is in either Python or Javascript.

Please note that you must run pep8 and pyflakes on your code before submitting your patches.

Getting started with GIT

Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [1].

GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.

Note that our bug tracker is http:bugs.sugarlabs.org.

Tasks

Note: This is our preliminary list of tasks. We can add more as the contest progresses.

Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.

Tasks must fall within one of these five categories: #Documentation/Training; #Outreach/Research; #User Interface; #Quality Assurance; and #Code.

Beginner Tasks

We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.

Title Description Hours Mentor Tag
Install the Sugar development environment Following the instruction at [2], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties. 48 all beginner
Install Sugar in a virtual machine If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [3][4][5], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties. 48 all beginner
Create an example program in Turtle Blocks We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at Turtle Blocks JS) 48 all beginner
Create an example program in Music Blocks We distribute examples with the Music Blocks programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. 48 all beginner
Create a simple machine in Physics We distribute examples with the Physics Activity. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. 48 all beginner

Documentation/Training

Tasks related to creating/editing documents and helping others learn more

Title Description Hours Mentor Tag
Update the Sugar Labs entry in Wikipedia The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. 48 Walter Documentation
Update the Sugar Labs wiki page on git The Activity Team/Git Tutorial is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details 48 Walter Documentation
Turtle Blocks Programming Guide Extend the Guide to Programming with Turtle Blocks to include more examples. 48 Walter Documentation
Music Blocks Programming Guide Extend the Guide to Programming with Music Blocks to include more examples. 48 Walter Documentation
Turtle Blocks Classroom Guide Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide. 96 Walter Documentation
Music Blocks Classroom Guide Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide. 96 Walter Documentation

For information about how to create help pages for activities

http://wiki.sugarlabs.org/go/Activities/Help/Contribute

https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst

https://github.com/godiard/help-activity/blob/master/source/collaborating.rst

Outreach/Research

Tasks related to community management, outreach/marketing, or studying problems and recommending solutions

Title Description Hours Mentor Tag
Turtle Art Day Organize a Turtle Art Day in your community. Details at [6] 96 Walter Outreach
Promo Video Create a 60 second promotional video on Sugar and its community. 96 Mariah Outreach
Hangout Q&A Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders. 96 Mariah Outreach
Local Lab Wiki Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. 96 Mariah Research
How-To Guide Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. 96 Mariah Outreach
DIY Sugar on a Stick Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it. 96 Mariah Outreach
Potential Users Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information. 96 Mariah Research
Sugar Tools & Resources Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date. 96 Mariah Research
Introduce Yourself Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media. 48 Mariah Outreach
Interview a GCI Peer Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media. 48 Mariah Outreach
Interview an Educator Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator. 48 Mariah
Review an Activity Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media. 48 Mariah Outreach
Women in the Sugar Community Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation. 48 Mariah Outreach
Wrap-Up Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media. 48 Mariah Outreach

User Interface

Tasks related to user experience research or user interface design and interaction

Title Description Hours Mentor Tag
Classroom collaboration Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. 72 Walter UI, pedagogy
Classroom management 1 Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments. 72 Walter UI, pedagogy
Classroom management 2 Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. 72 Walter UI, pedagogy
Sugar on a small screen Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. 72 Walter UI
Programming on a small screen We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. 72 Walter UI
End-user customization We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? 72 Walter UI

Quality Assurance

Tasks related to testing and ensuring code is of high quality.

Title Description Hours Mentor Tag
Behavior diff for Turtle Blocks JS Turtle Blocks JS is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions. 72 Walter QA
Unit tests for JS activities We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript 72 Walter QA
Test Sugar on a Stick Help test the latest Sugar on a Stick on Fedora (F21). See [7], [8] #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. 48 Satellit QA, SoaS
Interview a teacher Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. 72 Walter QA
Interview a student Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. 72 Walter QA

Code

Tasks related to writing or refactoring code

Title Description Hours Mentor Tag
Turtle Confusion in Javascript Turtle Confusion presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the JavaScript version of Turtle Blocks. 72 Walter Code, JavaScript

Unsorted tasks

Sugar enhancements from bugs.sugarlabs.org

Each of these open tickets is potential task-worthy.

Ticket Description Type Component
1646 No way to force-close (kill) an activity enhancement Sugar

Sugar bugs from bugs.sugarlabs.org

Each of these open tickets is potential task-worthy.

Ticket Description Type Component
4307 clipboard.set_with_data/set_with_owner is not introspectable defect Sugar

Activity enhancements from bugs.sugarlabs.org

Each of these open tickets is potential task-worthy.

Ticket Description Component
758 Port to new tube API Read
1124 Allow SoaS backup and restore from an XS server Sugar on a Stick (SoaS)
971 Global bookmarks in Browse Browse
2373 add support for Object Chooser Restore
3596 Browse: can not copy from inline pdf view or url entry Browse
4392 Chart should let the user to modify the chart font. Chart
4472 'Reject Suggestion' button is not working localization
4708 portfolio should export ODP Portfolio
946 Can not download image when opened in a popup Browse
1554 support for resuming downloads Browse
1970 crossword-maker sugarization ActivityTeam
2361 Pippy fails to start if journal entry is corrupt Pippy
2740 Update list of people in Pippy Thanks example Pippy
2838 Paint: The kids want the magic tools from TuxPaint Paint
3494 Show points in Maze collaboration Maze
3495 Generate levels with holes Maze
4241 Read: support cbz and cbr files Read
4584 Slider_puzzle activity to GTK+3 SliderPuzzle
4588 Chart activity: filter input to only accept valid values Chart
4698 Enhancement: Pippy should have a dark grey background Pippy
542 UI improvements and channel tab issues Irc
587 XOIRC support for multiple servers Irc
652 Potential Journal Detail View improvements (Mock-up) design
661 need progress indication for jigsaw puzzle sharing JigsawPuzzle
662 Could reduce tubes code JokeMachine
722 Better notification for in activity events design
966 Add SL navigation bar to ASLO main page activities.sugarlabs.org
1165 Tower of babble problem with IRC activity Irc
1289 lenguages available of activities on aslo activities.sugarlabs.org
1343 Labyrinth should have an 'export to text for outlining' feature Labyrinth
1366 easier bug reporting Log
1459 Cartoon Characters should not scale image to fill the screen CartoonBuilder
1559 ASLO spanish redirection activities.sugarlabs.org
1649 calculate support for arabic numbers Calculate
1705 All activity pages on ASLO should provide links to trac and git activities.sugarlabs.org
1756 Fetch activity title transaltion from submited bundle activities.sugarlabs.org
1780 TimeLapse-2 gives no progress output during Time Lapse Collection ActivityTeam
1829 [Labyrinth] Added New Label Support Labyrinth
1847 Switch Record to gst camerabin plugin Record
1973 Ticket to track Arabic bugs localization
2047 SoaS has no "view source" keyboard shortcut Sugar on a Stick (SoaS)
2084 Pre-existing photos/videos not shared when making Record activity shared Record
2110 Add collaboration to GetBooks actvity Read
2118 DnD a link from Browse to the clipboard area of the Frame, should copy it design
2122 Measure sensor schematics Measure
2386 Calculate error point reporting Calculate
2392 Allow more node and relationship attributes Labyrinth
2438 For speed, Physics redraw should be based on dirty rects, not full screen updating Physics
2445 revise Soas boot menu; add entrys:"try soas without installing" "install to hard disk" with dfferent behaviors Sugar on a Stick (SoaS)
2530 Custom titles for audio recordings Record
2557 Record UI Improvement Record
2679 Paste blocks fail gracefully on error Turtleart
2697 Calculate should use an appropriate number of significant figures for trigonometric functions Calculate
2698 Calculate allows default variables to be redefined Calculate
2701 Calculate should let you export plotted graphs to the clipboard Calculate
2750 Ability to move pins/motors once placed Physics
2761 parallelize the execution of turtles Turtleart
2787 Port Chat to new PS API Chat
2831 unintuitive switch back to capture mode Record
2902 Allow Distance UI to layout on a 800x480 display ActivityTeam
2908 Add a lunar phase calendar view Moon
2909 Add an overhead Earth, Moon, Sun view Moon
2910 Add option to export the moon phase as an image to the Journal Moon
2911 Add eclipse glyph to indicate the type of eclipse Moon
2912 Allow Poll Builder UI to layout on a 800x480 display Poll
2922 Share improvement on calendar Calendario
2923 Journal integration for Calendar Calendario
2939 Drumbeats / TamTam TamTam
3111 Browse should have the option of allowing the user to only load text. design
3151 Add green line in Grid mode for terminator line Moon
3154 Discard does not discard game Memorize
3185 Hot key for journal not present in frame tool tip. design
3249 Should Sweets be mentioned as an option for non-tech users as well wiki.sugarlabs.org
3287 Journal: Found way to have mini-icons in "Anything" combobox and "Resume with" palette show as a white stroke design
3289 Globally changing "Works with" entries activities.sugarlabs.org
3308 Could you release new version with pt translation? Record
3393 Odd eToys L10n issue Etoys
3417 Spirolaterals should ask OLPC builds not to suspend while drawing ActivityTeam
3506 Chat should provide notification of new activity if scrollbar is not in the bottom position Chat
3615 Add record or export to ogg buton to TamTamMini and TamTamJam TamTam
3624 Calculate should save equations in history along with the generated plots Calculate
3647 Hook up language control for l10n - migrated ticket StoryBuilder
3650 Add My Character and Add My Background StoryBuilder
3651 Collaboration functionality StoryBuilder
3693 Indiciate what architecture activities are for activities.sugarlabs.org
3735 Māori traditional instruments for TamTam TamTam
3778 Load images when they are needed TypingTurtle
3881 Clock activity does not save state Clock
3882 Help activity does not save state Help
3897 Infoslicer needs to be able to help users go through Wiki disambiguation pages InfoSlicer
3966 Submit birthday on registration on SN server sugar-client
3978 FotoToon should have nice friendly help hint for new activity instances FotoToon
3979 Meta ticket of Activities that overflow in portrait orientation (mainly toolbars) ActivityTeam
4043 Add convert to pootle localization
4086 fototune enhancement: export as video FotoToon
4117 Touchscreen on screen keyboard Labyrinth
4138 Write: enable spellchecking Write
4292 Add Conozco Elementos Químicos to Pootle localization
4349 Improve Turtleart discoverability in Gnome Turtleart
4362 Waterfall view in Measure.. Measure
4649 Turtleblocks sensor calibrations for V193 Turtleart
4677 Provide an option to specify number of frames Flipsticks
4697 Enhancement: Terminal should have a dark grey background and colored text Terminal
4699 when your name is typed, irc activity icon could have the badge emblem-notification.svg IRC
4724 GetBooks: keep the information of the downloaded books GetBooks
4738 Copy paste dosen't work in calculate, also Ctrl+a(for entire selection) dosen't work. Calculate
4774 Feature Request: Jump to action definition Turtleart
4786 Proposal for a Sugar installer app for GNOME default installer software packages.sugarlabs.org

Mentors

NOTES TO MENTORS
Please refer to Google Code In 2014/Participate#Mentors for details regarding enrolling as a mentor.
Please add yourself to the list below.
Feel free to add new tasks to the table above.

Depending on the project, we will assign multiple mentors from our various development and support teams.

  • Walter Bender - also org admin for GCI
  • Sam Parkinson
  • Ignacio Rodriguez
  • German
  • Amit
  • Martin Abente
  • Mariah Noelle Villarreal
  • Gary Servin Cardozo
  • Rajul Srivastava