GSoC 2010/Project ideas

(add myself as possible mentor for aglesory)
m (Put myself on the wrong field)
Line 54: Line 54:
| 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
| 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
|-style="background:Orange"
|-style="background:Orange"
-
| Group chat support for Conversations || Extend Conversations to support group chat (IRC/XMPP MUC) via Telepathy || Maemo SDK, UI, Telepathy || Easy || corecode, epage || || will be supported in PR.1.2 according to some rumors: http://talk.maemo.org/showpost.php?p=572648&postcount=330  
+
| Group chat support for Conversations || Extend Conversations to support group chat (IRC/XMPP MUC) via Telepathy || Maemo SDK, UI, Telepathy || Easy || corecode || epage || will be supported in PR.1.2 according to some rumors: http://talk.maemo.org/showpost.php?p=572648&postcount=330  
|-style="background:LightGreen"
|-style="background:LightGreen"
| 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 ([[User:frede|frede]]), epage ||
| 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 ([[User:frede|frede]]), epage ||

Revision as of 10:42, 19 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 garage.maemo.org 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 maemo.org 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 http://dooble.sf.net webkit browser to maemo platform maemo SDK, packaging an installer easy http://dooble.sf.net http://dooble.sf.net 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 http://retroshare.sf.net - http://retromessenger.sf.net
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)
Remmina remote desktop Porting Remmina (http://remmina.sf.net), 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) VDVsx
Global Search application Global search application similar to Spotlight or Google desktop search Maemo, Qt, Tracker medium Sp1ke
OTR Support for Telepathy Integrate libotr support in the existing protocol stack maemo SDK, packaging, telepathy, some crypto medium
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
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
Group chat support for Conversations Extend Conversations to support group chat (IRC/XMPP MUC) via Telepathy Maemo SDK, UI, Telepathy Easy corecode epage will be supported in PR.1.2 according to some rumors: http://talk.maemo.org/showpost.php?p=572648&postcount=330
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), epage
Oscilloscope Port xoscope to maemo5, using the microphone port as an input, possible carrying on the work of pinnchus GTK/X11 speculatrix
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 thp 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.
Desktop Couch Port Desktop Couch to the maemo platform and integrate it with various applications (contacts, calender, etc) http://www.freedesktop.org/wiki/Specifications/desktopcouch/Documentation Desktop Couch, python packaging, documentation, maemo SDK Medium
Robotics Simulator Bring a full-blown robotics simulator to Maemo/MeeGo. For the start, the 2.5D simulator Player/Stage (http://playerstage.sf.net) would be ported and a simple GUI be written. Later integration with Fawkes (http://www.fawkesrobotics.org) 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. Shepherd sounds like it might fill a similar role and is currently in development.
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.
Ebook reader Implement a good, touch-optimized ebook reader with Qt (+ Maemo5 extensions) Qt Medium vivainio 08:15, 16 March 2010 (UTC) VDVsx This should become a bigger community project, but we need a good, working starting point. Perhaps base on Okular?
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.
MeeGo: online music services support It's convenient and fun to have direct access to online music services from the media player, as you can see in Amarok and GNOME Rhythmbox. But MeeGo Media Player lacks this support for now and we should address it. C, Clutter Hard Yan Li (yanli) Yan Li (yanli) You have to read through MeeGo Media Player's code and write patches to add this new function.
MeeGo: boot time optimization MeeGo is booting fast. But no one would blame it for being even more faster, do they? OS, Linux kernel, C Hard Yan Li (yanli) Yan Li (yanli) Basic understanding of the current skills used in Linux fast boot is needed, as well as having a good picture of read-ahead. Of course, creative thinking is the most important.
MeeGo: power usage tuning Linux is far from being power-optimal, not to say the complex and bulky desktop components. There are so many things can be done in this area for the vast collection of free software running on MeeGo that I don't know which is most important yet. Do you know it? OS, profiler Medium to Hard Yan Li (yanli) Yan Li (yanli) PowerTOP is a good start. The hard part in this idea is the participant has to have a power meter to measure the real-time power usage, or you have no way to know your progress. Some computer science or EE labs in universities have that meter. But there are still tasks can be done even without a power meter, like running major software parts within a profiler to identify and optimize hot spots.
MeeGo: GUI for fsck MeeGo lacks a beautiful GUI for fsck. When fsck is running, there should be a GUI to show the progress and when it's done, another dialog to show the result and ask for actions to take. OS, C Hard Yan Li (yanli) Yan Li (yanli) The hard part here is that when fsck is supposed to be running, we have no X, so the GUI has to be running with framebuffer.
MeeGo: Better handling of X failures X should be running well and unknown to end user for most time, but it does fail, sometimes. When it fails, MeeGo should handle it gracefully. Currently MeeGo's uxlauncher just keeps fingers crossed and restarts X, but sometimes things go really wrong and X can't start at all, and the users are faced a dead-loop with screen flickrs every 10 seconds. We may need a safe-mode, or learn from Ubuntu's BulletProofX MeeGo uxlaunch, C, X Hard Yan Li (yanli) Yan Li (yanli) We should start simple with a graphical notification, stating X can't start, when detected X has 2 failures in a row. Then add a safe mode, in which users can configure X accordingly