Difference between revisions of "Outreachy"

From Sugar Labs
Jump to navigation Jump to search
Line 26: Line 26:
  
 
Our community members span the globe—and while we have never had a commit from Antarctica, Sugar has been used on every continent. Contributors bring many skills: Python and JavaScript programming; graphic design; marketing and communication; documentation; user-interface design; game design; pedagogy; research into best practices; and, perhaps most important, using Sugar as a tool for learning.
 
Our community members span the globe—and while we have never had a commit from Antarctica, Sugar has been used on every continent. Contributors bring many skills: Python and JavaScript programming; graphic design; marketing and communication; documentation; user-interface design; game design; pedagogy; research into best practices; and, perhaps most important, using Sugar as a tool for learning.
 +
 +
Our mentors are:
 +
 +
* walter AT sugarlabs DOT com
 +
* devin AT devinulibarri DOT com
  
 
=== Getting Started ===
 
=== Getting Started ===

Revision as of 21:35, 21 February 2017

This page contains information specific to the May 30 to August 30, 2017 round of Outreachy internships.

About Sugar Labs

At Sugar Labs, we make tools that learners use to explore, discover, create, and reflect. We encourage our users to appropriate them, taking ownership and responsibility for their learning.

Sugar Labs, a volunteer-driven, non-profit organization, had its origins in the One Laptop Per Child project and is has been a member project of the Software Freedom Conservancy since 2008.

Sugar is both a desktop and a collection of Activities. Activities, as the name implies, are Apps that involve active engagement from the learner. Activities automatically save results to a journal, where reflections are recorded. Activity instances can be shared between learners; many support real-time collaboration.

  • Sugar facilitates sharing and collaboration: Children can write, share books, or make music together with a single mouse-click.
  • Activities, not applications: Sugar activities are applicable beyond the scope of the classroom and even Sugar itself.
  • Automatic backup of Activity work; no worrying about files or folders. Sugar’s Journal makes it almost impossible to lose any data.
  • The Sugar Journal records everything you do: It is a place to reflect upon and evaluate your work.
  • Sugar runs on most computer hardware, including slower machines.
  • Sugar is Free (Libre) Software: It is written in the Python language and easily customized.
  • Sugar is documented by its users: It is easy to use and teachers worldwide have created a wealth of pedagogical materials for it.
  • Sugar is largely written and maintained by its users.
  • Sugarizer is a fork of Sugar available for tablets and phones.

Our primary FOSS License is GNU General Public License version 3.0 (GPL-3.0).

About Our Community

As mentioned above, our community is composed 100% by volunteers. May (most) of are contributors are youth who use (of have used) Sugar in school. We have participated in Google Code-in and Google Summer of Code for many years, which have also been a source of contributions to the project.

Our community members span the globe—and while we have never had a commit from Antarctica, Sugar has been used on every continent. Contributors bring many skills: Python and JavaScript programming; graphic design; marketing and communication; documentation; user-interface design; game design; pedagogy; research into best practices; and, perhaps most important, using Sugar as a tool for learning.

Our mentors are:

  • walter AT sugarlabs DOT com
  • devin AT devinulibarri DOT com

Getting Started

These days there are a number of different paths to getting started with Sugar. You can:

  • follow the instructions for setting up our developer environment [1];
  • try Sugarizer [2]; or
  • explore some of our stand-alone activities such as Music Blocks [3].

We have lots of open issues in our various GitHub repositories: [4] and [5], some of which involve some coding, but many of which involve testing and documentation.

About Our Projects

We have a number of projects in mind for the summer of 2017 (see the table below), but for Outreachy, we will be focusing on the Music Block projects.

GSoC 2017 projects

Student Mentors Proposal Link Blog Link
Raphael Teyssandier Michaël Ohayon and Lionel Laské Sugarizer Deployment Tool
Summer of Code/Raphael Teyssandier
blog
Tarun Kumar Singhal Lionel Laské and Michaël Ohayon Sugarizer Server Dashboard
Summer of Code/Tarun Kumar Singhal
blog
Jatin Dhankhar Sam Cantero and Tony Anderson Maintaining ASLO
Summer of Code/Jatin Dhankhar
blog
Sanjay Kumar Tony Anderson and Ignacio Rodriguez Mind Math Activity
Summer of Code/Sanjay Kumar
blog
P. Seetarama Raju Samson Goddy and Walter Bender Giving Sugar Labs Website a New Look
Summer of Code/Seetarama Raju
blog
Zeeshan Khan Ignacio Rodriguez and Walter Bender Say no to Gtk2
Summer of Code/Zeeshan Khan
blog
Rishabh Thaney Abhijit Patel, Hrishi Patel, Walter Bender Sugar on Raspberry Pi
Summer of Code/Rishabh Thaney
blog
Tayba Wasim Devin Ulibarri, Cristina Del Puerto, Hrishi Patel Timbre Widget for Music Blocks
Summer of Code/Tayba Wasim
blog
Dinuka Tharangi Devin Ulibarri, Cristina Del Puerto, Hrishi Patel User Manual for Music Blocks
Summer of Code/Dinuka Tharangi
blog
Prachi Agrawal Devin Ulibarri, Cristina Del Puerto, Hrishi Patel Music Blocks Improvements
Outreachy/Prachi Agrawal
RSS feed

Sugar Labs at GSoC

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
Git logo.png
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
Music-Blocks.png
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
Tymon Radzik

Hrishi Patel

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) Tony Anderson
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
Music-Blocks.png
Walter Bender
Devin Ulibarri
Brief explanation
Ayush Kumar designed a widget for designing voices for Music Blocks (See [6]). 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
Dashboard server.png
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
Sugarizermdmtool.png
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
Music-Blocks.png
Walter Bender
Devin Ulibarri

Hrishi Patel

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. See https://wiki.debian.org/SugarBlend and Debian.
Expected results
Debian SugarBlend of upcoming Debian 9 (Stretch)
Knowledge prerequisites
Debian packaging, Linux system, Shell scripting
Sugar on Raspberry Pi Walter Bender

Hrishi Patel Abhijit Patel

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
An image for RPi, which boots to a Sugar desktop environment, and is suitable for inclusion on the RPi download page.
Knowledge prerequisites
Debian and/or Fedora packaging, Linux system, Shell scripting


Music Blocks for Mobile
Music-Blocks.png
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.

}|}|}|}

About Outreachy

Sponsors

Outreachy is hosted by Software Freedom Conservancy with the special support from Red Hat and the GNOME Foundation.

Schedule

February 16
participating organizations are announced and application system opens
February 16 - March 30
applicants need to get in touch with at least one project and make a contribution to it
March 30
application deadline at 4pm UTC
March 30 - April 28
applicants are encouraged to continue making contributions for the project they applied for; submitted applications are open for editing
April 28
accepted participants announced on this page at 4pm UTC
May 30 - August 30
internship period

Payments Schedule

Please refer to [7] for details about how the SFC administers payments for the program.