mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2024-12-04 15:06:51 +01:00
Optimized documentation
This commit is contained in:
parent
2c3dc3fcc3
commit
47992dee89
@ -1,7 +1,9 @@
|
||||
# Documentation
|
||||
## convention
|
||||
# Documentation Convention
|
||||
|
||||
## Key Words
|
||||
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
|
||||
interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
|
||||
|
||||
## README.md
|
||||
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).
|
||||
|
||||
## 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
|
||||
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).
|
||||
|
||||
### [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)
|
||||
|
||||
|
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
|
||||
The application MUST use Symfony 4. coding standards
|
||||
|
||||
#### php
|
||||
### 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
|
||||
### Naming
|
||||
|
||||
#### interfaces
|
||||
#### Interfaces
|
||||
|
||||
A Interfaces MUST be named *ClassnameInterface*.
|
||||
|
||||
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*.
|
||||
|
||||
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
|
||||
|
||||
A source MUST be named *SourcenameSource*.
|
||||
## Domain
|
||||
More information about the domain logic you will find in [./src/Domain/README.md](./src/Domain/README.md).
|
||||
|
Loading…
Reference in New Issue
Block a user