a small relational database with user-editable schema for manual data entry
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ondřej Hruška ad6683adec
nicer bigtext editor
3 years ago
yopa add sort keys to things, add options object for "multiline" 3 years ago
yopa-web nicer bigtext editor 3 years ago
.gitignore clean, change default file extension for json 3 years ago
Cargo.lock add sort keys to things, add options object for "multiline" 3 years ago
Cargo.toml wip new UI with spectre 3 years ago
README.md add a readme 3 years ago



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.