mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2024-12-04 23:17:19 +01:00
Optimized documentation
This commit is contained in:
parent
2c3dc3fcc3
commit
47992dee89
@ -1,7 +1,9 @@
|
|||||||
# Documentation
|
# Documentation Convention
|
||||||
## convention
|
|
||||||
|
## Key Words
|
||||||
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
|
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
|
||||||
“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the README.md files and in the comments of the code 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).
|
interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
|
||||||
|
|
||||||
## README.md
|
## README.md
|
||||||
Each folder SHOULD contain a README.md file, which describes the domain of the folder.
|
Each folder SHOULD contain a README.md file, which describes the domain of the folder.
|
||||||
|
@ -35,7 +35,7 @@ To contributions of this project the "Contributor Covenant Code of Conduct" appl
|
|||||||
Further information you will find in the [administration README.md](./administration/README.md).
|
Further information you will find in the [administration README.md](./administration/README.md).
|
||||||
|
|
||||||
## Application
|
## Application
|
||||||
Further information you will find in the [application README.md](./application/README.md).
|
Further information about the application and the architecture you will find in the [application README.md](./application/README.md).
|
||||||
|
|
||||||
## Documentation Convention
|
## Documentation Convention
|
||||||
Further information you will find in the [DOCUMENTATION.md](./DOCUMENTATION_CONVENTION.md).
|
Further information you will find in the [DOCUMENTATION.md](./DOCUMENTATION_CONVENTION.md).
|
||||||
|
@ -42,7 +42,7 @@ This script copies the ***.env.dist*** files to the right locations.
|
|||||||
This script formats the PHP code with [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer).
|
This script formats the PHP code with [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer).
|
||||||
|
|
||||||
### [generate-coverage-report.sh](./generate-coverage-report.sh.sh)
|
### [generate-coverage-report.sh](./generate-coverage-report.sh.sh)
|
||||||
This script generates a coverage report with PHPUnit [PHPUnit](https://phpunit.de/).
|
This script generates a coverage report with [PHPUnit](https://phpunit.de/).
|
||||||
|
|
||||||
### [init.sh](./init.sh)
|
### [init.sh](./init.sh)
|
||||||
|
|
||||||
|
75
application/README.md
Normal file
75
application/README.md
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
## Application
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
### Design Principles
|
||||||
|
The software MUST follow this design principles:
|
||||||
|
|
||||||
|
#### [Domain Driven Design](https://de.wikipedia.org/wiki/Domain-driven_Design)
|
||||||
|
The software MUST use a DDD architecture.
|
||||||
|
|
||||||
|
#### [SOLID](https://de.wikipedia.org/wiki/Prinzipien_objektorientierten_Designs#SOLID-Prinzipien)
|
||||||
|
SOLID allows to easy maintain and expand the functions of the software.
|
||||||
|
|
||||||
|
It is based on the following princibles:
|
||||||
|
- [Single-Responsibility-Prinzip](https://de.wikipedia.org/wiki/Single-Responsibility-Prinzip)
|
||||||
|
- [Open-Closed-Prinzip](https://de.wikipedia.org/wiki/Open-Closed-Prinzip)
|
||||||
|
- [Liskov substitution principle](https://en.wikipedia.org/wiki/Liskov_substitution_principle)
|
||||||
|
- [Interface-Segregation-Prinzip](https://de.wikipedia.org/wiki/Interface-Segregation-Prinzip)
|
||||||
|
- [Dependency Inversion Prinzip](https://de.wikipedia.org/wiki/Dependency-Inversion-Prinzip)
|
||||||
|
|
||||||
|
#### [12 factor](https://12factor.net/)
|
||||||
|
The following 12 factor allow to get the application ready for [IaaS](https://de.wikipedia.org/wiki/Everything_as_a_Service) and make it [high scalable](https://en.wikipedia.org/wiki/Scalability):
|
||||||
|
|
||||||
|
##### I. Codebase
|
||||||
|
One codebase tracked in revision control, many deploys
|
||||||
|
##### II. Dependencies
|
||||||
|
Explicitly declare and isolate dependencies
|
||||||
|
##### III. Config
|
||||||
|
Store config in the environment
|
||||||
|
#### IV. Backing services
|
||||||
|
Treat backing services as attached resources
|
||||||
|
##### V. Build, release, run
|
||||||
|
Strictly separate build and run stages
|
||||||
|
##### VI. Processes
|
||||||
|
Execute the app as one or more stateless processes
|
||||||
|
##### VII. Port binding
|
||||||
|
Export services via port binding
|
||||||
|
##### VIII. Concurrency
|
||||||
|
Scale out via the process model
|
||||||
|
##### IX. Disposability
|
||||||
|
Maximize robustness with fast startup and graceful shutdown
|
||||||
|
##### X. Dev/prod parity
|
||||||
|
Keep development, staging, and production as similar as possible
|
||||||
|
##### XI. Logs
|
||||||
|
Treat logs as event streams
|
||||||
|
##### XII. Admin processes
|
||||||
|
Run admin/management tasks as one-off processes
|
||||||
|
|
||||||
|
## Tested
|
||||||
|
The software MUST be automized tested by the following tests:
|
||||||
|
|
||||||
|
- [Functional tests](https://en.wikipedia.org/wiki/Functional_testing)
|
||||||
|
- [Integration tests](https://de.wikipedia.org/wiki/Integrationstest)
|
||||||
|
- [Unit Tests](https://en.wikipedia.org/wiki/Unit_testing)
|
||||||
|
|
||||||
|
A test coverage of 100% must be reached.
|
||||||
|
|
||||||
|
### Continues Integration
|
||||||
|
The software MUST be [continues integrated](https://de.wikipedia.org/wiki/Kontinuierliche_Integration).
|
||||||
|
|
||||||
|
### Applications
|
||||||
|
The application is a merge out of two indepentend applications.
|
||||||
|
#### Core Application
|
||||||
|
More informations you will find in the [symfony README.md](./symfony/README.md)
|
||||||
|
|
||||||
|
This software offers the following interfaces:
|
||||||
|
##### [REST](https://de.wikipedia.org/wiki/Representational_State_Transfer)
|
||||||
|
This interface allows a client, which can be e.g. a Java Application or an SPA to process the domain logic.
|
||||||
|
|
||||||
|
##### HTML
|
||||||
|
This interface offers an static GUI which allows the user to execute basic tasks.
|
||||||
|
|
||||||
|
#### Single Page Application
|
||||||
|
This application offers a [SPA](https://en.wikipedia.org/wiki/Single-page_application) on the base of [Vue.js](https://vuejs.org/) to allow a good and dynamic user experience.
|
||||||
|
|
||||||
|
More informations you will find in the [node README.md](./node/README.md)
|
@ -1,34 +1,43 @@
|
|||||||
## backend application
|
# Core Application
|
||||||
|
|
||||||
## conventions
|
## Conventions
|
||||||
|
|
||||||
### coding
|
### Symfony
|
||||||
|
The application MUST use [Symfony 4. coding standards](https://symfony.com/doc/current/contributing/code/standards.html).
|
||||||
|
|
||||||
#### symfony
|
### PHP
|
||||||
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.
|
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).
|
Twig templates MUST follow the [Symfony Template best practices](https://symfony.com/doc/current/best_practices/templates.html).
|
||||||
|
|
||||||
### naming
|
### Naming
|
||||||
|
|
||||||
#### interfaces
|
#### Interfaces
|
||||||
|
|
||||||
A Interfaces MUST be named *ClassnameInterface*.
|
A Interfaces MUST be named *ClassnameInterface*.
|
||||||
|
|
||||||
It SHOULD be based in the directory of the class.
|
It SHOULD be based in the directory of the class.
|
||||||
|
|
||||||
#### abstract classes
|
Each class SHOULD implement an interface.
|
||||||
|
|
||||||
|
#### Abstract Classes
|
||||||
|
|
||||||
A abstract class MUST be named *AbstractClassname*.
|
A abstract class MUST be named *AbstractClassname*.
|
||||||
|
|
||||||
It SHOULD be based in the directory of the classes which inherit from it.
|
It SHOULD be based in the directory of the classes which inherit from it.
|
||||||
|
|
||||||
###### entities
|
## Technologies
|
||||||
|
The following Symfony related components will be used:
|
||||||
|
- [Services](https://symfony.com/doc/current/service_container.html)
|
||||||
|
- [ORM](https://symfony.com/doc/current/doctrine.html)
|
||||||
|
- [Routing](https://symfony.com/doc/current/routing.html)
|
||||||
|
- [Form](https://symfony.com/doc/current/forms.html)
|
||||||
|
- [Validation](https://symfony.com/doc/current/validation.html)
|
||||||
|
- [Events](https://symfony.com/doc/current/event_dispatcher.html)
|
||||||
|
- [Twig](https://twig.symfony.com/)
|
||||||
|
- [REST](https://symfony.com/doc/master/bundles/FOSRestBundle/index.html)
|
||||||
|
- [User Bundle](https://symfony.com/doc/current/bundles/FOSUserBundle/index.html)
|
||||||
|
|
||||||
####### source
|
## Domain
|
||||||
|
More information about the domain logic you will find in [./src/Domain/README.md](./src/Domain/README.md).
|
||||||
A source MUST be named *SourcenameSource*.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user