The software MUST follow this design principles:
The software MUST use a DDD architecture.
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
The following 12 factor allow to get the application ready for IaaS and make it high scalable:
One codebase tracked in revision control, many deploys
Explicitly declare and isolate dependencies
Store config in the environment
Treat backing services as attached resources
Strictly separate build and run stages
Execute the app as one or more stateless processes
Export services via port binding
Scale out via the process model
Maximize robustness with fast startup and graceful shutdown
Keep development, staging, and production as similar as possible
Treat logs as event streams
Run admin/management tasks as one-off processes
The software MUST be automized tested by the following tests:
A test coverage of 100% must be reached.
The software MUST be continues integrated.
The application is a merge out of two indepentend applications.
More informations you will find in the symfony README.md
This software offers the following interfaces:
This interface allows a client, which can be e.g. a Java Application or an SPA to process the domain logic.
This interface offers an static GUI which allows the user to execute basic tasks.
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