infinito/documentation/product/system/requirements.md
2018-09-13 14:39:03 +02:00

3.1 KiB

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

"entity" or "entities" are to be interpreted as Doctrine Objects.

Bold words define a unique type.

requiremts

interfaces

The application MUST contain the following interfaces:

  • HTML
  • JSON

actors

user

The application MUST provide the following functions:

  • delete user
  • register user
  • modify user
  • create user (child)
  • login
  • logout

A user MUST have one node.

A user MUST be a source.

law

A law MUST belong exclusive to a node.

A law MUST contain one of each of right types one time.

right

A right MUST NOT be a source.

A right MUST belong to a law.

A right MUST be of one of the following types:

  • read
  • write
  • administrate

permission

A permission MAY have a father from which it inherit.

A permission MUST belong to a right.

A permission MUST allow blacklisting.

A permission MUST allow whitelisting.

A permission MUST allow that it applies to the parent relative collection s of the rule set.

A permission MUST allow that it applies to the child relative collection s of the rule set.

A permission MUST contain a collection on which the rule set applies.

node

A node MUST have one source.

A node MUST contain a parent relative collection.

A node MUST contain a children relative collection.

A node MAY be a member of one or more relative collection s.

A node MAY be a member of one or more collection entity.

A node MUST have a law.

A node MUST have a history.

relative collection

A relative collection MUST belong to a node.

A relative collection MUST contain node s.

A relative collection MUST provide the following functions:

  • get all relatives
  • get specific relative
  • get relatives
  • get relatives of generation

source

A source MUST have one node.

A source MUST be an entity.

A source MUST contain a file fabric.

entities

Sources MUST be on of the following entities:

entity attributes
user username,password,identity
identity names,addresses
address
date datetime
name string
birthday date
death date
text text(varchar)
collection nodes
live birthday,death

file

A file MUST be on of the following types:

  • HTML
  • JSON
  • XML
  • TEXT
  • CSV
  • JPG
  • MD

It SHOULD be possible to export a file to one or more other file s.

It MUST be possible to edit a file.

IT MUST be possible to save a file.

collection

A source MAY contain other nodes.

history

A history MUST log all of the actions which happen to a node.

A history MUST exclusive belong to a node.

A history MUST allow to give the state of a node of a special date back.