blob: dd3cb0e424218c8a035f2c2631e0ada6699a6b09 [file] [log] [blame] [view]
## SoC, the Spice of Creation framework
SoC is the software framework, implemented in [Python](http://www.python.org),
that underpins the [Melange](MelangeIntro.md) project. This framework is
designed to make it possible to host Melange applications, such as the
[Google Summer of Code](GSoC.md) <sup>TM</sup> and the
[Google Highly Open Participation](GHOP.md) <sup>TM</sup> Contest on the
[Google App Engine](http://code.google.com/appengine/).
The framework follows a ModelViewController pattern. Entities of each
[Model](ModelsOverview.md) are stored in the
[Google App Engine Datastore](http://code.google.com/appengine/docs/datastore/).
Sharing the Models between different [Melange](MelangeIntro.md) 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 [Views](ViewsOverview.md) are implemented using Django templates
and forms. Other possible Views are implemented as
[GData APIs](GDataOverview.md) and [Atom feeds](FeedsOverview.md). 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 [Controllers](ControllersOverview.md) in the SoC framework
implement the "business logic" that actually forms the core of each separate
[Melange](MelangeIntro.md) web application. For each real-world program
(e.g. [GSoC](GSoC.md) or [GHOP](GHOP.md)), 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 [guidelines for contributors](ContributionTerms.md) 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_
[Creative Commons Attribution 2.5 License](http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html).
[![](http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png)](http://creativecommons.org/licenses/by/2.5/)