Summer of Code/2017

Project Ideas

Title Mentor Project


Internationalization and Localization Chris Leonard
Brief explanation
A goal of Sugar Labs is to enable our users to experience Sugar in their own native language. See Translation Proposal To Do List for details. See Translation Team for framework description.
Expected results
Work flow improvements for i18n
Knowledge prerequisites
Some knowledge of Pootle; some scripting experience; Python and JavaScript


New Back-end Server for Turtle Blocks and Music Blocks
Walter Bender
Vikram Ahuja
Ignacio Rodriguez
Brief explanation
Last year we sponsored an exploration of using a git-like back end for projects so that they could be cloned, forked, etc. This summer we would like to implement and deploy this new approach.
Expected results
Deployment of "git" back end.
Knowledge prerequisites
Knowledge of Git, JavaScript, server-side skills


Going Beyond Equal Temperament in Music Blocks
Walter Bender
Devin Ulibarri
Brief explanation
Most modern music systems are designed around equal temperament. But there are many ways to chose and tune notes in a musical system that offer different expressive characteristics. See also Music Blocks issues.
Expected results
Extend Music Blocks such that different approaches to temperament are available to the user.
Knowledge prerequisites
Knowledge of JavaScript, music theory


Giving Sugar Labs Website a New Look Ignacio Rodriguez
Samson Goddy
Dave Crossland
Tymon Radzik
Brief explanation
Sugar Labs would like a new look for its homepage, with the goals of making it more attractive and easier to explore (See link to get more information concerning the proposed homepage).
Expected results
Deployment of a new website for Sugar Labs
Knowledge prerequisites
JavaScript, HTML, CSS, Ruby, JQuery, jeckyl, and/or django


Maintenance of activities.sugarlabs.org (ASLO) (volunteers?)
Brief explanation
http://activities.sugarlabs.org/ is the Sugar Labs app store, where activities are hosted and downloaded. Some maintenance tasks are needed. Sugar uses activities.sugarlabs.org in Software Update in My Settings, and has a link to it in the Browse default page.
Expected results
Fix downloads by non-Sugar browsers; old versions are offered. Fix downloads by new versions of Sugar; old versions are offered. Make activity maintainer take-over easier; not easy at the moment. Adopt the new look from the new sugarlabs.org site; theme now is quite old. Show new activity.info metadata such as source repository. Other problems listed in bugs.sugarlabs.org against component activities.sugarlabs.org. Semi-automate common maintenance tasks; like adding a new Sugar version. Document future maintenance on the Wiki.
Knowledge prerequisites
PHP, MySQL, Python, Apache, cron, PHP-Cake, JavaScript, HTML, CSS, and git. See source code.


School Management Backend Walter Bender
Brief explanation
Sugar is a desktop and a collection of apps. It has great internal features for collaboration and journaling. But it doesn't have any mechanism for managing courses/curriculum/administrative functions commonly found in "school management systems". It could be possible to overlay on top of Sugar web-services such a toolkit.
Expected results
a framework, a core implementation, and documentation for expanding the implementation.
Knowledge prerequisites
Python, django
Timbre Widget for Music Blocks
Walter Bender
Devin Ulibarri
Brief explanation
Ayush Kumar designed a widget for designing voices for Music Blocks (See [1]). This project would be to implement the design.
Expected results
a working widget for Music Blocks for manipulating Timbre.
Knowledge prerequisites
JavaScript
Sugarizer Server Dashboard
Lionel Laské
Michaël Ohayon
Brief explanation
Sugarizer is a way to use Sugar on any device using web technologies (HTML5/JavaScript). Strictly speaking, Sugarizer is not a port of Sugar. Sugarizer is based on Sugar Web library, which mimics the Sugar UI using HTML5 and CSS3 and reproduces Sugar views (Home, List, ...). Sugarizer reimplements features of Sugar Core (datastore and journal) in JavaScript and integrates activities written for Sugar in Sugar Web. The goal of this specific project is to create the "Sugarizer Server Dashboard". This feature will require an enhancement of the existing Sugarizer Server API specifically to integrate a real authentication mechanism.
Expected results
Sugarizer Server Dashboard is a web admin console for Sugarizer Server. The Dashboard will allow to manage and analyze all activity on a Sugarizer Server. Dashboard features will include:
  • Users: how many users has been registered on the server, how many users currently connected, top users on the server, last users connection, create/edit/remove an user.
  • Journal: how many Journals and how many entries in Journal on the server, last Journal and last entries, size of Journals, top Journals, edit a journal (see/update/remove) entries.
  • Application: how many applications are available on the server, change application visibility from Client, update order and way to appear in favorite view.
  • Graphic and request: display graphics and report on previous data.
Knowledge prerequisites
HTML5/JavaScript, bootstrap, node.js, MongoDB
How to start
Clone the Sugarizer repository, then install Sugarizer server using instructions here, finally explore the Sugarizer Server API and think about way to implement dashboard features with existing API.
Sugarizer Deployement and Management Tool for Android
Michaël Ohayon
Lionel Laské
Brief explanation
Sugarizer is a way to use Sugar on any device using web technologies. Sugarizer can be deployed on many devices including Android phones and tablets. The goal of this specific project is to create the "Sugarizer Deployment and Management Tool for Android".
Expected results
Sugarizer Server Deployment and Management Tool is a GUI Tool working on GNU/Linux, Mac and Windows to deploy and configure Android devices using ADB (Android Debug Bridge).
  • Inventory : Collect and store devices data like serial number, os version, device name, installed applications, current Android launcher and Sugarizer availability.
  • Application Manager : Install or remove applications using APK files.
  • File Manager : Add / Remove files
  • Input Manager : Click / Touch coordinates on the screen, launch applications to perform automations.
  • Scenario Writer : Allow non developpers to create sequences to perform all the steps previously defined.
Knowledge prerequisites
Java and JavaFX / Kotlin and TornadoFX
How to start
Create a Java or Kotlin project using Intellij and display a window using JavaFX or TornadoFX. Then add https://github.com/vidstige/jadb and display connected android devices in the window.
User Manual for Music Blocks
Walter Bender
Devin Ulibarri
Brief explanation
We have a Guide, but we really need something a bit more polished as a user manual.
Expected results
A website and PDF document that can be bound.
Knowledge prerequisites
Knowledge of music theory, writing skills
Just say no to GTK2 Ignacio Rodriguez
Sam Parkinson

Abhijit Patel

Brief explanation
GTK2 and GST0.10 are end of life. We need to upgrade the remaining activities with these dependencies.
Expected results
New versions of Turtle, Speak, Chat, Record, and a dozen others
Knowledge prerequisites
Knowledge of GTK, GST, and Python
Develop Activity
AKA Pippy JS, Taller del Artesano 2
Sebastian Silva
Brief explanation
We don't have a Javascript IDE for writing activities. This is a proposal to collaborate in making one. It would have templates for writing Javascript and Python.
Expected results
New activity capable of making new activities, runnable in Web and Sugarizer
Knowledge prerequisites
Python, Javascript, HTML5, CSS
Debian SugarBlend

A.K.A: Harmonic Distribution, Deployment Platform

Sebastian Silva
Jonas Smedegaard
Brief explanation
Debian is a base for many educational derivative distribution. We would like to make a SugarBlend that is a good base for local integrators.
Expected results
Debian SugarBlend of upcoming Debian 9 (Stretch)
Knowledge prerequisites
Debian packaging, Linux system, Shell scripting
Sugar on Raspberry Pi Walter Bender
Brief explanation
Raspberry Pi is a popular tool with the Maker Movement. Sugar runs quite well on RPi3, but it is in need of some love.
Expected results
Packaged Sugar for RPi suitable for inclusion on the RPi download page.
Knowledge prerequisites
Debian and/or Fedora packaging, Linux system, Shell scripting


Music Blocks for Mobile
Walter Bender
Devin Ulibarri
Brief explanation
Music Blocks was written for a browser, not mobile. It would be great to have a version native to mobile.
Expected results
Working version on Android/and/or iOS. Some UI adjustments will be necessary.
Knowledge prerequisites
Knowledge of JavaScript/Codrova/React and/or Swift.
Collab Rethink
Abhijit Patel
Walter Bender
Brief explanation
Sugar collaboration uses a deprecated library, python-telepathy, which we no longer wish to maintain. We need to upgrade Sugar collab using something better
Expected results
Working version of revised collab system.
  • Refactored presenceservice
  • Common Collabwrapper module for all sugar activities.
Knowledge prerequisites
python, prior knowledge of networking. knowledge of telepathy might be useful.

}