My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
GSoC2011Ideas  
Google Summer of Code 2011
Updated Apr 16, 2012 by friedger@gmail.com

GSoC 2011 Project Ideas

About Us

OpenIntents provides an open framework for developers and free and open source applications for Google's Android mobile phone platform.

OpenIntents has been selected as participating organization in the Google Summer of Code 2011.

Why Work for OpenIntents?

  • OpenIntents would give you the opportunity to contribute to a cutting-edge mobile technology movement that will benefit both developers and users.
  • Successful student projects will eventually be hosted and promoted on the OpenIntents directory, and made accessible to Android developers and users worldwide.
  • We are still a small but passionate team, so your experience in working with us will involve working with the project initiators and project leaders directly and flexibly.

Students

The student application period will run from March 28 to April 8. However, it is a good idea to get in touch with us already a while before the deadline. Effective communication is a determining factor of a successful student, so if you're interesting in being a part of our community, do keep in touch via our lively discussion group.

It would also help to browse through the GSoC students page and familiarize yourself with the student application form

Technical Requirements

Besides the project-specific requirements, interested students are required to have strong programming skills in Java, or a strong background in C++ or C# with the drive to learn Java quickly. A knowledge of SQL (sqlite) would be an added advantage.

Furthermore, before being considered for a project, you should already have:

A small patch is fine, but it should be coded nicely. We are interested in good quality, not quantity. This will help us to assess your coding skills and coding style.

Ideas

We've listed out a bunch of ideas below. If you happen to pick one to work on, let us know your plan with a comprehensive time-line of the tasks you plan to accomplish, and the methods and resources you'll use to do so. Refer to the student application form.

We also welcome additional ideas not currently on this list. You're encouraged to let us know of and debate your ideas on the discussion group. You could derive some inspiration for your own ideas from the following sources:

Adapt OI applications for tablet devices running Android 3.0

The newly introduced concept of fragments can help to write modularized applications suitable for Android phones and Android tablets. A static library has been published with which backward compatibility can be ensured down to version Android 1.6. The aim of this project is to modify one or several OI applications (for example OI File Manager, OI Shopping List, or OI Notepad) so that they properly include the new Fragments API and provide seamless interfaces for phones as well as tablets.

  • Requirements: good knowledge of Java and / or Android.
  • Potential mentors: Peli, Friedger, Ronan, Al

Update SensorSimulator to support latest Android API

The OpenIntents SensorSimulator simulates sensor data for Android Virtual Devices, enabling developers to test sensor based apps using the emulator.

Since the Android platform develops so fast, the SensorSimulator API is currently outdated. The aim of this project is to update the API with the current Android SDK 2.3 status. This would involve replacing deprecated methods and adding additional method wrappers (like getSensorList(int type) for instance).

It would also involve implementing new sensor types in the simulator, like gyroscope sensor, light sensor, or proximity sensor, which are defined in the sensor documentation. Additionally, bugs need to be smashed and a lot of work be put into cleaning up the code resulting in a robust Sensor Simulator.

  • Requirements: good knowledge of Java and / or Android, knowledge of trigonometry for sensor conversion maths.
  • Potential mentors: Peli

Eclipse plugin for intents registry

OpenIntents provides an intents registry for developers. The idea is to build an Eclipse plugin that enables developers to browse the online intents registry and insert a code block corresponding to the selected intents directly into their Eclipse project. It should be easily accessible via a context menu or even via the code completion feature of eclipse.

  • Requirements: knowledge of the Eclipse plugin framework, good Java skills.
  • Potential mentors: Friedger

OI Shopping List online synchronization

A well-demanded feature for OI Shopping List is online synchronization. Some work has begun for an extension of the shoppinglist that allows for synchronization with Remember the Milk, but was never fully completed. Another possibility would be to synchronize with Google Spreadsheet API. This requires further implementation of the REST API and settings for sync scenarios (only via wi-fi, directly on item change, etc). The use of a SyncAdapter is recommanded.

  • Requirements: good Java skills, SQL, knowledge of accessing web services through XML and HTTP, knowledge of Google API.
  • Potential mentors: Peli, Ronan

Online analysis and upload of Manifest files to the intents registry

The online analysis tool is developed as an open source project (source code). A very basic version of the applications registry is online.

To further ease the extension of the intents registry, a module for the intents registry website should be developed that takes a given .apk (application package) file, reads the manifest and adds all included intents to the database.

  • Requirements: knowledge of PHP, SQL, good java skills. Knowledge of Drupal is of advantage.
  • Potential mentors: Friedger

About Me/My Contact Card Application

Currently, the Android frameworks lacks a possibility to access a business card/profile of the device users. The aim of the project is to create an app that maintains one or more user profiles that the user can easily share and other applications can rely on.

There are two aspects of the project:

1) Creating an app that maintaints and shares profiles, the OI Notes app and the contacts app can be used as the base.

2) Promote and push the proposed solution to android.com and and hardware manufactures such that the fragmentation between devices is minimized (join discussion about MyContactCard plugin of the Device Analyzer).

  • Requirements: good knowledge of Java, Android, knowledge of git, repo is of advantage
  • Potential mentors: Friedger

Open FreeSMS Intent

This project will create a new intent that other applications can access, so that sites that provide free SMS sending can be accessed transparently. As a code base and inspiration, pyFreeSMS, an open source Python API can be used to send messages from a 160by2 account. For this purpose, a new intent shall be defined with the functionality sendmessage (username, password, phonenumber, message) and optionally the choice of the service one wants to connect to. The various APIs have to be accessed through HTTP requests.

  • Requirements: good knowledge of Java, Android, and HTTP requests
  • Potential mentors: Peli, Friedger

Device theft detection intent

The main idea of this application is to serve as a passive anti-theft tool for Android phones. A central application should monitor the device for possible signs of theft, and then lock the device or notify other applications on the device to lock down or delete their data, or perform some other pre-defined action. For this reason, the bluetooth API could be used to test for other devices in proximity, and hence react to unexpected separations over a longer time span. Once a possible theft is detected, the application could ask for a password and optionally launch an intent for example to send a silent SMS with GPS details or to automatically lock down the device or delete application data. The Android Bluetooth Simulator could be used to test communication through bluetooth between different emulators.

  • Requirements: good knowledge of Java and Android; experience with bluetooth is of advantage.
  • Potential mentors: Peli, Al

Auction watcher as extension for OI Shopping List

This would be a new application that watches the shopping list for new entries and queries online auction and shopping sites for these items. If appropriate items are found, the user receives a notification. If the user chooses to follow an item more closely, they are reminded an hour before the end of the auction. For this project, you would have to implement an Android Service that can accesses the Ebay Shopping API or the Amazon web services. Support for further companies may be added too. Also, an (automatic) blacklist for frequently bought items that you usually buy in the supermarket could be added, so that these don't have to be searched online.

  • Requirements: good Java skills, SQL, knowledge of accessing web services through XML and HTTP.
  • Potential mentors: Peli

Social bookmarking tool for OI Newsreader

An extension for the Newsreader to upload selected messages to a social bookmarking service of the users choice. This can build upon the old project for the now-defunct Site Ma.gnolia, implementing additional protocols and sites, using for example the Delicious API, the Digg API, or other related APIs.

  • Requirements: good Java skills, SQL, knowledge of accessing web services through XML and HTTP.
  • Potential mentors: Ronan, Al

Dynamic tag cloud for central tagging

OpenIntents already provides basic CentralTagging to tag arbitrary content like contacts, notes, music, pictures, videos, in a common way, but the corresponding code base is currently outdated.

The corresponding code would first have to be updated to run on the current Android platform. Once this is accomplished, there are many ways to enhance the user interface. One possibility would be a dynamic tag cloud, using either Android's 2D graphics or Android's OpenGL API. The tags in various shapes and colors would float around, with more important tags being larger. The user would click a tag to open associated content (contacts, notes, music, ...), drag it to the middle of the screen to see associated tags pop up, or drag it off the screen to have smaller tags from the background get larger. An extension may be to display the tagged information directly in the tag cloud view: For example keeping the finger on a tag would toss out the pictures associated with this tag.

  • Requirements: good/strong Java skills. Experience with game programming or animation is recommended for this project. Knowledge of OpenGL or 3D transformation matrices is of advantage.
  • Potential mentors: Peli, Al

Dynamically granting permissions

Currently, the user has to grant all permissions that an application can use at installation time. The idea is to create a new application that can grant permissions dynamically when needed.

For example, OI File Manager dynamically adds commands in the context menu (long press). Some of these commands may require additional permissions. Currently OI File Manager crashes if it wants to launch an application for which it does not have permissions. The first step is to catch the security exception and display a friendly error message. One solution would be to add all possible permissions to OI File Manager, but this may pose security risks.

The idea is to create a new independent application (called e.g. "OI Dynamic Permissions" or "OI Permissions"). This app will include all possible kinds of permissions, but it will not use them by itself. It will wait for another application (like OI File Manager) to request launching a specific intent. It will then ask whether to grant the permission for this application, and the user has the chance to allow "once", "always", or "never" access for this application to this permission.

  • Requirements: good knowledge of Java and Android
  • Potential mentors: Peli

Mentors

The mentors will be:

  • Peli (peli0101 (at) googlemail (dot) com)
  • Friedger (friedger (at) googlemail (dot) com)
  • Ronan (zeroogle (at) googlemail (dot) com)
  • Al (al (at) funkyandroid (dot) com)
  • Isaac
  • Randy
  • Carl
  • Jens
  • Pjv
Each student will be assigned one main mentor, but are encouraged to interact actively with the others too, as well as with our lively discussion group.

Mentors must read the advice for mentors.

Feel free to post your queries on our discussion group.


Sign in to add a comment
Powered by Google Project Hosting