Ideas

Differences between revisions 14 and 15
Revision 14 as of 2016-02-18 14:26:32
Size: 14469
Editor: 108-116-166-87
Comment:
Revision 15 as of 2016-02-18 14:37:29
Size: 14469
Comment:
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
 * '''Mentors:''' Stephen Webb? Alan Griffith?  * '''Mentors:''' Stephen Webb? Alan Griffiths

Google Summer of Code: Project ideas and mentors

Mentors

We need your help to make GSoC 2016 a success. Do you contribute to Ubuntu? If you do, please consider becoming a mentor this summer and adding your name and idea to the list below.

Project ideas

Students: Please read our advice for students in addition to the ideas on this page. Remember, these are just suggestions! If your favourite idea isn't here, don't worry. You are welcome to use your own project idea when you submit your student application. Of course, it is a good idea to look around and find someone who would be interested in mentoring your project. Perhaps someone is offering to mentor a similar project?

Can you think of a nice project for a student to work on over the summer? Is it best achieved here in Ubuntu? Great! Go ahead and add it to this list. When adding a project idea…

  • Try to explain your idea quickly. If you need more words, consider linking to another wiki page.
  • Make sure your idea is understandable for someone who is new to Ubuntu development.
  • If you are interested in mentoring that idea, please leave your name with the project, and in the table at the top of this page, so potential students can contact you.
  • Please use the following format and add your idea to the top of the list:
    • === Project name ===
       * '''Mentors:''' List anyone interested in mentoring the project; include contact details!
       * '''Description:''' Describe the project
       * '''Desirable skills:''' List what skills will be useful to the project, like what language(s) are used
       * '''Goal/Deliverable:''' A quick summary of what you hope to achieve at the end of the project
      ----

Ideas

Desktop

Create a window manager for MIR

  • Mentors: Stephen Webb? Alan Griffiths

  • Description: Create a working window manager, based upon the MIR library; https://unity.ubuntu.com/mir/index.html

  • Desirable skills: C/C++

  • Goal/Deliverable: A working installable package of a window manager utilizing MIR that works on x86 and armhf platforms. It should be capable of real world usage.

Community

Translations stat site

  • Mentors: David Planella

  • Description: Create a new translation stats site that shows the current translation status for product targets including the ubuntu phone and desktop.

  • Desirable skills: Django, Javascript, Python

  • Goal/Deliverable: A hosted website that displays translations statistics in realtime

Integrate Snippets App

  • Mentors: David Callé

  • Description:

  • Desirable skills:

  • Goal/Deliverable:

Migrate community.ubuntu.com website to Django

  • Mentors: Michael Hall

  • Description:

  • Desirable skills:

  • Goal/Deliverable: A completed migrated community.ubuntu.com site

Create a django webapp for Ubuntu on Air

  • Mentors: Daniel Holbach

  • Description: ubuntuonair.com is a live video site utilized for live Q and A's, talks, and other community outreach events. The site serves as a crude gateway for live Q and A's that would be better itegrated as a proper application with the community site.

  • Desirable skills: Django, javascript, python

  • Goal/Deliverable: ubuntuonair.com is replaced by the new django webapp, which has been integrated with the greater community.ubuntu.com site

Ubuntu Touch

Calendar app: Add calDAV support

Calendar app: Add iCalendar support

Enhance the Ubuntu Phone Emulator

  • Mentors:

  • Description: The ubuntu phone emulator allows for testing and development of ubuntu apps on the desktop, without an actual device. However, it's limitations and poor integration with the SDK make it difficult to use. It needs performance enhancements, bug fixes, and features to make it more useful as a full hardware replacement for development.

  • Desirable skills: C/C++

  • Goal/Deliverable: An emulator that is well integrated into the Ubuntu SDK, runs easily, and is able to run and test apps locally from source.

Port Ubuntu SDK to windows and mac os

  • Mentors: Alan Pope

  • Description: The Ubuntu SDK is the official IDE for working on ubuntu applications. It allows you to create new applications using Qt/QML. It runs on ubuntu, but we'd like to make it truly cross-platform to allow for others to develop apps on windows and mac os.

  • Desirable skills: C\C++

  • Goal/Deliverable: A working copy of the ubuntu sdk running on a non-linux platform

Ubuntu Core

Personal NAS system

  • Mentors: Kyle Fazzari <kyle.fazzari AT canonical DOT com>

  • Description: Creating a snap package offering NAS capabilities to a local network (on Ubuntu Core 16.04).

  • Desirable skills: Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Willingness to read a lot of documentation on Ubuntu Core. Some bash/python knowledge may be needed to write glue code. The primary target for this can be some hardware the student already has (e.g. an Intel NUC, or Raspberry Pi 2), or our kvm vm.

  • Goal/Deliverable: A NAS solution snap approved in the snap store (for all architectures).

Personal media publishing platform

  • Mentors: Didier Roche <didrocks AT ubuntu DOT com>

  • Description: Creating a snap package offering personal media publishing platform (for instance, based on mediagoblin) to share photos and videos with friends and family (on Ubuntu Core 16.04).

  • Desirable skills: Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Willingness to read a lot of documentation on Ubuntu Core. Some bash/python knowledge may be needed to write glue code. The primary target for this can be some hardware the student already has (e.g. an Intel NUC, or Raspberry Pi 2), or our kvm vm.

  • Goal/Deliverable: A media publishing platform snap approved in the snap store (for all architectures).

Surveillance box to monitor your home while you are away

  • Mentors: Kyle Fazzari <kyle.fazzari AT canonical DOT com>

  • Description: Creating a snap package to be installed on any Ubuntu Core device offering monitoring and reporting capability while you are away (on Ubuntu Core 16.04).

  • Desirable skills: Research of good surveillance existing solution working or easily portable to Ubuntu, providing reports to other devices like phone (sms, alerts…). Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Willingness to read a lot of documentation on Ubuntu Core. Some bash/python knowledge may be needed to write glue code. The primary target for this can be some hardware the student already has (e.g. an Intel NUC, or Raspberry Pi 2), or our kvm vm. A USB webcam is required for this task.

  • Goal/Deliverable: A surveillance platform snap approved in the snap store (for all architectures).

Ubuntu Core media center system based on kodi

  • Mentors: Stephen M. Webb <stephen.webb AT canonical DOT com>

  • Description: Creating a snap package offering kodi media center for installation (on Ubuntu Core 16.04).

  • Desirable skills: Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Willingness to read a lot of documentation on Ubuntu Core. Some bash/python knowledge may be needed to write glue code. The primary target for this can be some hardware the student already has (e.g. an Intel NUC, or Raspberry Pi 2), or our kvm vm. Warning: this task is less trivial than other ones in the same category (require access to hw acceleration via sdl/mir).

  • Goal/Deliverable: A kodi-based snap approved in the snap store (ideally for all architectures).

Enhancing snappy config via the webdm interface

  • Mentors: Didier Roche <didrocks AT ubuntu DOT com>

  • Description: Ubuntu Core has a "snappy config" command which take today a free-form yaml file and create an user configuration. Ensuring that this config is more declarative will enable to expose it to some UI and clear interfaces like webdm. Finally, create generic hooks that can be used in various projects.

  • Desirable skills: Be able to design a good API and specification. Debating about it with developers over emails or IRC. Willingness to read a lot of documentation on Ubuntu Core. Go/HTML knowledge to write both the generic config parser and changing webdm interface to expose those properties.

  • Goal/Deliverable: Having this new straightforward config specification acked and implemented in both snappy and webdm.

Package and build some openHAB based home automation system

  • Mentors: Kyle Fazzari <kyle.fazzari AT canonical DOT com>

  • Description: Creating a snap package to be installed on any Ubuntu Core device offering openHAB capability and monitoring (on Ubuntu Core 16.04).

  • Desirable skills: Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Willingness to read a lot of documentation on Ubuntu Core and openHAB. Some bash/python knowledge may be needed to write glue code. The primary target for this can be some hardware the student already has (e.g. an Intel NUC, or Raspberry Pi 2), or our kvm vm. Various sensors will be required for this task.

  • Goal/Deliverable: An home automation openHAB snap approved in the snap store (for all architectures) with a good suite of addons and demos.

Expanding snapcraft parts store with communication standards

  • Mentors: Didier Roche <didrocks AT ubuntu DOT com>

  • Description: Provide some example parts and working demos to Ubuntu Core 16.04 snapcraft parts store around IoT communication standards. We are looking for MQTT (via mosquitto and paho), CoAP (via californium), LwM2M (via Leshan) and ETSI SmartM2M (via OM2M) ones in particular as per Eclipse IoT projects (http://iot.eclipse.org/standards).

  • Desirable skills: Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Willingness to read a lot of documentation on Ubuntu Core and communication frameworks. Some bash/python/Java/Go knowledge to be able to build up the snapcraft parts best practices for those and demos using them.

  • Goal/Deliverable: Writing up technical demos using those communication frameworks (server/client) and having the parts referenced on the parts store as best practices.

Cloud Storage

Diagnose My Ceph Cluster

  • Mentors: Chris Holcombe <chris.holcombe AT canonical DOT com> and Chris MacNaughton <chris.macnaughton AT canonical DOT com>

  • Description: Build a script that can be very quickly be run and give you a best guess as to what was wrong with the a running Ceph cluster. Working knowledge of distributed storage will be helpful but not required. We can guide you along the way. You will learn a lot about how Ceph works. This project will pull together a lot of different disciplines.

  • Desirable skills: Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Willingness to read a lot of documentation on Ceph and communication frameworks. Python knowledge will be needed to be able to build this script.

  • Goal/Deliverable: A Python script that can be run on a Ceph cluster that is broken and the script will produce a best guess as to what is wrong.

Decode CephX Protocol

  • Mentors: Chris Holcombe <chris.holcombe AT canonical DOT com>

  • Description: The storage team at Canonical have built a library that can decode Ceph's RPC protocol in real time. A good chunk of Ceph's packets are currently able to be decoded. However one very important one is still missing. The CephX packets need to be decoded before this library can be used as a full fledged ceph client. The goal of this project will be to correctly encode and decode a CephX packet. This project is entirely written in Rust.

  • Desirable skills: Familiarity with ubuntu system and its internals (system services, library loading), strong command line knowledge and debugging skills. Rust knowledge will be very helpful but not required. Strong knowledge of networking. Willingness to read a lot of documentation.

  • Goal/Deliverable: Demonstrate that a CephX packet can be correctly sent/recieved to a Ceph monitor cluster. A small Rust program can be built to demonstrate this.

~

GoogleSoC2016/Ideas (last edited 2016-02-29 21:24:18 by nskaggs)