Files
Dokumenten-Check/Doku/Dokumenten-Check.md
Wolf G. Beckmann 1816168d1f initial commit
2026-04-27 14:57:33 +02:00

5.8 KiB
Raw Blame History

Dokumenten-Check

Projekt: https://projects.zoho.eu/portal/aquantico#project/323095000000333012

Datenmodell


erDiagram
    dc_users {
        number id PK
        varchar2_50 username UK
        varchar2_100 email UK
        varchar2_255 password_hash
        varchar2_20 role
        number is_active
        date created_at
        date updated_at
    }
    dc_user_roles {
        number id PK
        varchar2_20 role_name UK
        clob description
    }
    dc_document_types {
        number id PK
        varchar2_100 name
        clob description
    }
    dc_reference_documents {
        number id PK
        number uploaded_by FK
        number document_type_id FK
        varchar2_100 name
        clob description
        varchar2_500 file_path
        date upload_date
        varchar2_100 mime_type
    }
    dc_question_catalogs {
        number id PK
        number created_by_user FK
        number based_on_reference FK
        number document_type_id FK
        varchar2_100 name
        varchar2_4000 description
    }
    dc_question_categories {
        number id PK
        number catalog_id FK
        varchar2_100 name
        clob description
    }
    dc_questions {
        number id PK
        number category_id FK
        clob question_text
        varchar2_20 evaluation_type
        number threshold
        varchar2_20 result_handling
        clob example_0_percent
        clob example_100_percent
    }
    dc_projects {
        number id PK
        number catalog_id FK
        number created_by_user FK        
        varchar2_100 name
        clob description
        varchar2_20 status
        number progress
        date completed_at
        varchar2_100 notification_email
    }
    dc_project_documents {
        number id PK
        number project_id FK
        number document_type_id FK
        blob original_file
        blob translated_file
        varchar2_255 filename
        varchar2_100 mime_type
        date uploaded_at
    }
    dc_results {
        number id PK
        number project_id FK
        number question_id FK
        number doc_id FK
        clob answer
        number score
        varchar2_20 result_type
        number deviation
        number warning
        clob the_comment
        date evaluated_at
    }
    dc_users ||--o{ dc_reference_documents : "uploads"
    dc_users ||--o{ dc_question_catalogs : "creates"
    dc_users ||--o{ dc_projects : "creates"
    dc_document_types ||--o{ dc_reference_documents : "used_in"
    dc_document_types ||--o{ dc_question_catalogs : "used_in"
    dc_document_types ||--o{ dc_project_documents : "used_in"
    dc_reference_documents ||--o{ dc_question_catalogs : "based_on"
    dc_question_catalogs ||--o{ dc_question_categories : "contains"
    dc_question_categories ||--o{ dc_questions : "contains"
    dc_question_catalogs ||--o{ dc_projects : "uses"
    dc_projects ||--o{ dc_project_documents : "contains"
    dc_projects ||--o{ dc_results : "has"
    dc_questions ||--o{ dc_results : "answered_in"
    dc_project_documents ||--o{ dc_results : "evaluated_in"

Backend

graph TB
    subgraph Browser["🌐 Browser"]
        APEX["Oracle APEX\nFrontend UI"]
    end

    subgraph OracleDB["🗄️ Oracle Database 23c"]
        ORDS["ORDS REST Services\n/api/dc/..."]
        subgraph Schema["DB Schema"]
            Config["Konfiguration\ndc_document_types\ndc_question_catalogs\ndc_question_categories\ndc_questions"]
            Exec["Ausführung\ndc_projects\ndc_project_documents\ndc_results"]
            Users["dc_users\ndc_user_roles\ndc_reference_documents"]
        end
        ORDS <--> Schema
    end

    subgraph Backend["☕ Quarkus Backend (Port 8090)"]
        CheckRes["CheckResource\nPOST /check/{projectId}"]
        Orch["CheckOrchestrationService\nHauptablauf (async)"]
        DocProc["DocumentProcessingService\nPDF/DOCX/ODT → Markdown"]
        EvalSvc["EvaluationService\nÜbersetzung + Auswertung"]
        OrdsClient["OrdsClient\nMicroProfile REST Client"]

        CheckRes -->|"202 Accepted\nFire & Forget"| Orch
        Orch --> DocProc
        Orch --> EvalSvc
        Orch --> OrdsClient
    end

    subgraph AI["🤖 Ollama (ollama.aquantico.de)"]
        MainModel["gpt-oss:20b\nÜbersetzung + Fragenauswertung"]
        OcrModel["quen3.5:9b\nPDF Vision-OCR"]
    end

    APEX -->|"Dokument hochladen\nProjekt anlegen"| ORDS
    APEX -->|"POST /check/{id}"| CheckRes
    APEX -->|"Ergebnisse lesen"| ORDS

    OrdsClient -->|"Projekt/Dok/Fragen laden\nErgebnisse speichern"| ORDS

    DocProc -->|"Base64-Bild\nX-API-KEY"| OcrModel
    EvalSvc -->|"Text + Prompt\nX-API-KEY"| MainModel

    subgraph PhaseA["Phase A (pro Dokument)"]
        A1["Download BLOB"] --> A2["OCR / Konvertierung\n→ Markdown"]
        A2 --> A3["Übersetzung → Deutsch"]
        A3 --> A4["Texte speichern (ORDS)"]
    end

    subgraph PhaseB["Phase B (pro Dok × Frage)"]
        B1["KI-Auswertung\nscore 0100"] --> B2["Abweichung/Hinweis\nberechnen (Java)"]
        B2 --> B3["Ergebnis speichern\n(ORDS)"]
    end

    Orch --> PhaseA
    Orch --> PhaseB

    style Browser fill:#dbeafe
    style OracleDB fill:#fef3c7
    style Backend fill:#dcfce7
    style AI fill:#f3e8ff
    style PhaseA fill:#f0f9ff
    style PhaseB fill:#f0f9ff

Dialoge

Fragenkatalog

Tabelle

  • Name
  • Beschreibung
  • Referenz-Dokument

Dialog

  • Name (Im Kopf aussuchen)
  • Referenz-Dokument Upload (Im Kopf)
  • Master/Detail
    • Fragen-Kategorien
    • Fragen

Projekte

Tabelle

  • Name
  • Beschreibung
  • Anz ok,nok,undefiniert

Dialog

  • Name (Im Kopf Aussuchen)
  • Beschreibung
  • Master/Details
    • Dokumente
    • Ergebnisse