#summary An introduction to Melange
#labels Contents-Draft,Featured,Phase-Guidelines

= Melange, the Spice of Creation =

== What is Melange? ==

Melange is the combination of a [SoCOverview framework] and multiple web
applications (including [GSoC GSoC] and [GHOP GHOP]) implemented to be
[AppEngine deployed on Google App Engine].

=== Replacing the GSoC web application ===

Originally, Melange was envisioned is an effort to produce an
open-source implementation of the [GSoC Google Summer of Code]^TM^ web
application.  At first, the GSoC web application appears to be part
[http://en.wikipedia.org/wiki/Content_management_system content management system],
part
[http://en.wikipedia.org/wiki/Ticketing_system issue tracking system],
and part
[http://en.wikipedia.org/wiki/Customer_relationship_management customer relationship manager].

But, while the GSoC web application shares some features in common with
those systems, it is quite different in its purpose.  The purpose of GSoC
(which is facilitiated by the web application) is to serve as a catalyst
for introducing college students to open source and free software
communities, in the hopes that these students would find a homes in those
communities and thrive.  To that end, the GSoC web application tends to
be more specific and less general than existing systems like those
mentioned previously.

As much as GSoC attempts to inspire new open source developers, it has not
previously been able to actually embrace them in the development of the
GSoC web application itself.  Initially, with the launch of the enabling
[http://code.google.com/appengine/ Google App Engine], the plan was to create
an open-sourced GSoC web application.  It would have to be created from
scratch, because the existing code is (unfortunately) wired directly to
Google infrastructure interfaces, which are old enough to be quite
unlike AppEngine.

=== Contributing ===

Please see the [ContributionTerms guidelines for contributors] if you are
interested in contributing to the design and development of Melange and
the [SoCOverview SoC framework].

=== Concept Diagram ===

[http://soc.googlecode.com/svn/wiki/images/MelangeOverview.dot http://soc.googlecode.com/svn/wiki/images/MelangeOverview.dot.png]

== Legend ==

|| *-------* || direct dependency (inheritance, method call, etc.) ||
|| *- - - -* || indirect dependency (call-back, etc.) ||

----
_Copyright 2008 Google Inc._
_This work is licensed under a_
[http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License].
[http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png]