Ideas

Revision 4 as of 2016-02-11 08:59:19

Clear message

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

Ubuntu Core

Personal NAS system

  • Mentors: <to decide>

  • 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 is the Intel NUC that the student should have in his possession, but this can be achieved as well via our kvm vm.

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

Personal media publishing platform

  • Mentors: <to decide>

  • 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 is a raspberry pi 2 that the student should have in his possession, but this can be achieved as well via 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: <to decide>

  • 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 is a raspberry pi 2 (wired with an usb webcam) that the student should have in his possession.

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

Ubuntu Core media center system based on kodi

  • Mentors: <to decide>

  • 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 is a raspberry pi 2 that the student should have in his possession. 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: <to decide>

  • 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: <to decide>

  • 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 is a raspberry pi 2 and other sensors that the student should have in his possession.

  • 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: <to decide>

  • 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.

Example Idea

  • Mentors: Nicholas Skaggs

  • Description: This is an example of an idea in the proper format

  • Desirable skills: You need to understand qml and c++. Python skills are also useful

  • Goal/Deliverable: The end result of this work should be a released application in the click store