Difference between revisions of "Summer of Code/2014"
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
'''Students''': See our guide on [[Summer_of_Code#How_to_participate|how to participate in Google Summer of Code]] for more information. | '''Students''': See our guide on [[Summer_of_Code#How_to_participate|how to participate in Google Summer of Code]] for more information. | ||
+ | |||
+ | The Sugar Labs Google Summer of Code 2014 projects/students/mentors: | ||
+ | {| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;" | ||
+ | |-style="background:#787878; color: white;" | ||
+ | ! Project !! Student !! Mentor !! Blog | ||
+ | |- | ||
+ | |Music Suite||Aneesh Dogra||Gonzalo Odiard|| | ||
+ | |- | ||
+ | |Turtle Art 3D||Anubhav Jaiswal||Tony Forster|| | ||
+ | |- | ||
+ | |Activity Unit/UI Tests||Gaurav Parida||Daniel Narvaez||[http://gp94me.tumblr.com/tagged/gsoc] | ||
+ | |- | ||
+ | |Port to Python 3||Kunal Arora||Sameer Verma|| | ||
+ | |- | ||
+ | |Bulletin Board||Nazrul Haque Athar||Walter Bender||[http://native-93.tumblr.com/post/87323850971/layout-chat-interface] | ||
+ | |- | ||
+ | |Hack a Stuffed Animal||Jade Garrett||Stephen Thomas|| | ||
+ | |- | ||
+ | |Social Help for Sugar||Prasoon Shukla||Paul Cotton||[http://sugargsoc.wordpress.com/] | ||
+ | |- | ||
+ | |Cordova Container for Sugar||Puneet Kaur||Lionel Laské||[http://www.sugarcordova.blogspot.com/] | ||
+ | |- | ||
+ | |Sugar Listens||Rodrigo Parra||Martin Abente||[http://tmblr.co/ZLEL4t1Gv4jqp] | ||
+ | |} | ||
== Project candidates == | == Project candidates == | ||
Line 7: | Line 31: | ||
;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 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. | ;Note: Potential students, more project ideas can be found on our [[Features]] page. | ||
+ | ;Note: Accepted projects are in <font color="#00bb00">Green</font> | ||
== Sugar Core == | == Sugar Core == | ||
Line 14: | Line 39: | ||
! !! Title !! Mentor !! Project | ! !! Title !! Mentor !! Project | ||
|- | |- | ||
− | !valign=top | [[File:python-logo.gif|90px|thumb|center]] ||valign=top width="15%" |Port to Python3 ||valign=top width="15%" | Walter Bender and Daniel Narvaez||align=left valign=top| | + | !valign=top | [[File:python-logo.gif|90px|thumb|center]] ||valign=top width="15%" style="background:#00bb00;" |Port to Python3 ||valign=top width="15%" | Walter Bender and Daniel Narvaez||align=left valign=top| |
;Brief explanation: There are many reasons to port Sugar to Python 3, not the least being its support for internationalization (unicode) is greatly improved over Python 2 (Very important as we have users in >100 languages). There is a good discussion of strategies [http://docs.python.org/3/howto/pyporting.html here]. The first task will be to work with the core developer team to decide on a strategy: writing Python 2/3 compatible source or a pure port. Once that decision is made, the remainder of the work will be to do the port itself. Developing a robust test suite is a must. | ;Brief explanation: There are many reasons to port Sugar to Python 3, not the least being its support for internationalization (unicode) is greatly improved over Python 2 (Very important as we have users in >100 languages). There is a good discussion of strategies [http://docs.python.org/3/howto/pyporting.html here]. The first task will be to work with the core developer team to decide on a strategy: writing Python 2/3 compatible source or a pure port. Once that decision is made, the remainder of the work will be to do the port itself. Developing a robust test suite is a must. | ||
;Expected results: Support for Python 3 in Sugar Core and a Porting Guide for Sugar Activities. | ;Expected results: Support for Python 3 in Sugar Core and a Porting Guide for Sugar Activities. | ||
;Knowledge prerequisite: Strong background in Python | ;Knowledge prerequisite: Strong background in Python | ||
|- | |- | ||
− | !valign=top | [[File:python-logo.gif|90px|thumb|center]] ||valign=top width="15%" |Activity Unit Tests||valign=top width="15%" | Walter Bender and Daniel Narvaez||align=left valign=top| | + | !valign=top | [[File:python-logo.gif|90px|thumb|center]] ||valign=top width="15%" style="background:#00bb00;" |Activity Unit Tests||valign=top width="15%" | Walter Bender and Daniel Narvaez||align=left valign=top| |
;Brief explanation: While we have been vigilant about developing tests for most of Sugar core, we have only just begun to scratch the surface regarding test suites for Sugar activities. This project is to develop unit and UI test suites for all of the [http://download.sugarlabs.org/sources/sucrose/fructose/ "Fructose"] activities – those activities that are shipped as part of every Sugar distribution. | ;Brief explanation: While we have been vigilant about developing tests for most of Sugar core, we have only just begun to scratch the surface regarding test suites for Sugar activities. This project is to develop unit and UI test suites for all of the [http://download.sugarlabs.org/sources/sucrose/fructose/ "Fructose"] activities – those activities that are shipped as part of every Sugar distribution. | ||
;Expected results: A suite of unit and UI tests for the Fructose Activities and a Testing Guide for Sugar Activities. | ;Expected results: A suite of unit and UI tests for the Fructose Activities and a Testing Guide for Sugar Activities. | ||
Line 29: | Line 54: | ||
;Knowledge prerequisite: Strong background in JavaScript | ;Knowledge prerequisite: Strong background in JavaScript | ||
|- | |- | ||
− | !valign=top | [[File:Cordova_sugar.png|90px|center|thumb]] || valign=top | Cordova/PhoneGap container for Sugar || valign=top | Lionel Laské and Suraj K S||align=left valign=top | | + | !valign=top | [[File:Cordova_sugar.png|90px|center|thumb]] || valign=top style="background:#00bb00;" | Cordova/PhoneGap container for Sugar || valign=top | Lionel Laské and Suraj K S||align=left valign=top | |
;Brief explanation: The idea is to allow Sugar Web Activities to use device dependent features. In this objective, the project will be to transform Sugar into a Cordova/PhoneGap container and to implement major PhoneGap features. Shortly, the project is to add Sugar as new supported platform for Cordova/PhoneGap. Lists of Sugar features that could be exposed to Sugar Web Activities using Cordova/PhoneGap will be: Camera, Audio/Video capture, Accelerometer, Connection, Events, File, Globalization, Media. During the project, the student will also have to demonstrate its work by writing some sample activities using device features. Examples of activities include a Record-like activity or a Level-Tool-like activity. | ;Brief explanation: The idea is to allow Sugar Web Activities to use device dependent features. In this objective, the project will be to transform Sugar into a Cordova/PhoneGap container and to implement major PhoneGap features. Shortly, the project is to add Sugar as new supported platform for Cordova/PhoneGap. Lists of Sugar features that could be exposed to Sugar Web Activities using Cordova/PhoneGap will be: Camera, Audio/Video capture, Accelerometer, Connection, Events, File, Globalization, Media. During the project, the student will also have to demonstrate its work by writing some sample activities using device features. Examples of activities include a Record-like activity or a Level-Tool-like activity. | ||
;Expected results: Rich media and sensor support for JavaScript Activities, Sample activities and an update to the Guide for Developing Sugar Activities in JavaScript to reflect the new APIs. | ;Expected results: Rich media and sensor support for JavaScript Activities, Sample activities and an update to the Guide for Developing Sugar Activities in JavaScript to reflect the new APIs. | ||
Line 47: | Line 72: | ||
;Knowledge prerequisite: Strong background in Python, GTK3, and Atspi; some electronics background would also be useful. | ;Knowledge prerequisite: Strong background in Python, GTK3, and Atspi; some electronics background would also be useful. | ||
|- | |- | ||
− | !valign=top | [[File:Bulletin-board.jpg|90px|center|thumb]] || valign=top | Bulletin Board || valign=top | Walter Bender ||align=left valign=top | | + | !valign=top | [[File:Bulletin-board.jpg|90px|center|thumb]] || valign=top style="background:#00bb00;" | Bulletin Board || valign=top | Walter Bender ||align=left valign=top | |
;Brief explanation: While it seems the prevailing notion of collaboration in the classroom is for the teacher to be able to a service such as VNC to share a desktop with a student, it is evident from computer-supported collaborative work outside of the classroom that such models provide little if any enhancements to productivity or learning. Our approach in Sugar has always been to allow our users to collaborate directly on tasks – be it writing a document together; sharing bookmarks while browsing; or sharing code snippets while programming. That said, often times, a large project involves multiple tools and multiple resources to be shared among a group. This project is to provide an uber-structure for collaboration – the Bulletin Board – where a group can share resources in a persistent manner as they work on a project together. One aspect it a shared, persistent "clipboard" of artifacts being used collectively within the project; another, illustrated on the left, is a chat channel that can be overlaid on top of activities to enable targeted discussions. | ;Brief explanation: While it seems the prevailing notion of collaboration in the classroom is for the teacher to be able to a service such as VNC to share a desktop with a student, it is evident from computer-supported collaborative work outside of the classroom that such models provide little if any enhancements to productivity or learning. Our approach in Sugar has always been to allow our users to collaborate directly on tasks – be it writing a document together; sharing bookmarks while browsing; or sharing code snippets while programming. That said, often times, a large project involves multiple tools and multiple resources to be shared among a group. This project is to provide an uber-structure for collaboration – the Bulletin Board – where a group can share resources in a persistent manner as they work on a project together. One aspect it a shared, persistent "clipboard" of artifacts being used collectively within the project; another, illustrated on the left, is a chat channel that can be overlaid on top of activities to enable targeted discussions. | ||
;Expected results: Two new Sugar toolkit services: a share, persistent clipboard; and a chat overlay onto any shared activity. | ;Expected results: Two new Sugar toolkit services: a share, persistent clipboard; and a chat overlay onto any shared activity. | ||
;Knowledge prerequisite: Strong background in Python and Gtk3 | ;Knowledge prerequisite: Strong background in Python and Gtk3 | ||
|- | |- | ||
− | !valign=top | || valign=top | Social Help || valign=top | Martin Abente, Paul Cotton, Walter Bender||align=left valign=top | | + | !valign=top | || valign=top style="background:#00bb00;" | Social Help || valign=top | Martin Abente, Paul Cotton, Walter Bender||align=left valign=top | |
;Brief explanation: Last summer we had a GSoC project to implement system-wide help for Sugar activities. It is now possible to get context-dependent help anywhere within the Sugar system by simply typing Ctrl-H or by clicking on the help button on the Sugar 'frame". This summer, we'd like to add a social component to our help. Using the same mechanism for determining content, we'd like to offer our users a channel for topical discussions. The most simple way to do with would be to launch them into topical IRC channels. However we'd like to also explore tools such as [http://www.discourse.org/about/ "Discourse"]. The first step will be to determine a platform for the social help in discussion with the developer community; step two will be to implement the social help mechanism in Sugar. | ;Brief explanation: Last summer we had a GSoC project to implement system-wide help for Sugar activities. It is now possible to get context-dependent help anywhere within the Sugar system by simply typing Ctrl-H or by clicking on the help button on the Sugar 'frame". This summer, we'd like to add a social component to our help. Using the same mechanism for determining content, we'd like to offer our users a channel for topical discussions. The most simple way to do with would be to launch them into topical IRC channels. However we'd like to also explore tools such as [http://www.discourse.org/about/ "Discourse"]. The first step will be to determine a platform for the social help in discussion with the developer community; step two will be to implement the social help mechanism in Sugar. | ||
;Expected results: A system-wide mechanism for jumping into a forum for topical discussions about Sugar and Sugar activities; a service that can be dropped onto a classroom server for circumstances where Internet access is not available or permitted. | ;Expected results: A system-wide mechanism for jumping into a forum for topical discussions about Sugar and Sugar activities; a service that can be dropped onto a classroom server for circumstances where Internet access is not available or permitted. | ||
;Knowledge prerequisite: Strong background in Python and webservices | ;Knowledge prerequisite: Strong background in Python and webservices | ||
|- | |- | ||
− | !valign=top | [[File:Platipy-thumb.png|90px|center|thumbnail|Platipy Project]] || valign=top | Spyral (Platipy) || valign=top | Austin Cory Bart, Robert Deaton||align=left valign=top | | + | !valign=top | [[File:Platipy-thumb.png|90px|center|thumbnail|Platipy Project]] || valign=top | Spyral (Platipy) || valign=top | Austin Cory Bart (acbart@vt.edu), Robert Deaton (rdeaton@platipy.org) ||align=left valign=top | |
− | ;Brief explanation: [http://platipy.readthedocs.org/en/latest/ "Spyral"] is a Pygame replacement.. | + | ;Brief explanation: [http://platipy.readthedocs.org/en/latest/ "Spyral"] is a Pygame replacement designed to make the process of developing pygame games for Sugar a lot easier. It's part of the Platipy project, that documents the process and Spyral. Spyral is still being actively developed, but is already mature enough for game development. |
− | ;Expected results: | + | ;Expected results: There are a number of features that we want to add to Spyral: improved collision handling, an audio API (even just exposing Pygames), hex-grid support, window/mac application freezing, more Widgets and Form functionality. We also wish to extend more of the documentation on how to create educational games; tutorials on our advanced features like layering, styles, the event handler, etc. |
;Knowledge prerequisite: Strong background in Python, prefered experience with Pygame. | ;Knowledge prerequisite: Strong background in Python, prefered experience with Pygame. | ||
|} | |} | ||
Line 69: | Line 94: | ||
! !! Title !! Mentor !! Project | ! !! Title !! Mentor !! Project | ||
|- | |- | ||
− | !valign=top | [[File:Turtle-3d.png|90px|thumb|center]] || valign=top width="15%" | Turtle Art 3D || valign=top width="15%" | Walter Bender, Antonio Battro, Horacio Reggini||align=left valign=top| | + | !valign=top | [[File:Turtle-3d.png|90px|thumb|center]] || valign=top width="15%" style="background:#00bb00;" | Turtle Art 3D || valign=top width="15%" | Walter Bender, Antonio Battro, Horacio Reggini, Tony Forster||align=left valign=top| |
;Brief explanation: Sugar is lacking any 3D programming environments. This project would be to develop such an environment. There is a rich program in 3D Logo developed by Horacio Reggini [http://www.horacioreggini.com.ar/wp-content/uploads/2012/07/IdeasYFormas.pdf]. The specific project would be to write an extension to [[Activities/Turtle Art|Turtle Blocks]] to encompass Reggini's ideas. | ;Brief explanation: Sugar is lacking any 3D programming environments. This project would be to develop such an environment. There is a rich program in 3D Logo developed by Horacio Reggini [http://www.horacioreggini.com.ar/wp-content/uploads/2012/07/IdeasYFormas.pdf]. The specific project would be to write an extension to [[Activities/Turtle Art|Turtle Blocks]] to encompass Reggini's ideas. | ||
;Expected results: A new Turtle Art plugin that adds basic 3D transforms to Turtle Blocks (e.g., setxyz, pitch, roll, yaw); camera and lighting models; surface texture mapping; and a rich set of example projects. A bonus would be a plugin for generating objects for MineCraft. | ;Expected results: A new Turtle Art plugin that adds basic 3D transforms to Turtle Blocks (e.g., setxyz, pitch, roll, yaw); camera and lighting models; surface texture mapping; and a rich set of example projects. A bonus would be a plugin for generating objects for MineCraft. | ||
;Knowledge prerequisite: Python and some 3D graphics (3D transform) experience. | ;Knowledge prerequisite: Python and some 3D graphics (3D transform) experience. | ||
|- | |- | ||
− | !valign=top | [[File:MusicKeyboard.png|90px|thumb|center]] || valign=top | Music Suite || valign=top |Gonzalo Odiard ||align=left valign=top| | + | !valign=top | [[File:MusicKeyboard.png|90px|thumb|center]] || valign=top style="background:#00bb00;" | Music Suite || valign=top |Gonzalo Odiard ||align=left valign=top| |
;Brief explanation: Sugar's primary music offering, the TamTam suite, is woefully inadequate with touch interfaces. The goal of this project is to rewrite the suite to use the underlying mechanisms demonstrated in the touch-friendly Music Keyboard activity. | ;Brief explanation: Sugar's primary music offering, the TamTam suite, is woefully inadequate with touch interfaces. The goal of this project is to rewrite the suite to use the underlying mechanisms demonstrated in the touch-friendly Music Keyboard activity. | ||
;Expected results: Touch-friendly replacements for TamTamMini, TamTamJam, TamTamEdit, and TamTamSynthesizerLab. | ;Expected results: Touch-friendly replacements for TamTamMini, TamTamJam, TamTamEdit, and TamTamSynthesizerLab. | ||
Line 94: | Line 119: | ||
;Knowledge prerequisite: Strong background in C and Python programming, GTK3, and GST 1.0 | ;Knowledge prerequisite: Strong background in C and Python programming, GTK3, and GST 1.0 | ||
|- | |- | ||
− | !valign=top | || valign=top |Hack a Stuffed Animal|| valign=top |Stephen Thomas||align=left valign=top| | + | !valign=top | || valign=top style="background:#00bb00;" |Hack a Stuffed Animal|| valign=top |Stephen Thomas||align=left valign=top| |
;Brief explanation: Many children can not communicate verbally whether due to nonverbal autism or some other factor. While there are many catalogs and websites with adaptive equipment and software but the prices are high. There is a OLPC deployment in Uruguay where a student uses his stuffed animal as an input device for using an XO and Etoys. We would like to build on this to make it easier and lower cost or these children and their parents to communicate and use computers. The software must be FOSS and the hardware to hack a Stuffed Animal could potentially repurpose old keyboards or under $10 by repurposing a used USB game controller (free if kids donate their old ones). | ;Brief explanation: Many children can not communicate verbally whether due to nonverbal autism or some other factor. While there are many catalogs and websites with adaptive equipment and software but the prices are high. There is a OLPC deployment in Uruguay where a student uses his stuffed animal as an input device for using an XO and Etoys. We would like to build on this to make it easier and lower cost or these children and their parents to communicate and use computers. The software must be FOSS and the hardware to hack a Stuffed Animal could potentially repurpose old keyboards or under $10 by repurposing a used USB game controller (free if kids donate their old ones). | ||
Line 126: | Line 151: | ||
;Knowledge prerequisite: Squeak programming skills | ;Knowledge prerequisite: Squeak programming skills | ||
|} | |} | ||
+ | |||
==Subpages== | ==Subpages== | ||
{{Special:PrefixIndex/{{PAGENAMEE}}/}} | {{Special:PrefixIndex/{{PAGENAMEE}}/}} |
Latest revision as of 08:37, 5 June 2014
Students: See our guide on how to participate in Google Summer of Code for more information.
The Sugar Labs Google Summer of Code 2014 projects/students/mentors:
Project | Student | Mentor | Blog |
---|---|---|---|
Music Suite | Aneesh Dogra | Gonzalo Odiard | |
Turtle Art 3D | Anubhav Jaiswal | Tony Forster | |
Activity Unit/UI Tests | Gaurav Parida | Daniel Narvaez | [1] |
Port to Python 3 | Kunal Arora | Sameer Verma | |
Bulletin Board | Nazrul Haque Athar | Walter Bender | [2] |
Hack a Stuffed Animal | Jade Garrett | Stephen Thomas | |
Social Help for Sugar | Prasoon Shukla | Paul Cotton | [3] |
Cordova Container for Sugar | Puneet Kaur | Lionel Laské | [4] |
Sugar Listens | Rodrigo Parra | Martin Abente | [5] |
Project candidates
In the table below is list of projects potential participants might contribute within GSoC program.
- 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.
- Note
- Accepted projects are in Green
Sugar Core
Title | Mentor | Project | |
---|---|---|---|
Port to Python3 | Walter Bender and Daniel Narvaez |
| |
Activity Unit Tests | Walter Bender and Daniel Narvaez |
| |
JavaScript Collaboration for Sugar | Manuel Quiñones |
| |
Cordova/PhoneGap container for Sugar | Lionel Laské and Suraj K S |
| |
Voice Interface | Martin Abente Lahaye |
| |
Assistive Interface | Andres Aguirre |
| |
Bulletin Board | Walter Bender |
| |
Social Help | Martin Abente, Paul Cotton, Walter Bender |
| |
Spyral (Platipy) | Austin Cory Bart (acbart@vt.edu), Robert Deaton (rdeaton@platipy.org) |
|
Sugar Activities
Title | Mentor | Project | |
---|---|---|---|
Turtle Art 3D | Walter Bender, Antonio Battro, Horacio Reggini, Tony Forster |
| |
Music Suite | Gonzalo Odiard |
| |
Video Editing Suite | Gonzalo Odiard |
| |
Assistive Robots | Alan Alguar |
| |
GST-1.0 | Walter Bender |
| |
Hack a Stuffed Animal | Stephen Thomas |
In this project a student would design and document how to hack a stuffed animal to be used as an input device similar to a joystick or arrow and a few other keys to allow a nonverbal child to use their favorite stuffed animal as an input device.
| |
PECS for Non-Verbal Communication | Stephen Thomas |
| |
Etoys touch UI | Rita Freudenberg |
Bert Freudenberg has done some initial work adapting the Squeak Virtual Machine and Morphic to support multitouch events [1]. As he stated, the UI would need to be improved (or maybe even redesigned from scratch) before we can deliver this to kids. In this project we don't propose the complete redesign of Etoys UI (which we think it would take more than 3 months to complete) but at least a new implementation of Morphic interaction that takes into account multitouch gestures. [1] http://croquetweak.blogspot.com.ar/2010/06/squeak-etoys-on-ipad.html
| |
Physical Etoys XO bundle | Ricardo Moran |
|
Subpages
- Summer of Code/2014/Activity Unit Tests
- Summer of Code/2014/Amar
- Summer of Code/2014/AnaBalica/Social Help
- Summer of Code/2014/AnubhavJ/
- Summer of Code/2014/AnubhavJ/Turtle Art 3D
- Summer of Code/2014/Cordova Container for Sugar
- Summer of Code/2014/Etoys Touch UI
- Summer of Code/2014/Gp94/Activity Unit Tests
- Summer of Code/2014/Hack a stuffed animal
- Summer of Code/2014/Improved Imageviewer
- Summer of Code/2014/Javascript Collaboration For Sugar
- Summer of Code/2014/Music Keyboard Enchancements
- Summer of Code/2014/Physical Etoys XO Bundle
- Summer of Code/2014/Port to Python3
- Summer of Code/2014/Prasoon2211/Social Help
- Summer of Code/2014/Proposal name
- Summer of Code/2014/Proposal to port sugar core to python3
- Summer of Code/2014/Smagnin/Music Suite
- Summer of Code/2014/Smart Sugar
- Summer of Code/2014/Sugar Listens
- Summer of Code/2014/Travis Irby Proposal
- Summer of Code/2014/Voice Recognition Engine
- Summer of Code/2014/Your Proposal
- Summer of Code/2014/ayush/js-collaboration
- Summer of Code/2014/bliss-sid/Voice-interface
- Summer of Code/2014/blogs
- Summer of Code/2014/bulletinboard
- Summer of Code/2014/curiousguy13/Bulletin Board
- Summer of Code/2014/curiousguy13/Port To Python3
- Summer of Code/2014/milestones
- Summer of Code/2014/native/Bulletin Board
- Summer of Code/2014/port-to-python3
- Summer of Code/2014/rohitshetty/turtle art 3d
- Summer of Code/2014/sugar cordova
- Summer of Code/2014/testing sugar activities