GSoC 2009/Project ideas

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.

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 Fremantle or not, just add it to the list. Maemo SW will help in order to avoid duplicated work.

[edit] 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 and you can also take a look at the open API's that Maemo provide.

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 work 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
Barcode scanner Use the camera in the ITT devices to scan barcodes of products, in order to compare prices/features, read product reviews,etc. See compare everywhere and maemo barcode. Possible ideas - Delicious Library,lira,Amazon API's. lardman has added some thoughts/ideas here: Barcode_scanner_thoughts C/C++ or Python Medium vdvsx florian,lglira
Improve Xournal Port Xournal to Fremantle and improve the GUI to take advantage of the upcoming Fremantle features, while keeping backward compatibility with Maemo OSes. See [1] C/GTK+/QT Medium anidel florian, anidel Any way to add handwriting recognition? --timsamoff 13:54, 19 March 2009 (UTC)
New plugin for Canola Implement a new plugin for Canola, possibly for another web service such as Picasa or Blip.FM. There are lots of possibilities here. Python/EFL Easy/Medium lfelipe lfelipe, glima, antognolli Other ideas that have been suggested: Jamendo, Magnatune... (keep suggesting)
Bittorrent plugin for Canola Implement a bittorrent plugin for Canola, that can use the RSS from sites such as Python/EFL Medium lfelipe lfelipe, antognolli
New plugin for Canola Implement a new plugin for Canola: local mail / news reader. Mail / news (RSS) can be downloaded locally by existent software. The Canola plug-in serves just as a reader, so that you don't need to leave it to read / interact with them. Python/EFL Medium anidel anidel
Text optical recognition Implement a recognition system which recognizes text snapped with the camera. The system then can be integrated into another application, such as when you want to contribute to the openstreetmap, you just fire up this application and start tracing the street, then snap the street name with the camera, and the street name will be recorded in that application and connected to the street data. Another use case would be to integrate this system with Hildon Input Method and you can send the text snapped into to have your own personal translator C/Gtk+/Qt Medium mdamt mdamt, lglira
Maemo build system on SuSE open build system Establish a fairly complete environment for building maemo packages on SuSE's build servers System administration Medium Jeremiah
Enhance the libical/libkcal (KDEPIMPI) Merge the vobject/vcc changes to the libical upstream version because KCal has a different branch with the vcc and vobject files which are part of the vcal parser. These changes should be merged to the libical upstream. Also various fixes can be done in the libical/libkcal because they are a bit buggy. :) iCalendar/libical/libkcal/C/C++ Medium/Hard ibiris ibiris
Enhance the OpenCV's maemo port Needs to update to the latest upstream svn version, extensive testing on the tablet and fix the maemo issues, other upstream bugs effects the work with the tablet and send the patches upstream OpenCV/C++ Medium/Hard kecsap kecsap
Improve the location based travellerapplet Traveller applet helps for travellers to open location sensitive services in the browser. It needs to add new services, optimize the current xml structure and other actions Maemo/C/HTTP Medium kecsap kecsap
Mainlining N800/N810 kernel Get drivers missing from diablo Linux kernel to the mainline (Linus's 2.6.30+) kernel release. The primary goal is to get n800/n810 booting with wifi (stlc45xx driver) and power management support using a kernel from linus's tree. Fully functioning bluetooth and audio (porting current driver to ASoC) is secondary goal. Supporting dsp gateway is out of scope for this project. Before applying to project, previous experience on working with kernel drivers and kernel community should be demonstrated. Kernel/C Hard Suihkulokki florian
SocialApp based on OpenSocial OpenSocial provides a common API for social websites. The idea is to build a client on top of that, which provides features to provide and collect social information to/from multiple websites. The work on this project will be mostly around UI. See [2] Python Medium danielwilms vdvsx
YouTube plugin for Rygel Enable the user to easily browse and play her favorite videos on her UPnP control point/media player (think PS3) and also to be able to search and upload videos. C/Vala Medium zeenix zeenix
Flickr plugin for Rygel Enable the user to easily browse and play her (or her friends') pictures on Flickr using her UPnP control point/media player (think PS3) and also to be able to search and upload pictures to Flickr. C/Vala Medium zeenix zeenix
(G)UPnP backend for GVFS This will allow a generic access to all applications (not only media players) to contents on UPnP/DLNA Media Servers without them having to write any code. Many people (e.g Kilikali and Canonal2 authors) have already asked me if such a thing already exist. C Medium/Hard zeenix zeenix
A threadless Webserver API for BRisa Nowadays BRisa project uses CherryPy for delivery web content, but CherryPy is considered to use very threads that may be harmful for resource limited devices. In addition there is no decent webserver API focusing on embedded devices. The idea is to implement a light webserver framework focusing on embedded platforms that avoid high use of threads and memory. C/C++ or Python Medium/Hard leandro leandro
UPnP Media Renderer for BRisa BRisa project provides a decent UPnP framework to be used in resource limited devices. On top of this framework, we provide two applications example: the media server and media renderer. Current our focus is on the media server, but we need work to improve the media renderer. For example, current media renderer does not handle correct the rendering of many video and audio formats. We are using GStreamer as a backend. C/C++/Python Medium leandro leandro
UPnP home automation devices for BRisa BRisa project provides UPnP framework to be used in resource limited devices. On top of this framework, we want to implement a control point to control all the home automation UPnP devices, such binary lights, printers, security cameras, temperature sensors and generic switchers. Python Medium/Hard leandro leandro
Videoconference environment based on BRisa UPnP The idea is to implement a m-learning environment using BRisa and Telepathy to make the student receive on s/he device the classes. The system may also be able to allow the students interact with the professor by asking questions and so forth. When the student starts to interact, the stream captured from the tablet camera should be transmitted to all other students that are participating of that class. It will be necessary to develop both, the client and the server modules. The use of UPnP is for notifing the students with any information necessary and provided by the professor when the student enter in the class room, that not necessarily the professor will be there in that room, remember, it is a videoconference environment. We already have all the environment necessary for the experiment. C++/QT/Python Hard leandro leandro
Maemo in OpenEmbedded Integrate basic Maemo and Hildon components into the OpenEmbedded build system. The goal should be to create working Maemo filesystem images for one of the Internet Tablets using OpenEmbedded. OE, Python Medium florian florian, lglira
Contacts Import/export Import/export contacts to the ITT from various sources, like Thunderbird, Outlook, Gmail, Symbian Phones, etc. See Task:PIM and Google Sync C/C++,Python or others Medium vdvsx florian
PIM Synchronisation Synchronise PIM data (contacts, events...) with Symbian and server solutions such as Funambol, e. g. using OpenSync The pad serves as synchronisation engine and keeps your personal data in sync. Of course applications running on the device can make use of this mechanism too. C, Vala or others Medium / Hard florian florian
Implement Internet Storage client Implement a client for an Internet storage system such as Dropbox or Modify existing source code for Linux to eliminate elements not implemented in Maemo (e.g., Nautilus for Dropbox) C/C++ Medium frethop frethop
Smart News Reader on N800/N810 A smart News Reader for users to subscribe news/information feeds on their favorite sites then this reader can filter information which user maybe does not care or be not interested in according to the user reading patterns and environment context. This application will use semantic technique, context-aware technique and machine learning algorithm to reach the goal. Python/C Medium Derkaiser Actually I have implemented a prototype but the smart recommendation engine has not been done yet.I wonder whether there is anyone in community can be the mentor and give some instructions on how to complete the task for me.
Mnemosyne for Maemo Maemo implementation of well-known Mnemosyne flash-card sophisticated learning tool based on spaced repetition technique Python Medium Ed Bartosh Ed Bartosh Some basic implementation is already done. However, a lot of features need to be implemented: finger-friendly UI, support for all card types, synchronization with Desktop, web application.
Implement Gtk TreeModel/TreeView with lazy loading from tracker Write a Gtk TreeModel/TreeView that loads the data from tracker on request. This would allow the user to run a query with 5000 results, show very fast in the UI the first 10, and retrieve in the background the next results or on demand when scrolling C/GTK Medium/Hard ifrade ifrade
Google Latitude/Nokia Friend view client Port/make a Google Latitude/Nokia Friend view client to the ITT. See [3] and [4] C/C++/Python/Clluter/others Easy/Medium vdvsx vdvsx Both APIs are closed :(
Improve RTComm for the tablets A single-click install for RTComm and all the required libraries to make the built-in IM client work with as many protocols as possible and (maybe even more important bit) finally improve the built-in contacts app import feature. See [5] C/C++ Medium stangri This can already be done easily with this .install file, that is used in the current installation method.
Maemo Alarm Make a nice and customizable alarm application for Maemo. See [6] C/C++/Python/Clluter/other Easy Denis Smolyar ""I don't see any nice alarm for maemo... cron? without giu i can't use them from maemo. -- Denis Smolyar @Dev-ML"
Implement Bluetooth Speaker Support Add support for turning a tablet into a Bluetooth speaker system -- probably through headset or hands-free profile support. Possibly extend BlueMaemo Python Medium/Easy frethop frethop I think there was some work on this last year's GSoC on BlueZ (lfelipe)
Port Conduit Optimize the UI for the tablets, identify the subset of dataproviders that made sense on the tablets. See [7] Python Medium jaffa vdvsx
Compiz Cube for Maemo. Use compiz-cube or similar to jump between four virtual desktops running:Hildon, Canola, PIM-Phone, locked up device (with widgets maybe).The cube would jump vertically instead of horizontally and a finger gesture would jump between them. C/C++/Others Medium/Hard Eduard Pertíñez
Developers IDE for Maemo Development of an IDE For the Maemo Application Developer which supports HILDON Library and GTK+ support C/C++/Others Medium/Hard Ankit Anand