blob: fd627ce3f9681810f88fe8798a1127ec77100b50 [file] [log] [blame]
#summary Overview of SoC
#labels Phase-Requirements,Contents-Draft,Importance-Overview
== SoC, the Spice of Creation framework ==
SoC is the software framework, implemented in [http://www.python.org Python],
that underpins the [MelangeIntro Melange] project. This framework is
designed to make it possible to host Melange applications, such as the
[GSoC Google Summer of Code] ^TM^ and the
[GHOP Google Highly Open Participation] ^TM^ Contest on the
[http://code.google.com/appengine/ Google App Engine].
The framework follows a ModelViewController pattern. Entities of each
[ModelsOverview Model] are stored in the
[http://code.google.com/appengine/docs/datastore/ Google App Engine Datastore].
Sharing the Models between different [MelangeIntro Melange] web
applications not only promotes code reuse, it also permits similar
real-world programs to import and export entites and share them.
A variety of [ViewsOverview Views] are implemented using Django templates
and forms. Other possible Views are implemented as
[GDataOverview GData APIs] and [FeedsOverview Atom feeds]. Since the
Views are accessing entities of common Models shared amongst Melange
web applications, much of the code is reused. In most cases, only
Django templates need to be modified to customize these existng Views
for a specific real-world program.
The different [ControllersOverview Controllers] in the SoC framework
implement the "business logic" that actually forms the core of each separate
[MelangeIntro Melange] web application. For each real-world program
(e.g. [GSoC GSoC] or [GHOP GHOP]), a web application is created, built on
top of a new Controller that is derived from one of the similar existing
Controllers in the framework. This pattern encourages code sharing between
the different Melange web applications used to run these different
real-world programs. Reuse of Controller code is further enhanced by the
Models and Views that are shared between Melange web applications.
=== Contributing ===
Please see the [ContributionTerms guidelines for contributors] if you are
interested in contributing to the design and development of the SoC
framework.
----
_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]