Optimized documentation

This commit is contained in:
Kevin Frantz 2019-01-26 16:47:51 +01:00
parent f6978628b9
commit a7ad02be50
9 changed files with 48 additions and 165 deletions

View File

@ -1,11 +1,7 @@
# Documentation
## convention
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be
“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the README.md files and in the comments of the code are to be
interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
# architecture
## application
The application MUST be based in the application folder.
The application MUST use Symfony 4.
## README.md
Each folder SHOULD contain a README.md file, which describes the domain of the folder.

View File

@ -3,9 +3,19 @@
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2754e42b5db4404798c13d1cf871dac3)](https://app.codacy.com/app/KevinFrantz/infinito?utm_source=github.com&utm_medium=referral&utm_content=KevinFrantz/infinito&utm_campaign=Badge_Grade_Dashboard)
[![Build Status](https://travis-ci.org/KevinFrantz/infinito.svg?branch=master)](https://travis-ci.org/KevinFrantz/infinito) [![codecov](https://codecov.io/gh/KevinFrantz/infinito/branch/master/graph/badge.svg)](https://codecov.io/gh/KevinFrantz/infinito) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) [![Code of Conduct](https://img.shields.io/badge/%E2%9D%A4-code%20of%20conduct-blue.svg?style=flat)](https://github.com/KevinFrantz/infinito/blob/master/CODE_OF_CONDUCT.md)
## Setup
All setup and administration scripts you will find in the folder *administration*.
## Idea
This software should offer a cloud based application\\framework for GUI based development and data management.
### Core\\USP\\Target
- High differentiable of rights for persons, groups and devices
- Interface for persons and devices (IoT)
- Support of mixtures between executables and data
- Versioning of every state of the used data
- Automized transparency for users about their data
- Expanding the standard program paradigma of classes and objects through ***sources***
- Implementation of all big standard applications via API to manage them over one interface
## Setup
To run the application you need docker.
After installing docker you just need to run
@ -13,8 +23,21 @@ After installing docker you just need to run
bash ./administration/init.sh
```
in the root directory of the repository.
## License
The "GNU AFFERO GENERAL PUBLIC LICENSE" applies to this project. See LICENSE.txt.
The "GNU AFFERO GENERAL PUBLIC LICENSE" applies to this project. See [LICENSE.txt](./LICENSE.txt).
## Code of Conduct
To contributions of this project the "Contributor Covenant Code of Conduct" applies. See CODE_OF_CONDUCT.md.
To contributions of this project the "Contributor Covenant Code of Conduct" applies. See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
## Administration
Further information you will find in the [administration README.md](./administration/README.md).
## Application
Further information you will find in the [application README.md](./application/README.md).
## Documentation
Further information you will find in the [DOCUMENTATION.md](./DOCUMENTATION.md).
## Main Author
[Kevin Veen-Birkenbach](kevin@veen.world) aka. [Kevin Frantz](mail@Kevin-Frantz.de).

View File

@ -1,14 +1,14 @@
# requirements
#administration
In this folder you will find all necessary scripts to run and configure the application.
## requirements
This scripts are optimized for Ubuntu, but may they will run on MAC OS.
Tested on a Ubuntu 18.04.1 LTS machine.
# administration
In the administration folder you will find all necessary scripts to run and configure the application.
# initialization
## initialization
To initialize the docker environment, please execute in the root:

View File

@ -1,15 +1,16 @@
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](https://tools.ietf.org/html/rfc2119).
## backend application
# standards
## conventions
## coding standards
### coding
### php
#### symfony
The application MUST use Symfony 4. coding standards
#### php
PHP code MUST follow the [PSR-4](https://www.php-fig.org/psr/psr-4/) standard.
### twig
#### twig
Twig templates MUST follow the [Symfony Template best practices](https://symfony.com/doc/current/best_practices/templates.html).
### naming
@ -26,8 +27,8 @@ A abstract class MUST be named *AbstractClassname*.
It SHOULD be based in the directory of the classes which inherit from it.
#### entities
###### entities
##### source
####### source
A source MUST be named *SourcenameSource*.

View File

View File

@ -1,137 +0,0 @@
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](https://tools.ietf.org/html/rfc2119).
"entity" or "entities" are to be interpreted as [Doctrine Objects](https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/working-with-objects.html).
**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.