GSoC 2010/Project ideas

(Ideas List: MeeGo: cloud storage support)
Line 7: Line 7:
'''If you are an [[GSoC_2010/Mentors#How_to_become_a_mentor|accepted mentor]] and want to mentor one of the possible projects, add your name to the table with your nickname (eg. Valério Valério (vdvsx))'''.
'''If you are an [[GSoC_2010/Mentors#How_to_become_a_mentor|accepted mentor]] and want to mentor one of the possible projects, add your name to the table with your nickname (eg. Valério Valério (vdvsx))'''.
<font color="#FF0000">Note</font>: Everybody can add ideas to the list, there's no need to be a mentor or a student. Don't try to guess if your idea will be implemented in Maemo6 or not, just add it to the list. Maemo SW will help in order to avoid duplicated work.
<font color="#FF0000">Note</font>: Everybody can add ideas to the list, there's no need to be a mentor or a student. Don't try to guess if your idea will be implemented in MeeGo or not, just add it to the list. Maemo SW will help in order to avoid duplicated work.
==Ideas List==
==Ideas List==

Revision as of 11:23, 12 March 2010

Maemo provides a framework for developing applications for mobile devices, as well as porting existing applications in the Linux world. Look at the projects available at to get an idea of what already exists, in order to come up with your brand new ideas. They can be new functionality added to a consolidated application, a first prototype for promising new applications exploring new functionality, or a small but killer application bringing the unexpected. We recommend you to propose small challenges that can be completed successfully instead of big plans impossible to conclude in 3 months. It's useful to develop a cool new module to be used by other applications or setting a first stone in a project to attract new attention.

Following the merger of Moblin and Maemo, this page will also hold ideas for the new MeeGo project, for GSoC 2010.

Add your project ideas to the table below.

If you are an accepted mentor and want to mentor one of the possible projects, add your name to the table with your nickname (eg. Valério Valério (vdvsx)).

Note: Everybody can add ideas to the list, there's no need to be a mentor or a student. Don't try to guess if your idea will be implemented in MeeGo or not, just add it to the list. Maemo SW will help in order to avoid duplicated work.

Ideas List

Note: This list isn't exclusive, if you are a student and have an idea that isn't listed here, don't hesitate to apply with your own idea, but it's probably a good idea to ask in the Maemo community opinions about your idea.

Other possible projects/ideas can be grabbed from the Maemo community wish-list, ports wish-list and you can also take a look at the Maemo documentation in order to have some ideas.

All the ideas below are possible GSoC projects, some of them need more investigation work than others that are already in a final stages, but all of them start at the same level for us. The students must do some investigation before proposing a project; we are here to help, but it isn't acceptable to just copy and paste the descriptions below to the student's applications.

Final proposal Study of alternatives needed Draft proposal
Title Abstract/Description Skills Difficulty (Easy/Medium/Hard) Reporter Possible Mentor(s) Comments                              
Dooble Web Browser Porting webkit browser to maemo platform maemo SDK, packaging an installer easy If someone is interested in a webbrowser on maemo, we would mentor it
Facebook Events Sync Creating an application/daemon to synchronise facebook events to the calendar maemo SDK, packaging an installer easy cocayden Frederico Schardong (frede)
RetroShare Messenger Porting RetroShare Messenger maemo SDK, packaging an installer middle -
Google Reader Offline Creating an application synchronize with Google Reader to enable offline-reading of Google Reader's contents. maemo SDK, packaging an installer easy bob Frederico Schardong (frede)
OTR Support for Telepathy Integrate libotr support in the existing protocol stack maemo SDK, packaging, telepathy, some crypto medium
Remmina remote desktop Porting Remmina (, a multi-protocol GTK+ remote desktop client that supports NX, to Maemo maemo SDK, packaging an installer, familiarity with NX medium (some missing dependencies, uses newer GLib) nadavwr Remmina supports VNC and RDP, and more importantly trunk has functional NX support. It has zooming and panning features, making it appealing for low resolution displays.

The main motivation is having usable NX remoting on the N900, which would be game changing (for those who need it, anyway...)

Pocket Jeeves Creating a framework, API and UI to provide context-based voice interaction with Maemo. Brainstorm entry packaging, dbus, basic discrete math (language modeling), gstreamer, maemo SDK Hard (mostly due to scope). This is entirely feasible, but will take a significant amount of work to tie together everything. I have built Pocket Sphinx on Fremantle and it works as-is. Flite is already in the repos. The pieces are all there... Flandry (Cosponsored by Sphinx.) DHD Think handsfree mode, but for your entire mobile computer. Click the button on your headset and your Maemo butler asks "What can i do for you?" The accuracy and speed of the speech recognition can be immensely helped by making context-based grammars. E.g. if media player is operational, "next", "skip" and "softer" would all be understood. This lends itself well to sub-projects for multiple people to work on. Would like to help/mentor but not really qualified for the latter and have to graduate so no time. ;)
Google apps Implement small applications and corresponding reusable libraries (Qt C++) for integrating with Google services like Mail (quick read/search without going through IMAP), Todo:s, Buzz, import opml from Google Reader Qt, api design Medium vivainio 08:13, 23 February 2010 (UTC)
Global Search application Global search application similar to Spotlight or Google desktop search Maemo, Qt, Tracker medium Sp1ke
Answering Machine/Call Rejector Answering machine and call rejector based on black lists and white lists. Brainstorm entry, Brainstorm entry Maemo, Qt easy Brainstorm entry, Brainstorm entry
Oscilloscope Port xoscope to maemo5, using the microphone port as an input, possible carrying on the work of pinnchus GTK/X11 speculatrix
Ad-hoc Telephony Using techniques like Bluetooth or Wifi for direct voice-connection between phones which are in range. Put this in a nice and easy GUI. Gui, VoIP, wifi, bluetooth easy Frederico Schardong (frede)
Gtk+ input context for Harmattan Harmattan Text Input Method Framework can only accept text input from Qt based applications, this task is to enable text input of Gtk+ applications in Harmattan dbus, gtk input context medium Mohammad Anwari Mohammad Anwari (mdamt) Harmattan Text Input Method Framework
Canola UPNP plugin Creating a plugin for Canola to deal with UPNP, possibly using the eupnp library python, upnp medium lfelipe lfelipe
Porting Canola to Maemo5 and beyond This task involves making sure that Canola works on Maemo5 and also making changes to integrate it better, possibly switching from LMS to Tracker, etc. Taking Meego under consideration is a big plus. python, C medium lfelipe lfelipe
mAuth (pronounced moth) The N900 is a very powerful device, however we can't shake away the fact that many of us still use desktops on a daily basis. Using username/password authentication is highly insecure, because it forces the repeated typing of the same credentials in the same room, roughly at the same time every day. One option for this are smart cards. However they are expensive and the concepts behind them are extremely complicated for anyone who doesn't work in the industry, and as such implementing them at home would be a nightmare. One solution around this would be to have the N900 (or any other NIT for that matter) emulate being a smart card, and use bluetooth to connect to the computer. The authentication and encryption certificates are stored on the N900 and provided to the computer when in bluetooth range, however as soon as the N900 is taken away, the session is locked as the computer believes the "smart card" has been removed. - Maemo SDK to create the smart card emulator daemon - Bluetooth networking or bluetooth bi-directional communication - PC/SC driver for Windows - Excellent documentation - great packaging extremely hard (probably impossible) crashanddie 07:46, 20 February 2010 (UTC)
aGLESory Adapt or implement a flexible OpenGL wrapper for Maemo. OpenGL, libraries and gcc, packaging, documentation, maemo SDK Medium Flandry This really needs no introduction...we all know how huge it would be to have a painless wrapper for at least basic OpenGL functionality. This project would be about getting someone to blaze the path and mark it clearly.
Robotics Simulator Bring a full-blown robotics simulator to Maemo/MeeGo. For the start, the 2.5D simulator Player/Stage ( would be ported and a simple GUI be written. Later integration with Fawkes ( can provide some nice demos and scripting environment to start into robotics. If there is interest in this project some studies are needed to check whether the device is generally computationally powerful enough for simple scenarios. Although not a classic Maemo application, this can be seen as an educational effort to get students interested and start playing with (virtual) robots. Maemo SDK, packaging, Player/Stage, Fawkes, background in robotics software strongly recommended Hard timn Given a mentor I would like to pursue this project over the summer. It can be an eye catcher for the N900, if you can have a simulated robot on the device and instruct it to accomplish tasks.
Chirematic View the world around you as if color blind or various other vision impairments Maemo SDK, packaging, GStreamer Easy epage epage Possibly beneficial to desktop Linux as well
Locality An Android Locale clone to automate various aspects of the OS and life Maemo SDK, packaging, UI, possibly DBus Medium epage epage Beneficial to desktop Linux as well
telepathy-bluewire A bluetooth Connection Manager for plugging into Conversations and providing Tubes for peer-to-peer applications Maemo SDK, packaging, Telepathy, Bluetooth Hard epage epage The main aim would be a prototype to determine feasibility of the idea. Beneficial to desktop Linux as well
sharing-service-telepathy Integrate IM file transfer support with Maemo through the Sharing plugin system Maemo SDK, packaging, Telepathy, Maemo Sharing Plugin system Medium epage epage I think this is feasible but the fact it hasn't been done yet makes me a bit hesitant
Qt perl bindings Bring the Qt perl bindings to MeeGo so developers can take advantage of perl code in MeeGo MeeGo build tool chain, perl, Qt, packaging Hard jeremiah jeremiah This would build upon a SoC project from last year.
Group chat support for Conversations Extend Conversations to support group chat (IRC/XMPP MUC) via Telepathy Maemo SDK, UI, Telepathy Easy corecode
MeeGo: cloud storage support Bring cloud storage support to MeeGo. We are considering dropbox and Ubuntu One, and open to others. GNOME, Python, packaging Medium Yan Li (yanli) Yan Li (yanli) Ubuntu One is interesting. Most of its code are free so we should be able to bring it to MeeGo. Same applies to dropbox.