infinito/application
2020-04-16 19:31:29 +02:00
..
node Moved .gitignore to right place 2019-01-06 01:54:12 +01:00
symfony Refactored class 2020-04-16 19:31:29 +02:00
README.md Optimized documentation 2019-01-19 12:54:46 +01:00

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:

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