# YOPA Yopa is a relational database for cataloging things. The data model is user-editable through a web interface, together with the data. ## Data model There are three kinds of entities in the database: objects, relations, and properties. Here is an example database schema that can be easily set up in Yopa: ``` ,----quantity-----> Ingredient | - amount in the pantry | - e-shop link | Recipe ------page X-----> Book - cook time - author(s) - difficulty - year - photo URI(s) ``` Relations link two objects. Properties are attached either to an object, or to a relation - this makes sense for relations that need additional information, such as a page number when referencing a book. Yopa implements four base data types: String, Integer, Decimal and Boolean. Properties may further be optional and/or multiple. ## Web interface Yopa is the database engine. There can be any number of user interfaces to it. Presently, the `yopa-web` module provides a web interface with a built-in web server. Just run the binary and it will open your yopa database for editing. The file is created on the first change if it doesn't exist.