Ceres
Ceres is a recipe server for local networks.
Usage
The Ceres source code can be downloaded with Git.
git clone https://cgit.xengineering.eu/ceres
cd ceres
git submodule update --init
Only the Go tool is required to build ceres.
go build
The resulting ceres executable can be run with the embedded default
configuration. It produces a storage folder containing the SQLite3 database.
The storage directory is set in the configuration file. See
default_config.json for a reference.
./ceres
For development it is recommended to build and run it without producing an
executable, an activated race detector and injected examples.
go run --race ./... --examples
The help page (./ceres --help) contains further details.
Repository structure
This repository uses an interpretation of the Model-view-controller
pattern to organize the code. The result is a set of three sub-packages of
the main xengineering.eu/ceres package.
The model package contains the struct definitions for the handled data and
the code for Object-relational mapping to store the data in a SQL-based
database. Usually the common create, read, update and delete (CRUD)
functionalities are implemented as methods.
The controller package contains all HTTP handlers used to modify the data
while the view package contains all HTTP handlers to display the data in any
formats. HTML templates are part of this package.
API definition for Semantic Versioning
Ceres uses Semantic Versioning as defined by semver.org. This requires to
define a "public API". These aspects of Ceres together form the public API:
- command line interface
- HTTP interface
- data storage format
- configuration file format and structure
As soon as version 1.0.0 is reached these aspects are stable.