.. | ||
node | ||
symfony | ||
README.md |
Application
Architecture
Design Principles
The software MUST follow this design principles:
Domain Driven Design
The software MUST use a DDD architecture.
SOLID
SOLID allows to easy maintain and expand the functions of the software.
It is based on the following princibles:
- Single-Responsibility-Prinzip
- Open-Closed-Prinzip
- Liskov substitution principle
- Interface-Segregation-Prinzip
- Dependency Inversion Prinzip
12 factor
The following 12 factor allow to get the application ready for IaaS and make it high scalable:
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:
A test coverage of 100% must be reached.
Continues Integration
The software MUST be continues integrated.
Applications
The application is a merge out of two indepentend applications.
Core Application
More informations you will find in the symfony README.md
This software offers the following interfaces:
REST
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 on the base of Vue.js to allow a good and dynamic user experience.
More informations you will find in the node README.md