Skip to content

tailoringexpert/platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

533 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TailoringExpert

About

Build Status build
Coverage coverage branches coverage
Source Info License GitHub top language

Development policies

Dependency Injection

Tailoringexport platform is realized using Spring. Following rules shall be followed:

  • Dependency Injection(DI) has to be performed via Java configuration
  • autoconfiguration is forbidden except for Spring-Data-Repositories
  • all configurations shall be implemented in tailoringexpert-bootapp-module
  • any package shall have a dedicated configuration class

Webservices

  • Code first approach, no manual created webservice descriptor.
  • Webservices are to be implemented as RestController in tailoringexpert-rest module
  • Webservices are to be documented using OpenApi annotations

Lombok

To avoid manual implementing of

  • getter
  • setter
  • equals
  • hashCode
  • toString

Lombok shall be used.

Datatype mapping

To reduce manual effort for converting different data types, Mapstruct shall be used. Each service which needs datatype conversation shall define a mapper class named

ServiceNameMapper

in same package as service.

Validation and Exceptionhandling

In case no data will be returned due unknown paths (project, tailoring, ...) Optional shall be returned. RestController shall return 404 in case of Optional.empty.

Business/Domain core

Business core must not have external dependencies except

  • lombok
  • mapstruct
  • log4j2

Data/Domain objects

Data/Domain objects of all layers shall be created in package domain.

Persistence

Persistence objects and database access shall be implemented in tailoringexpert-data-jpa. Dataobjects shall be created in package domain, spring data acces in repository OR-Mapping is to be implemented via annotations.

Use Cases

alternative text

Architecture documentation

Architecture documentation can be found here as arc42 document.

Module

Maven Modul-Struktur

Modulname Beschreibung
tailoringexpert-core Business core of platform.
tailoringexpert-data-jpa Implementation of data access needed by core component
tailoringexpert-rest Component providing REST services of platform
tailoringexpert-poi Module for importing requirements and generating Excel files using POI.
tailoringexpert-openhtmltopdf Module for generating PDF documents using Openhtmltop.
tailoringexpert-security Security configuration using spring-security without using an external identity manager
tailoringexpert-tenant Proxies for tenant implementations of type TenantInterface.
tailoringexpert-bootapp Runnable app of platform
tailoringexpert-distribution Module to create archive to be used for creating a platform docker image

Level 0

alternative text

Level 1

alternative text

Deployment

alternative text

Build application

Prerequisites

  • Java 17 JDK
  • Maven

Build

To build the platform it is recommended to create a profile containing liquibase properties for intgegration test database connection.

Platform can be build using

mvn -P tailoringexpert-platform.local clean install

Run

For testing purpose there is a demo platform in github. See instructions for setting up and running the (demo) system in README.md

Encrypting credentials (for platform boot-app)

There is a commandline client eu.tailoringexpert.JasyptClient in tailoringxpert-bootapp module.

Usage:

eu.tailoringexpert.JasyptClient --algorithm PBEWithMD5AndTripleDES --password ThisIsUsedToEncryptParameters --parameter param1 --parameter paramX

If no algorithm was provided, PBEWithMD5AndTripleDES is used as default algorithm, which is also used by the bootapp.

Links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •