Google Summer of Code

Starting off

  1. For general information on the Google Summer of Code, read the Student FAQ.
    • Here's a summary: Google SoC is open to students at all levels age 18 years and older. Students whose proposals are accepted will work full-time on their open source project with the guidance of an Adium developer ("mentor"). Successful students will earn $4500 from Google for their efforts and have a fantastic addition to their resumés.
  2. Pick a project from the list below or posit your own to the development team.
  3. Write a strong proposal. See Proposal Guidelines for more information.
  4. Submit your proposal directly to Google (on the Student Step 1 page). Applications are due by n/a.

You can contact us before submitting a proposal, but it is not required - an excellent application speaks for itself. Below are some suggested proposals. If you have multiple proposals or ideas, feel free to submit multiple applications to us; we will (and can) only accept one per person. Remember though, quality is better than quantity!

If you have some time, drop by on #adium on freenode and discuss your proposal with us. This can certainly improve your chances to be accepted.

Some proposal ideas for the Google Summer of Code:

This list will continue to evolve, so if you are interested in working with Adium but don't have an idea yet, keep brainstorming but also check back here for new suggestions. Please note that this is not an all-inclusive list. Feel free to submit a wholly original proposal. Keep in mind that if you apply for one of our suggestions, you're potentially competing against many others for the same idea. If your own idea, you'll be competing your idea against just a handful of other ideas, as well highlighting your creativity. As mentioned previously, you can submit multiple applications, so be creative!

If you have any questions, feel free to contact any of the mentors.

Adium itself is licensed under the GPL; unless otherwise noted, submitted code should be GPL or GPL-compatible.

Adium proposal suggestions

Crash reporting (leaving this here so we don't forget next year)

Your project here

Have an original idea you believe is a high priority for Adium or is just plain awesome? Great! Sell us on it :) Original project ideas are not only encouraged but will generally be considered stronger than an idea from this page. We want originality and passion!

XMPP improvements (once again)

  • Could be anything, try to think of something you'd like to have in there. This list could give you a hint, but you aren't limited by it.
  • Likely requires changes to the libpurple code.
  • Examples:
    • Implementing an interface between ad-hoc commands and AppleScript: This would allow remote-controlling a machine via Adium. It would include being able to design query forms in AppleScript for asking the controlling client for more information. (the client-side of ad-hoc commands are already implemented in Adium!)
    • XEP-0136: Message Archiving (might not be enough on its own)
    • XEP-0154: User Profile (might not be enough on its own)
    • Replace the current webkit-based solution for libpurple field requests (aka generic forms) with a dynamic Cococa-based form generator. (This could be part of a project proposal but is not sufficient on its own)

Adium A/V

  • Add voice/video-chat to Adium
  • There's existing code for some parts, but that requires cleanup and has to be updated for the current development version
  • Requires work in libpurple, too
  • Note that this project may overlap with projects submitted for the Pidgin project; this will likely be a highly competitive area, so plan accordingly

True plugin API for Adium

A proposal for this would need to address versioning, compatibility checking, and plugin updating, including dealing with plugins depending upon specific versions of libpurple (which are themselves versioned in a major.minor.micro format).

Add unit tests using OCUnit

  • This means writing test cases -- lots of test cases.
  • Document the API on the way.
  • Possibly investigate and implement a code coverage tool such as gcov to illustrate criticalities.
  • State the target coverage (in %) of classes/frameworks in your application. Make it's a number you are willing to stand behind!
  • Applicant should be passionate about QA in general, unit testing specifically.

Improved solution to #2414

Adium + Other Project projects

Likely impossible ideas

  • Support for the Skype IM (text-only) protocol
    • the official Skype API requires the Skype application to run, and thus is not an option!
    • This might best be implemented as a libpurple prpl
    • Be sure you understand the extent to which this would be a difficult project; Silver Needle in the Skype may be relevant reading, though the text-only protocol could be different.

Timeline for 2011

  • n/a
  • See n/a for a more detailed timeline
Page last modified by Robert, 9 years ago