Difference between revisions of "Summer of Code/2013"

From Sugar Labs
Jump to navigation Jump to search
(use intrawiki format to preserve 'What links here' feature.)
 
(101 intermediate revisions by 19 users not shown)
Line 1: Line 1:
== Project candidates ==
+
[[Summer of Code/2013/Application|A draft copy of our application]]
  
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).
+
The proposals were moved to [[GSoC/2013/Proposals]].
  
;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.
+
= Approved Projects=
;Note:Potential students, more project ideas can be found on our [[Features]] page.
 
  
 
__TOC__
 
__TOC__
  
=== Write Turtle Blocks in Turtle Blocks ===
+
== Sugar Core ==
  
In support of making Sugar as transparent and fungible as possible, we'd like to make it not just Free, but provide affordances for end-user modifications. Turtle Blocks is a possible stepping stone towards that end: a programming environment approachable by children as young as five-years old. So as a first step, let's write Turtle Blocks in Turtle Blocks. From that experience, we'll hopefully know how to approach the more general Sugar problem.
+
=== Sugar Framework for writing activity in full HTML5 ===
  
''Contact'': [[User:Walter]]
+
[[File:Sugarhtml5.png|300px]]
 +
 
 +
The objective is to develop a JavaScript framework allowing to write Sugar activities in full HTML5/JavaScript. The framework will expose to JavaScript an API to call Sugar features:
 +
* Journal/Datastore,
 +
* Collaboration/Telepathy,
 +
* Toolbar handling,
 +
* Sugar look&feel - for example via a CSS style sheet usable on HTML controls
 +
* Access to Sugar settings (buddy name, colors, current language, ...),
 +
* View source.
 +
Like PhoneGap/Cordova, the framework will come with a template to develop and package easily a new HTML5 activity. A basic tutorial will be include too.
 +
The work could be inspired by the work done with Enyo Framework in [http://booki.flossmanuals.net/make-your-own-sugar-activities/_draft/_v/1.0/developing-sugar-activities-using-html5/ 1]. By the way, the resulting framework should be JavaScript framework agnostic (no need for jQuery, Enyo, ...).
 +
 
 +
''Mentor'': [mailto:lionel@olpc-france.org Lionel Laské]
 +
 
 +
''Co-Mentor'': Daniel Narvaez
 +
 
 +
Level: Advanced
 +
 
 +
Benefits to the Student: A chance to learn from touching almost every corner of an advanced system.
 +
 
 +
Benefits to the Community: We'll greatly expand the reach of the project by opening the door to JavaScript programmers. Plus it will force us to clean up our APIs.
 +
 
 +
Student: Suraj KS
 +
 
 +
Wiki: [[HTML5 activities]]
 +
 
 +
=== 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
 +
 
 +
''Contact'': [[User:MrSteve]]
 +
 
 +
''Co-mentor'': [[User:dogi]]
 +
 
 +
Level: Advanced
 +
 
 +
Benefits to the Student: Learn more about web services
  
''Co-mentor'':Tony Forster
+
Benefits to the Community: We need more mechanisms for sharing ideas and work. This is low-hanging fruit.
  
=== Portfolio videos ===
+
Student: [[User:Rahul Gaur ]]
  
Working with the maintainer of [[Activities/Portfolio|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.
+
Wiki: [[Summer of Code/2013/moksaya]]
  
[[File:Portfolio-Tool.png|300px]]
+
=== Implement help mechanism for activities using Mallard ===
  
A working knowlewdge of Python and some gstreamer skills are a must.
+
[http://projectmallard.org/ Mallard] is a mark-up 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 integration into our i18n / L10n system.
  
 
''Contact'': [[User:Walter]]
 
''Contact'': [[User:Walter]]
  
''Co-mentor:'' [[User:Aneesh Dogra]]
+
''Co-mentor'': [[User:Aneesh Dogra]]
 +
 
 +
''Co-mentor'': [[User:Francis]]
 +
 
 +
Student: Kalpa Welivitigoda
  
=== Unified journal view ===
+
Wiki page: [[GSoC/2013/Activity Help]]
  
Rather than viewing the details of a Journal entry on a separate page, the idea is to make the details appear in an expandable 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.
+
Level: Advanced
  
[[File:Journal-02.jpeg|300px]]
+
Benefits to the Student: Learn about lots of cool tools.
  
This project requires some working knowledge of the low-level Sugar Journal and datastore code.
+
Benefits to the Community: Most of our help is in the wiki and in English. This will enable us to reach our users more directly and in their first language.
  
''Contact'': [[User:Walter]]
+
=== Social Sugar ===
 +
 
 +
Design and Develop GUI components that can help Sugar to reflect user's social interactions from external platforms. A perfect target can be the Group-View that shows user's friends and their shared activities [[Human Interface Guidelines/The Laptop Experience/Zoom Metaphor#Groups]], but it _could_ also show social information about these friends, IE social networks or sharing platforms publications. This would also give this zoom-level added value.
  
=== Plugin support ===
+
Community members are already working on the backend component to support this feature [http://lists.sugarlabs.org/archive/sugar-devel/2013-March/042055.html]. This is also a great opportunity to complement other GSoC-2013 proposals.
  
A number of activities, notably [[Activities/TurtleArt#Plugins|Turtle Art]], are supporting plugins -- the ability to extend features by downloading additional modules. However, [[Activities/TurtleArt#How_to_install_a_plugin|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. [http://activities.sugarlabs.org ASLO hosting]] should also be considered.
+
''Contact'': [[User:tch]]
  
Strong Python skills and experience with Sugar toolkit required.
+
Level: Intermediate
  
''Contact'': [[User:Walter]]
+
Benefits to the Student: (a) Learn about Sugar's core, UI Design and web services and (b) interact with community members and other GSoC participants.
  
''Co-mentor:'' [[User:Aneesh Dogra]]
+
Benefits to the Community: Social interaction is a key element in the learning process, therefore we should promote this.
  
''Co-mentor: '' [[User:Francis]]
+
Student: Akshit Khurana
  
=== End-user modifications of Sugar source ===
+
Wiki: [[Summer of Code/2013/Social Sugar project]]
  
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.
+
== Sugar Activities ==
  
Strong Python skills and experience with Sugar toolkit required.
+
=== Python export functionality for Turtle Blocks ===
  
''Contact'': [[User:Walter]]
+
[[File:TurtleArt.svg]] [[File:Pippy.svg]]
  
=== Project sharing website ===
+
A goal of Turtle Blocks is not just to get children programming, but to launch them out of block world into text-based languages where they can develop more sophisticated programs. While Turtle Blocks is written in Python and can be extended by importing Python modules, it currently exports only in its native block language and in Logo. For this project, we'd want to enable a Python export option so that programmers can take their Turtle projects and extend them into full-fledged Python projects. The hypothesis is that this would lead more children to grow their programming skills beyond simple block programs.
  
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:
+
''Contact'': [[User:Walter]]
  
* Ability to engage and connect with friends and classmates using various  Social Networking sites/techniques.
+
''Co-mentor'': Tony Forster
* 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
 
  
''Contact'': [[User:MrSteve]]
+
Level: Advanced
  
''Co-mentor'': [[User:dogi]]
+
Benefits to the Student: Lots of good Python hacking involved
  
=== Sugar as a Service website ===
+
Benefits to the Community: We'll have a vehicle for studying whether or not we can bring students of programming from block worlds to text-based programming and debugging.
  
Create a Site for managing multiple "Sugar in a Browser" sessions like [https://one.treehouse.su/gar treehouse] or [http://cscott.net/junk/ta-broadway.png broadway gnome]
+
Student: Marion Zepf
Some features include:
 
* Ability of integration of [https://chrome.google.com/webstore/detail/gbchcmhmhahfdphkhkmpfmihenigjmpp 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/)
 
  
''Contact'': [[User:dogi]]
+
Wiki: [[Summer of Code/2013/Turtle Blocks Python export project]]
  
''Co-mentor'': [[User:Aneesh Dogra]]
+
=== Add recording to Music Keyboard activity ===
  
=== Implement collaboration in Paint Activity ===
+
[[File:Music keyboard screenshot.png]]
  
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.
+
Music Keyboard activity uses part of TamTamMini code to play sounds. Should be good add the capability of record the played sound.
  
 
Requires familiarity with Python.
 
Requires familiarity with Python.
Line 95: Line 134:
 
''Contact'': [[User:Godiard]]
 
''Contact'': [[User:Godiard]]
  
=== Implement help mechanism for activities using Mallard ===
+
Level: Beginner
 +
 
 +
Benefits to the Student: Learn about python and music libraries (csound)
 +
 
 +
Benefits to the Community: More shared spaces for expression is aligned with our pedagogical goals.
 +
 
 +
'''More information ''' [[Activities/Music Keyboard]]
 +
 
 +
Student: Anna Rudkovskaya
  
[http://projectmallard.org/ 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.
+
Wiki:
  
''Contact'': [[User:Walter]]
+
=== ASL Open Video Chat ===
  
''Co-mentor'': [[User:Aneesh Dogra]]
+
Open Video Chat is an Free/Open Source video conferencing activity for the XO laptop. This project was originally started in March 2010 with funding from the National Technical Institute for the Deaf in Rochester NY.
  
''Co-mentor'': [[User:Francis]]
+
'''Focus'''
  
=== IRC Activity fixes ===
+
The primary focus of Open Video Chat is to provide streaming video at frame rates that are suitable for communicating with sign language. This ends up being somewhere between 20 and 30 frames per second.
  
* [[Activities/IRC]] is built around an all-Python IRC client, [http://urk.sourceforge.net/ Urk] which is no longer maintained since 2007. Thus, its better to port the activity to a newer and a better all-python IRC library.
+
'''Current Features'''
* [[Activities/IRC]] is significantly slower than other IRC clients available on other platforms. The reason being its not multi-threaded. Thus, adding multi-threading support will be very useful.
+
* 20 FPS video
* [[Activities/IRC]] is missing some useful features including sound on highlight (play a sound when the user is highlighted in a channel), user info (whois data) and many others. Look at some popular IRC clients running on other platforms and research about the features which can be added to [[Activities/IRC]] and how can they be added.
+
* preview window
 +
* text chat
  
Requires familiarity with Python and IRC protocol specifications.
+
'''Desired Features'''
 +
*RTP protocol implementation
 +
*faster frame rate (30+ FPS)
 +
*audio
 +
*higher resolution video
  
''Mentor'': [[User:Aneesh Dogra]]
+
IRC
 +
* The contributors of Open Video Chat frequent #rit-foss on freenode
  
''Co-mentor'': [[User:RafaelOrtiz]]
+
''Contact'': [[User:decause]]
  
=== Activity Development Framework ===
+
Level: Intermediate/Advanced
  
This framework should allow to:
+
Benefits to the Student: Learn about gstreamer video pipelines. Learn about sugar networking stack and services (Telepathy). Learn about Python and Sugar UI.
* Make toolbars from factories removing many lines of code.
 
* Start a project through typing a command.
 
* Doing collaboration easier to implement.
 
* Any other work which makes the development process hard and can be framed.
 
  
''Contact'': [[User:Francis]]
+
Benefits to the Community: The Video/Text chat software is nearly complete (90%), it just needs to be ported to latest version of sugar and include new telepathy bindings.
  
=== ASLO Enhancements ===
+
Source Code: [https://github.com/FOSSRIT/Open-Video-chat Github Repository]
 +
Activity Page: [http://activities.sugarlabs.org/en-US/sugar/addon/4305 A.SL.O]
  
The current [http://activities.sugarlabs.org/ Activity Library] is based in an old version of the [http://addons.mozilla.org/ Mozilla Add-ons Library].
+
Student: Casey DeLorme
  
This project is divided in three parts:
+
Wiki: [[Summer of Code/2013/Open Video Chat|GSoC 2013 Open Video Chat]]
  
* Update the old platform and have the corresponding modifications to distribute Sugar Activities instead of Mozilla Plugins.
+
== Infrastructure ==
* Add an activity manager to the control panel. Allowing the installation/update of activities from ASLO.
 
* Add to the Sugar Bundle Builder a way to auto-upload activities to ASLO.
 
  
''Contact'': [[User:Francis]]
+
=== Translation Server ===
=== Chat Activity with translation ===
 
[[File:Chat.JPG|300px]]
 
*'''Above ^ Example of a chat where to 2 people connected by chat could not talk to each other.'''
 
: Due to language barrier
 
*Add a drop-down box that translates of the chat messages coming from another user.
 
:Similar to the private/shared drop down shown.
 
*This could work like the #sugar / #sugar-es channels on IRC
 
''Contact'': [[User:Satellit]]
 
  
''Co-mentor'': [[User:Aneesh Dogra]]
+
This project aims to create a server/client setup to establish a consistent way of translating arbitrary text using several different machine translation backends. It provides a single interface to many different translation services, simplifying the process of adding reliable machine translation to Sugar activities.
  
===Stereo data capture in Turtleart and Measure===
+
'''Wiki''': [[Summer of Code/2013/Translation Server]]
Stereo input is supported by XO-1.5, 1.75 and 4 hardware but is disabled due to buggy software. (Could you please elaborate - Aneesh)
 
  
This is a possible project, if not too difficult.
+
'''Student''': Erik Price
  
Possible mentors
+
'''Mentors''': [[User:Aneesh Dogra]] [[User:Walter]]
  
Tony Forster
+
'''Source''': [https://github.com/boredomist/translate]
  
Walter (if he is OK with it)
+
'''Bug tracker''': [https://github.com/boredomist/translate/issues?state=open]

Latest revision as of 13:21, 7 November 2013

A draft copy of our application

The proposals were moved to GSoC/2013/Proposals.

Approved Projects

Sugar Core

Sugar Framework for writing activity in full HTML5

Sugarhtml5.png

The objective is to develop a JavaScript framework allowing to write Sugar activities in full HTML5/JavaScript. The framework will expose to JavaScript an API to call Sugar features:

  • Journal/Datastore,
  • Collaboration/Telepathy,
  • Toolbar handling,
  • Sugar look&feel - for example via a CSS style sheet usable on HTML controls
  • Access to Sugar settings (buddy name, colors, current language, ...),
  • View source.

Like PhoneGap/Cordova, the framework will come with a template to develop and package easily a new HTML5 activity. A basic tutorial will be include too. The work could be inspired by the work done with Enyo Framework in 1. By the way, the resulting framework should be JavaScript framework agnostic (no need for jQuery, Enyo, ...).

Mentor: Lionel Laské

Co-Mentor: Daniel Narvaez

Level: Advanced

Benefits to the Student: A chance to learn from touching almost every corner of an advanced system.

Benefits to the Community: We'll greatly expand the reach of the project by opening the door to JavaScript programmers. Plus it will force us to clean up our APIs.

Student: Suraj KS

Wiki: HTML5 activities

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

Contact: User:MrSteve

Co-mentor: User:dogi

Level: Advanced

Benefits to the Student: Learn more about web services

Benefits to the Community: We need more mechanisms for sharing ideas and work. This is low-hanging fruit.

Student: User:Rahul Gaur

Wiki: Summer of Code/2013/moksaya

Implement help mechanism for activities using Mallard

Mallard is a mark-up 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 integration into our i18n / L10n system.

Contact: User:Walter

Co-mentor: User:Aneesh Dogra

Co-mentor: User:Francis

Student: Kalpa Welivitigoda

Wiki page: GSoC/2013/Activity Help

Level: Advanced

Benefits to the Student: Learn about lots of cool tools.

Benefits to the Community: Most of our help is in the wiki and in English. This will enable us to reach our users more directly and in their first language.

Social Sugar

Design and Develop GUI components that can help Sugar to reflect user's social interactions from external platforms. A perfect target can be the Group-View that shows user's friends and their shared activities Human Interface Guidelines/The Laptop Experience/Zoom Metaphor#Groups, but it _could_ also show social information about these friends, IE social networks or sharing platforms publications. This would also give this zoom-level added value.

Community members are already working on the backend component to support this feature [1]. This is also a great opportunity to complement other GSoC-2013 proposals.

Contact: User:tch

Level: Intermediate

Benefits to the Student: (a) Learn about Sugar's core, UI Design and web services and (b) interact with community members and other GSoC participants.

Benefits to the Community: Social interaction is a key element in the learning process, therefore we should promote this.

Student: Akshit Khurana

Wiki: Summer of Code/2013/Social Sugar project

Sugar Activities

Python export functionality for Turtle Blocks

TurtleArt.svg Pippy.svg

A goal of Turtle Blocks is not just to get children programming, but to launch them out of block world into text-based languages where they can develop more sophisticated programs. While Turtle Blocks is written in Python and can be extended by importing Python modules, it currently exports only in its native block language and in Logo. For this project, we'd want to enable a Python export option so that programmers can take their Turtle projects and extend them into full-fledged Python projects. The hypothesis is that this would lead more children to grow their programming skills beyond simple block programs.

Contact: User:Walter

Co-mentor: Tony Forster

Level: Advanced

Benefits to the Student: Lots of good Python hacking involved

Benefits to the Community: We'll have a vehicle for studying whether or not we can bring students of programming from block worlds to text-based programming and debugging.

Student: Marion Zepf

Wiki: Summer of Code/2013/Turtle Blocks Python export project

Add recording to Music Keyboard activity

Music keyboard screenshot.png

Music Keyboard activity uses part of TamTamMini code to play sounds. Should be good add the capability of record the played sound.

Requires familiarity with Python.

Contact: User:Godiard

Level: Beginner

Benefits to the Student: Learn about python and music libraries (csound)

Benefits to the Community: More shared spaces for expression is aligned with our pedagogical goals.

More information Activities/Music Keyboard

Student: Anna Rudkovskaya

Wiki:

ASL Open Video Chat

Open Video Chat is an Free/Open Source video conferencing activity for the XO laptop. This project was originally started in March 2010 with funding from the National Technical Institute for the Deaf in Rochester NY.

Focus

The primary focus of Open Video Chat is to provide streaming video at frame rates that are suitable for communicating with sign language. This ends up being somewhere between 20 and 30 frames per second.

Current Features

  • 20 FPS video
  • preview window
  • text chat

Desired Features

  • RTP protocol implementation
  • faster frame rate (30+ FPS)
  • audio
  • higher resolution video

IRC

  • The contributors of Open Video Chat frequent #rit-foss on freenode

Contact: User:decause

Level: Intermediate/Advanced

Benefits to the Student: Learn about gstreamer video pipelines. Learn about sugar networking stack and services (Telepathy). Learn about Python and Sugar UI.

Benefits to the Community: The Video/Text chat software is nearly complete (90%), it just needs to be ported to latest version of sugar and include new telepathy bindings.

Source Code: Github Repository Activity Page: A.SL.O

Student: Casey DeLorme

Wiki: GSoC 2013 Open Video Chat

Infrastructure

Translation Server

This project aims to create a server/client setup to establish a consistent way of translating arbitrary text using several different machine translation backends. It provides a single interface to many different translation services, simplifying the process of adding reliable machine translation to Sugar activities.

Wiki: Summer of Code/2013/Translation Server

Student: Erik Price

Mentors: User:Aneesh Dogra User:Walter

Source: [2]

Bug tracker: [3]