Changes

7,975 bytes added ,  20:17, 8 February 2016
Created page with "'''Students''': See our guide on how to participate in Google Summer of Code for more information. == Project candidates == In the tabl..."
'''Students''': See our guide on [[Summer_of_Code#How_to_participate|how to participate in Google Summer of Code]] for more information.

== Project candidates ==

In the table below is a list of projects potential participants might contribute to in the GSoC program.

;Note 0: These are project ideas from Sugar Labs contributors. '''Students, feel free to propose your ideas as well.'''
;Note 1: We are focusing on the Javascript components within Sugar this summer. It means that you've got to write activities for Sugar Web and Sugarizer. More information: on Sugar Web [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md][https://github.com/sugarlabs/sugar-docs/blob/master/activity.md] and on Sugarizer [http://sugarizer.org]
;Note 2: 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 3: Potential students, more project ideas can be found on our [[Features]] page.
;Note 4: Accepted projects are in '''<font color="#00bb00">Green</font>'''

== Sugar Core ==

{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"
|-style="background:#787878; color: white;"
! !! Title !! Mentor !! Project
|-
!valign=top | [[File:git_logo.png|90px|thumb|center]] ||valign=top width="15%" style="background:#e3e4e5;" |Git backend||valign=top width="15%" | Martin Abente Lahaye and Walter Bender ||align=left valign=top|
;Brief explanation: The Sugar Journal doesn't do a great job of supporting versioning or forking. This project is to build a backend for the Journal that is based on git, which does support versioning and forking. By building on top of a git hosting site we get the added benefit of network access as well.
;Expected results: Working code and an integration with Turtle Blocks
;Knowledge prerequisite: Strong background in Git and scripting languages such as Python, Ruby and JavaScript.

|-
!valign=top | || valign=top style="background:#e3e4e5;" | Performance tuning on machines with limited memory || valign=top | Samuel Greenfeld and James Cameron||align=left valign=top |
;Brief explanation: The newer Sugar builds have performance issues on some old hardware with limited memory. This is keeping some Sugar deployments from upgrading. This project is to look into the performance issues and tune Sugar for low-memory devices.
;Expected results: build suitable for running on OLPC XO-1 hardware
;Knowledge prerequisite:

|-
!valign=top | || valign=top style="background:#e3e4e5;" | Re-design collaboration with web technologies || valign=top | Martin Abente Lahaye and Walter Bender ||align=left valign=top |
;Brief explanation: Now that JavaScript has become a first class citizen in the Sugar ecosystem, we must re-design our collaboration model to allow collaboration between web activities regardless of the platform.
;Knowledge prerequisite: JavaScript, web sockets, web services.
|}

== Sugar Activities ==

{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"
|-style="background:#787878; color: white;"
! !! Title !! Mentor !! Project

|-
!valign=top | [[File:confusion.png|90px|thumb|center]] ||valign=top width="15%" style="background:#e3e4e5;" |Beyond Flashcards: Programming to ReadJS||valign=top width="15%" | and Walter Bender||align=left valign=top|
;Brief explanation: Back in the 1980s, IBM had a literacy program, "Writing to Read". The gist was that writing was a great way to spark a child's interest in reading. What if writing code could achieve a similar result? The project is to explore how programming might be incorporated into a literacy program. Like turtle, only simple sentences instead of stacks. It would be a "whole word" approach rather than a "phonics" approach: they can take "sentences" and make paragraphs that result in animations.
;Expected results: Working prototype
;Knowledge prerequisite: Strong background in Javascript

|-
!valign=top | ||valign=top width="15%" style="background:#e3e4e5;" | Covert Record, Clock, Speak and Measure to gstreamer 1.0 ||valign=top width="15%" | <TBD> ||align=left valign=top|
;Brief explanation: The vast majority of Activities that use gstreamer for sound have been converted to gstreamer 1.0 because the older 0.10 is now End of Life and is no longer being developed. It also adds quite a large set of extra duplicate dependencies to Sugar distributions. There's a lot of good examples of Activities that have been converted to provide excellent examples. The gstreamer 1.0 bindings are provided by gobject-introspection so it also assists in the conversion of Activities to gtk3.
;Expected results: As many of the above Activities converted to use gst 1.0
;Knowledge prerequisite: Strong background in python, gobject-introspection and gstreamer

|-
!valign=top | ||valign=top width="15%" style="background:#e3e4e5;" | Covert TamTam to Csound6 ||valign=top width="15%" | <TBD> ||align=left valign=top|
;Brief explanation: TamTam makes extensive use of CSound, other Activities like Memorize, Pippy, and TurtleBlocks also can make use of CSound bindings. With the introduction of CSound 6 to a number of distributions TamTam needs migration to use the newer version of CSound.
;Expected results: Convert TamTam to use CSound6, possibly other Activities
;Knowledge prerequisite: Strong background in python, background in CSound

|}

== Sugar Activities (Ports) ==

These are existing Python activities we'd like to see ported to JavaScript. In porting we expect that the activities will take on new UI features and pedagogical significance.

{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"
|-style="background:#787878; color: white;"
! !! Title !! Mentor !! Project
|-
!valign=top | [[File:Gsoc2015 llaske.svg|90px|thumb|center]] ||valign=top width="15%" style="background:#e3e4e5;" |Sugar Web Basic Activity Set||valign=top width="15%" |Lionel Laské||align=left valign=top|
Using Sugar Web Framework - the JavaScript Framework for Sugar - you will have to develop and enhance basic Sugar activity set including activities: Calculate, Paint, Memorize and Record. All activities should use Sugar features (specific UI, journal and collaboration) and should work both on Sugar/Fedora and Sugarizer/Web.
Pre-requisite:
* Good level on HTML5/JavaScript and knowledge of frameworks to handle Canvas objects.
* Knowledge of PhoneGap/Cordova
* Understanding of Python
* Good capacity to do reverse engineering on existing code.
More information: Sugar Web [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]
[https://github.com/sugarlabs/sugar-docs/blob/master/activity.md], Sugarizer [http://sugarizer.org], Calculate [http://activities.sugarlabs.org/en/sugar/addon/4076], Paint [http://activities.sugarlabs.org/en/sugar/addon/4082][http://activities.sugarlabs.org/en/sugar/addon/4695], Memorize [http://activities.sugarlabs.org/en/sugar/addon/4063][http://activities.sugarlabs.org/en/sugar/addon/4693] and Record [http://activities.sugarlabs.org/en/sugar/addon/4081].

|-
!valign=top | [[File:Turtle-Flags.png|90px|thumb|center]] ||valign=top width="15%" style="background:#e3e4e5;" |Turtle Confusion/Flags JS||valign=top width="15%" | Walter Bender||align=left valign=top|
;Brief explanation: Port of Turtle Confusion and Turlte Flags.
;Expected results:
;Knowledge prerequisite: Strong background in Javascript

|}

== Web Technology ==

Sugar is based on the Python programming language. A major new emphasis is on web techologies: HTML5, CSS, and Javascript. There is a need to help
our users learn these technologies.

{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"
|-style="background:#787878; color: white;"
! !! Title !! Mentor !! Project

|}
==Subpages==
{{Special:PrefixIndex/{{PAGENAMEE}}/}}