This Curry package contains an implementation of a personal wine database together with a web-based interface. It is implemented in Curry and based on the web framework Spicey and Bootstrap for a nice layout.
-
Before you compile the generated web application for the first time, execute the command
> make install
to install all packages required by this application (where the executable
cypm
of the Curry Package Manager should be in your path). -
Before you deploy your web application, you should define the variable WEBSERVERDIR in the
Makefile
according to your desired location.Then you can deploy your web application by the command
> make deploy
The directory structure of this package is as follows (where is the name of your entity-relationship model).
-
src/Model/
This directory contains the implementation of the data model, i.e., it contains the Curry module<MODEL>.curry
implementing the access to the database which are generated from the ER description. In addition to the Curry program, this directory also contains the Curry file of the original ER description (file<MODEL>_ERD.curry
), the term files of the transformed ER description (<MODEL>_ERDT.term
), and the info file<MODEL>_SQLCode.info
which is used by the Curry preprocessor when SQL queries are embedded in the source code. -
src/Controller/
This directory contains the implementation of the various controllers that are responsible to react on user interactions. It also contains a moduleAuthorizedControllers.curry
that contains the authorization rules that should usually be adapted according to the customer requirements. -
src/View/
This directory contains the implementation of the views of the different entities. These views are called from the corresponding controllers. Moreover, it also contains the module<MODEL>EntitiesToHtml.curry
which contains the code to translate all entities into an HTML representation. Usually, this code should be adapted according to the customer requirements. -
src/Config/
This directory contains modules to configure the overall access to the functionality provided by the system. For instance, the information about the routes, i.e., the URLs supported by the system and their mapping to individual controllers, is defined in the moduleRoutesData.curry
. The moduleControllerMapping.curry
defines the actual mapping of controller references to the operations implementing the controllers. The moduleUserProcesses.curry
contains the definition of the processes that can be selected by the user. -
src/System/
This directory contains global modules implementing session management, authentication, authorization, user processes, etc. -
public/
This directory contains images and style files used by the installed system.