SoC is the software framework, implemented in Python, that underpins the Melange project. This framework is designed to make it possible to host Melange applications, such as the Google Summer of Code TM and the Google Highly Open Participation TM Contest on the Google App Engine.
The framework follows a ModelViewController pattern. Entities of each Model are stored in the Google App Engine Datastore. Sharing the Models between different 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 Views are implemented using Django templates and forms. Other possible Views are implemented as GData APIs and 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 Controllers in the SoC framework implement the "business logic" that actually forms the core of each separate Melange web application. For each real-world program (e.g. GSoC or 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.
Please see the 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 Creative Commons Attribution 2.5 License.