Flow between UI and logic
The application is based in part on what's known as a model-view-controller (MVC) framework. Here you can find a hight-level overview of the implementation.
In MVC, a controller layer manages interactions between what people do in the user interface (the view) and how the application's logic (the model) responds. The controller layer is provided by Apache Struts (the view is FreeMarker or JavaServer Pages, while the model is implemented as Java classes). Application logic responds to the user interface through Struts actions that return results that depend on the nature of the request.
Struts is an open source framework. For more information, see Apache Struts portal at http://struts.apache.org/.
Customizing
Developers can write their own Struts actions, usually accompanying user interface additions. Actions are written as plugins.