Summer of Code/2012
Our application page is .
A list of projects potential participants might contribute within GSoC program. Every project is shortly described with mentioning secondary skills for possible participants (the primal skill is desire to do something useful).
Note: Potential mentors, please feel free to add ideas to this list. Also, feel free to add your name to a project you'd be willing to co-mentor.
Note: Potential students, more project ideas can be found on our Features page.
- 1 Project candidates
- 1.1 Turtle Art nutrition
- 1.2 Portfolio videos
- 1.3 Unified journal view
- 1.4 Sugar "Sweets" Trisquel GNU/Linux Distro
- 1.5 Background image on Home View
- 1.6 Multi-touch Sugar
- 1.7 Plugin support
- 1.8 End-user modifications of Sugar source
- 1.9 Project sharing website
- 1.10 Sugar as a Service website
- 1.11 Learn to program in Turtle Art
- 1.12 Implement collaboration in Paint Activity
- 1.13 Implement a presentation mode in Fototoon
- 1.14 Port GBrainy to Python
- 1.15 Implement a robotics plugin for Turtle Art
- 1.16 Implement help mechanism for activities using Mallard
- 1.17 Tam Tam for Sugar on a Stick
- 1.18 Collaboration in Etoys
- 1.19 Finish Physical Etoys port to Sugar
- 2 Proposals Template
- 3 Subpages
Turtle Art nutrition
Working with the maintainer of Turtle Blocks to further develop the prototype Turtle Nutrition plug-in into a stand-alone activity. In its current state, Turtle Nutrition is a plug-in to the Turtle Blocks application. The plug-in aims to raise awareness of nutritional values through visual programming elements.
This project will involve more designing and testing than coding. But a working knowledge of Python is a must. Spanish-language skills is a plus, as we will most likely be testing the tool in one of our Latin American deployments.
Working with the maintainer of Portfolio to add a mechanism for exporting .ogv (voice over still images) of a portfolio presentation. This is a request that has come from deployments: they'd like to be able to post videos of student work, which is currently available as a slide show with audio voice-over.
A working knowlewdge of Python and some gstreamer skills are a must.
Unified journal view
Rather than viewing the details of a Journal entry on a separate page, the idea is to make the details appear in an expandabe in-line format on the main Journal view. The look and feel would be more like Google+ or Facebook. Performance will be a major challenge.
This project requires some working knowledge of the low-level Sugar Journal and datastore code.
Sugar "Sweets" Trisquel GNU/Linux Distro
What we need to get Sugar into classrooms and community centers is a software distribution that works "out of the box" with both Sugar and Gnome. The Trisquel GNU/Linux distribution is the most promising of the efforts to make this a reality. I'd like to pilot it in my ICT lab in Arlington, Virginia, and would love to mentor a GSOCer to hack the packages needed to make it work.
Background image on Home View
Since we are replacing Hippo, it is relatively trivial to add a background image to the Home View. The image could be set from the Sugar control panel.
Benefit: Deployments could customize backgrounds for l12n purposes. Uses could customize the look of their machines. Background could add some structure to the Home View. The example below, just for fun, was generated in Turtle Art.
Decent Python skills required and some familiarity with GTK.
With the advent of a number touch-enabled devices capable of running Sugar and with the port to GTK-3, it is time to take seriously the issue of multitouch. How should we be exploiting touch in the interface? How will be circumvent some of the current UI affordances that either reply on the keyboard or hover, e.g., invoking the Sugar Frame?
Strong Python skills and experience with GTK-3 required.
A number of activities, notably Turtle Art, are supporting plugins -- the ability to extend features by downloading additional modules. However, the mechanism for installing plugins is anything but friendly. It would be nice to design a uniform plugin bundle type and modify the activity installer to recognize this new type. Caveats include dependencies -- presumably the plugin would take care of that -- and version control -- plugins are often incumbent upon a specific version of an activity. ASLO hosting] should also be considered.
Strong Python skills and experience with Sugar toolkit required.
End-user modifications of Sugar source
We have an existing mechanism for duplicating and modifying Sugar activities: a copy of the bundle can be creaed in ~/Activities, where it can be modified by the end user. We also have a mechanism for viewing the Sugar toolkit source, but no such convenient way for making changes without risking messing up the system. While it should be easy enough to make a duplicate copy in the user's home directory, and to change the Python paths to use the modified code, we need some mechanism -- presumably at boot -- to choose which version to run: the installed version or the modified version.
Strong Python skills and experience with Sugar toolkit required.
Project sharing website
Create a Project Hosting Site similar to the Scratch website where kids can share the projects they have created using various Sugar Activities. The site should foster collaboration and sharing of projects. The Web Site should be built using a free web framework so that it can be installed at deployment sites. Some features include:
- Ability to engage and connect with friends and classmates using various Social Networking sites/techniques.
- Ability to post projects from various Sugar Activities (ex: Turtle Blocks, Etoys, Memorize, Physics, etc.)
- Separate landing pages for different audiences (kids, teachers, parents, etc)
- Section to share kid created art from projects
- Ability for users to create galleries (of their own projects, favorite projects, subject specific topics, etc).
- Ability to have “private classroom spaces”
- Tools to support community management of the site
- Multi-language support
Sugar as a Service website
- Ability of integration of Chrome Remote Desktop
- Ability to share or to allow other user watch this session
- Ability to scale the infrastructure onto local (virtualbox}, private (kvm) and other public clouds (http://fedoraproject.org/wiki/Cloud_SIG, http://xvm.mit.edu/ or http://cloud.ubuntu.com/)
Learn to program in Turtle Art
Requires some familiarity with Logo programming and Python.
Implement collaboration in Paint Activity
Paint Activity does not implement collaboration yet. The easy part is send the mouse positions and draw in the different machines, but you need have the status of the different tools used, copy/paste operations and undo/redo. Another task to do is port the graphics operations to cairo.
Requires familiarity with Python.
Implement a presentation mode in Fototoon
Fototoon allow the user to work with all the boxes in the same screen, but should be good have a view to edit one box using the full screen. We need implement a way to display the comic created one box after another, maybe adding sound saved for every box. The presentation can be saved in a pdf, one box by page or exported as a video.
Requires familiarity with Python.
Port GBrainy to Python
GBrainy have many good logic games, but is programed in Mono. We can put Mono inside a activity but is not ideal. The games are defined in xml files, and the UI is GTK and cairo, should be not very dificult to port it to python.
More info 
Implement a robotics plugin for Turtle Art
Numerous efforts have been made to made a robotics plugin for TA, but these are not yet completed and rely upon specific platforms, a new plugin is needed that recognize different platforms like Arduino, Lego nxt. Lego WeDo and Butia. As this work is only for the summer I'll recommend that the plugin only supports Arduino and some Lego robotics family, The main improvement is that the plugin is fully functional, and could be integrated to upstream TA.
Implement help mechanism for activities using Mallard
Mallard is a markup language that makes it easy to provide user help. It would be a nice feature to add Mallard-like help to activities, accessed through a mechanism similar to the view source mechanism. We need to sort through two issues: integration into Sugar and intergration into our i18n / L10n system.
Tam Tam for Sugar on a Stick
Develop a cross-platform version of Tam Tam Mini that will work with SoaS on most, if not all, PCs and Intel Macs. Start with Tam Tam Mini to solve the problems (mostly sound) and add the other three Tam Tam Activities if time permits.
Collaboration in Etoys
Develop a robust collaboration method in Etoys. Improving collaboration so that kids can easily share and control objects they created directly between computers.
Finish Physical Etoys port to Sugar
Level (Beginner, Intermediate, Advanced): Intermediate Possible mentor: Ricardo Moran Possible second mentor: ...
Physical Etoys is an extension to Etoys that allows the user to communicate with robots as if they were virtual objects in the computer. With Physical Etoys, it becomes posible to program real world objects (such as robots) to perform any task you want, or sense the world and use that information to control virtual objects (such as drawings on the screen). The hardware platforms currently supported by Physical Etoys include: Arduino, Lego Mindstorms Nxt, Nintendo Wiimote, Microsoft Kinect, and others. Making Physical Etoys work in Sugar would bring a platform for teaching robotics to all Sugar users, letting each kid that owns a XO transform his laptop into a robot. The port is currently half finished, but it lacks some details that need to be taken care about in order to finally publish it.
Technical Details: All Physical Etoys modules should work well in Linux and specifically in the XO laptop, this can involve porting some libraries and generally dealing with platform-specific issues. Finally, Physical Etoys will have to be wrapped as an Activity bundle for the XO.
Benefits to the Student: The student will learn about the inside of Physical Etoys and its communication model with the outside world, making it work seamlessly in different platforms.
Benefits to the Community: The Sugar community would gain a visual programming tool for teaching robotics that is based on a currently popular platform, as it is Etoys.
Put and fill your proposal template at a page like:
- What is your name?
- What is your email address?
- What is your Sugar Labs wiki username?
- What is your IRC nickname?
- What is your primary language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)
- Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)
- 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?
About your project
- What is the name of your project?
- 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?
- What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 21 - August 13; 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 (July 9-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.
- 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.
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.
- What will you do if you get stuck on your project and your mentor isn't around?
- 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?
- We want to make sure that you can set up a development environment before the summer starts. Please send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.
- What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)
- Describe a great learning experience you had as a child.
- 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?
Please include the catagory tag at the bottom of your page:
[[Category:2012 GSoC applications]]