GSoC 2009/Project ideas

(Ideas List)
(Ideas List)
Line 78: Line 78:
| ''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 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 ||
|-style="background:LightGreen"
|-style="background:LightGreen"
-
| ''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 ||
+
| ''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.
|-style="background:LightGreen"
|-style="background:LightGreen"
-
| ''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 ||
+
| ''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
|-style="background:LightGreen"
|-style="background:LightGreen"
| ''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 ||
| ''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 ||
|}
|}

Revision as of 16:54, 5 March 2009

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 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 favriote 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 learing algorithm to reach the goal. Python/C Medium Derkaiser
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
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 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