GSoC 2009/Project ideas
Maemo provides a framework for developing applications for mobile devices, as well as porting existing applications in the Linux world. A lot has been done already, look at the projects available at garage.maemo.org to get an idea of what already exists, in order to come up with your brand new ideas. They can be a new functionality added to a consolidated application, a first prototype for a promising new applications exploring new functionality, or a small but killing application bringing the unexpected. We recommend you to propose small challenges developed with good performance instead of big plans impossible to concrete in 3 months. You can be really useful adding 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 in the table bellow.
If you are a accepted mentor and wants to mentoring one of the possible projects, add you name to the table with your maemo.org nickname (eg. Valério Valério (vdvsx)).
Note: Everybody can add ideas to the list, 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.
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 is 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.
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 | C/C++ or Python | Medium | vdvsx | ||
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 | ||
Google Latitude client | Port/make a Google Latitude client to the ITT. See [1] | C/C++/Python/Clluter/others | Easy/Medium | vdvsx | vdvsx | |
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 [2] | C/C++ | Medium | stangri | ||
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 [3] | C/GTK+/QT | Medium | anidel | ||
Maemo Alarm | Make a nice and customizable alarm application for Maemo. See [4] | 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) |
Implement Internet Storage client | Implement a client for an Internet storage system such as Dropbox or Box.net. Modify existing source code for Linux to eliminate elements not implemented in Maemo (e.g., Nautilus for Dropbox) | C/C++ | Medium | frethop | frethop | |
Port Conduit | Optimize the UI for the tablets, identify the subset of dataproviders that made sense on the tablets. See [5] | Python | Medium | jaffa | ||
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 | 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 http://legaltorrents.com | Python/EFL | Medium | lfelipe | lfelipe | |
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 | ||
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 translate.google.com to have your own personal translator | C/Gtk+/Qt | Medium | mdamt | mdamt | |
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 | Eduard Pertíñez | ||
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 | ||
Full iCalendar support for KCal (KDEPIM) | Add support in KCal for the missing iCalendar elements | libical/C/C++ | Medium | kecsap | kecsap | |
Merge the vobject/vcc changes to the libical upstream version | 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. | libical/C/C++ | Medium/Hard | kecsap | kecsap | |
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 and send the patches upstream | OpenCV/C++ | Medium | kecsap | kecsap | |
Add more location based services at travellerapplet | Traveller applet helps for travellers to open location sensitive services in the browser. It needs to add a bunch of services. | 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 | ||
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. | |
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. [6] | 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 | Brisa developer: We already have this in BRisa for free. Zeeshan: Yes, but Brisa is not and (being a python framework) may never be part of Internet tablets. GUPnP already is part of Fremantle and Rygel is going to be part of Harmattan. IMHO, it's better to write the appropriate python bindings and try to utilize what already is there. Moreover, Canala developers don't seem enthusiastic about the future of Brisa. |
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 | Brisa developer: We already have this in BRisa for free. Zeeshan: Yes, but Brisa is not and (being a python framework) may never be part of Internet tablets. GUPnP already is part of Fremantle and Rygel is going to be part of Harmattan. IMHO, it's better to write the appropriate python bindings and try to utilize what already is there. Moreover, Canala developers don't seem enthusiastic about the future of Brisa. |
(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 | 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 | 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 Media Server 2.0 | 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. Recently UPnP forum released the version 2.0 for the Media Server. The idea for this project is to identify the diffs between version 1.0 (current supported by BRisa) and 2.0 and provide the implementation for version 2.0 in the BRisa Media Server. | Python | Medium | leandro | leandro | Yet another MediaServer? Rygel is already planned to be part of Maemo under Harmattan release, it's open source and has a very flexible plugin API so it doesn't make much sense to duplicate all that work. What makes more sense is to write a plugin for Rygel to be able to export the playlists/media from Canola over the UPnP network. It will not only save a lot of code duplication but will be relatively much easier to do. |
UPnP Media Server Real Time transcoding | One of implementation of UPnP devices that BRisa project provides is the UPnP Media Server. The idea is to implement real time multimedia transcoding based on the client capability. For exemple, if the requester device supports only 800x600 and mpeg for a video, but in the media server the video requested is in 1280x768 and avi, the transcoding mechanism should automatically notice this and, at runtime, transcode the media to be transmitted to the format supported by the client | Python | Medium/Hard | leandro | leandro | You'll get this for free with Rygel, this is one of the main features I am planning to implement in the next release of Rygel |
UPnP Control Point Plugin for Canola | Implement a decent UPnP plugin for Canola using BRisa framework. This control point plugin should support control for both multimedia devices, the media server and the media renderer. | Python | Medium | leandro | leandro | I (Zeeshan) talked to Canola developers on IRC and they completely agreed that making this plugin based on GUPnP is a much better idea simply because GUPnP is already part of the product. |