Add database adapter system, production deployment configs, and new dashboard components

- Add PostgreSQL and SQLite database adapters with factory pattern
- Add migration script for SQLite to PostgreSQL
- Add production Dockerfiles and docker-compose configs
- Add deployment documentation and scripts
- Add BIA sync dashboard and matching service
- Add data completeness configuration and components
- Add new dashboard components (BusinessImportanceComparison, ComplexityDynamics, etc.)
- Update various services and routes
- Remove deprecated management-parameters.json and taxonomy files
This commit is contained in:
2026-01-14 00:38:40 +01:00
parent ca21b9538d
commit a7f8301196
73 changed files with 12878 additions and 2003 deletions

View File

@@ -55,6 +55,11 @@ export function EffortDisplay({
const dynamicsFactor = breakdown?.dynamicsFactor ?? { value: 1.0, name: null };
const complexityFactor = breakdown?.complexityFactor ?? { value: 1.0, name: null };
// Calculate final min/max FTE by applying factors to base min/max
const factorMultiplier = numberOfUsersFactor.value * dynamicsFactor.value * complexityFactor.value;
const finalMinFTE = baseEffortMin !== null ? baseEffortMin * factorMultiplier : null;
const finalMaxFTE = baseEffortMax !== null ? baseEffortMax * factorMultiplier : null;
const governanceModelName = breakdown?.governanceModelName ?? breakdown?.governanceModel ?? null;
const applicationTypeName = breakdown?.applicationType ?? null;
const businessImpactAnalyse = breakdown?.businessImpactAnalyse ?? null;
@@ -128,6 +133,11 @@ export function EffortDisplay({
{/* Main FTE display */}
<div className="text-lg font-semibold text-gray-900">
{effectiveFte.toFixed(2)} FTE
{finalMinFTE !== null && finalMaxFTE !== null && finalMinFTE !== finalMaxFTE && (
<span className="text-xs text-gray-500 ml-1 font-normal">
(bandbreedte: {finalMinFTE.toFixed(2)} - {finalMaxFTE.toFixed(2)})
</span>
)}
{hasOverride && (
<span className="ml-2 text-sm font-normal text-orange-600">(Override)</span>
)}