My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
GoogleSummerOfCode2008  
Google Summer of Code 2008
Deprecated
Updated Jan 3, 2011 by peli0...@gmail.com

Google Summer of Code 2008

Notice

OpenIntents will NOT participate in the Google Summer of Code 2008.

The reason is that we have received the answer from a Google member that we can not participate in both, the Android Developer Challenge and the Google Summer of Code, as participation in the latter could be regarded as a form of employment and therefore lead to disqualification from the Android Developer Challenge.

----------------------------------------

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

Our project applies for the Google Summer of Code 2008. We will know by March 17 whether we are accepted as a mentoring organization.

Interested students are required to have strong programming skills in Java (or a strong background in C++ or C#, willing to learn Java quickly). A knowledge of SQL (sqlite) is of advantage.

Students are advised to read the GSoC students page.

We require the following from you:

  • If you are interested in participating in our project, please contact us as soon as possible (see possible mentors below).
  • Before we accept you, you should already have:
    • downloaded and installed the Android SDK (with Eclipse and JDK)
    • went through the Android Tutorial
    • tried to modify the tutorial in some way (send us a small patch or email the few lines of code that you changed).

List of Ideas

Shopping list

OpenIntents has a CentralShoppingList implemented. The PresentPicker sample application demonstrates how other applications could access it. Possible GSoC projects are:

  • Auction watcher: 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 if time permits. 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.
  • Cookbook: This new application would allow one to browse through the Wikibooks Cookbook using the Android Webkit. If you like a recipe, the ingredients should be extracted from the HTML page (they are always in the section called "Ingredients" in an unordered list), and add them to the shopping list. An extension to the standard shopping list may be a new kind of list called "recipe" that contains the ingredients as well as cooking instructions and an image of the dish, obtained from the online cookbook. An additional feature may be to scale the numbers appearing in "ingredients" by a desired factor, to scale a recipe for example from 4 persons to 6 persons.
    • Requirements: good Java skills, SQL, understanding of HTML parsing and regular expressions.
  • Gifts: This application would allow one to create a wish list that can be shared with one's contacts, using Android's GTalk service. Any of the contacts can then buy the gift and act as the gift giver. There are 2 separate roles: Gift Giver: They receive the wish list and can pick a gift to buy. The mobile alerts the giver when they are close to a shop using Android's location based service APIs. The giver may choose to buy the gift and strike the item off the wish list. Gift Getter: The getter creates the wish list. The getter uses the wish list application of the shopping module to create their list of items. The getter might also optionally choose to add shops using the base location module. Upon completion of the wish list, the getter can now broadcast this list to their contacts. Download the functional requirements document for Gifts here. A related application may be to have a common shopping list automatically synchronized between family members or friends, who receive proximity alerts if they are close to a shop that sells an item that is on the list.
    • Requirements: fair/good Java skills, SQL. Willingness to learn quickly about GTalk and location based services.
  • Shops: This is an extension to the OpenIntents core: One should provide a new Android ContentProvider that stores information about shops, their location, opening hours, notes, and other useful information. If the user is close to a shop, as indicated by the Android LocationManager, the shopping list should notify the user if there are items to be bought in the list. As an extension, the shopping list could ask the user if a large part of shopping items are crossed out within an hour whether they are in a shop that the user would like to add to "favorite shops" for future notifications. The shop's address could then be obtained through the Android Geocoder.
    • Requirements: good Java skills, SQL. Willingness to learn quickly about location based services.
  • Skins: An extension of the shopping list would allow it to appear with new "skins": The shopping list's look could be closer to a "real grocery list". This project is not only about creating the right background images and picking the right handwriting fonts, but also requires to find solutions to add graphics and fonts as external resources (we don't want to ship them with the core), and the possibility for the user to adjust elements and arrange them as desired. Currently items are crossed out by strike-through, but an alternative would be to tick items. An extension may be to display the shopping list in several columns. To further enhance the readability in shops on small displays, larger fonts could be used with fewer items displayed. An extension may be to display the shopping items in the order they were bought last time as one enters the shop to reduce the amount of scrolling necessary, or show the items in large fonts that are probably the next to be checked off, but retain a smaller font list of all other items on the bottom of the shopping list.
    • Requirements: fair/good Java skills, SQL. Could be easier code-wise, but a good eye for design and user interface is desired. Mastering Gimp, Inkscape, or other graphics application is of advantage.
  • General list: The shopping list could be the starting point for a more general abstract list, from which shopping lists, Todo lists, or recipes are derived. To demonstrate the usefulness, first a general list should be implemented, and then a couple of lists with their specific extensions derived. Care should be taken that the derived lists blend well into the Android system: For example, the Todo list could remind one of things to do at a specific location through the Android LocationManager, at a specific time through the Android AlarmManager, or if a certain person calls, using Android telephony services.
    • Requirements: good Java skills, SQL. Ability to analyze existing class structures and refactor in optimal way.

Sensor Simulator

OpenIntents has a SensorSimulator to simulate Sensor data coming from accelerometer, compass, or orientation sensor. Possible projects are:

  • Sensor Service: (advanced) Currently, the Android Sensors class provides raw sensor data, like vectors for acceleration or yaw, pitch, and roll components of the orientation sensors. For common developers, it may be desirable to have easier access to sensors, and receive events based on user action, like "shake", "move up", "hit twice", or to associate the sensors with Android widgets like ListView or Spinner so that the user could scroll through long lists simply by tilting the phone, or scroll a MapView by tilting and rolling the phone. This requires implementing an Android Service that watches the sensors, and for fast communication between an application and the service the use of the AIDL interface.
    • Requirements: strong Java skills. Interest in physics and trigonometry is highly recommended.
  • Location Simulator This could be a new application implemented similarly as the Sensor Simulator: For testing location based services, one currently needs to write a mock location provider which is not very convenient. It would be nice to have an application that shows a map (through the Google Map API) on which the user can click or drag a mobile phone user around. This would also involve providing selected derived classes of the Android location-based service API that communicates to the Location Simulator so that applications can use the simulated location information. There are no limits to decorating the Location Simulator (like to be able to draw a specific route on a map with the mouse, that is then simulated at a certain velocity, with a small car icon). A small sample application that shows how to access and use the location simulator should be provided.
    • Requirements: fair/good Java skills, JavaScript, HTML.

Central Tagging

OpenIntents already provides basic CentralTagging to tag arbitrary content like contacts, notes, music, pictures, videos, in a common way. Possible projects are:

  • Dynamic tag cloud Work on a basic tag cloud has already begun, but it would be really cool to have a 2- or 3-dimenional 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.

Splashplay

Work on Splashplay has just begun (have a look at the design studies here). Splashplay helps you to learn to play the guitar easily. Splashplay is intended as an application that showcases how the components of OpenIntents can be utilized in third-party applications. Possible projects are:

  • Piano view The first version of Splashplay will soon include a guitar fretboard view and a tablature view. Both will be synchronizable with a MIDI or MP3 file to show positions of fingers on the fretboard in real time. This could be the basis for a piano keyboard view and a piano roll view, optionally with basic sheet music output, using Android's 2D graphics. The emphasis is not on the printout quality of the sheetmusic, but the easy interaction with the user (clicking on a note or chord should play it and show the keys on the keyboard - clicking on the keyboard should show the note on the sheet). Additional exercises as they are planned for the guitar application could be implemented (like trying to find a chord on the keyboard that the mobile played, or trying to repeat a given sequence of notes on the keyboard; or a simple notes quiz - "where is A#?").
    • Requirements: good/strong Java skills. Experience with MIDI is highly recommended, as is playing an instrument.
  • Tagging support In Splashplay, the user keeps a list of practise songs. This could be combined with OpenIntents CentralTagging: Put a tag on songs or chords, but also put a tag on a specific part of a song that one would like to practise. This includes creating a new URI scheme for the Android Content Provider to specify a specific position in a song. Create new menu items, buttons, or shortcut keys that let you quickly specify parts of a song that you don't know well yet. Or even better: compare the keys the user pressed with those they should have pressed, and automatically tag disagreeing regions as "to be practised". If the user has 5 minutes to wait for the bus, she can easily jump to those song parts that require further practise.
    • Requirements: good Java skills, SQL. Experience with MIDI is recommended, as is playing an instrument.

Further sources

You can find further inspiration for your project on one of these pages:

How to prepare your application

The most successful projects are the ones suggested by the students - that is you. So, we encourage you to come up with an idea, or expand on one of the suggestions given above, that you feel most comfortable with. Which application would you like to have on your mobile phone in half a year? (for free!)

Your idea should contain 1 KISS element that you are sure you can finish within a week (or even an afternoon!). The rest of your idea should be presented modular in nature:

  • In 2 weeks, I could probably finish this: ...
  • In a month, I could probably finish this: ...
  • For the GSoC, I think I can accomplish this: ...
  • Some related ideas that would probably go beyond the GSoC are: ...

Be as specific as possible, listing Android classes or OpenIntents code parts on which you would base your code (we can help you with that if you ask).

Note that our project is quite new and evolving at a fast pace, so be prepared and have alternatives for the case that some parts of your idea are already implemented by the time you start coding.

Don't just copy from the ideas page, but focus on one specific point that interests you most and from which you can expand more than exists already.

Why would you like to work for OpenIntents?

  • OpenIntents offers you the opportunity to work on cutting-edge mobile technology (the Android SDK is still in pre-alpha status!)
  • You will get a chance to show off "your" application on a real phone as soon as they become available later this year.
  • We are still a small, but passionate team - so you will interact directly with the project initiators and project leaders in a flexible way.

Mentors

The mentors will be:

Students will be assigned one main mentor, but are encouraged to interact with the others as well, as well as with our lively discussion group.

Mentors will read the advice for mentors.

Feel free to ask any question in our discussion group.


Sign in to add a comment
Powered by Google Project Hosting