4 Entwicklung
Daniel Heinze | ho.Systeme GmbH + Co. KG edited this page 2026-10-25 16:39:59 +01:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Entwicklung

Node ab Version 22 (im Image und in den Tests 24 LTS), Oberfläche in Vanilla JS ohne Build-Schritt. Daten liegen in einer JSON-Datei.

Aufbau

server.js               HTTP-Server und API (Express)
src/config.js           Pfade (Dropbox-Erkennung), Port
src/store.js            JSON-Datenspeicher
src/struktur.js         Ordnerstruktur-Standard
src/dokumente.js        Dateiablage mit Pfadprüfung
src/kennzahlen.js       Cashflow, Rendite, Restschuld, Kostenstände, Jahresrechnung, Zahlungen, Fristen
src/zuordnung.js        Zielordner-Ermittlung für Altbestand und Posteingang, Namensvorschlag
src/regeln.js           Einsortier-Regelwerk
src/texterkennung.*     Inhalt von PDFs und Bildern lesen (Windows-OCR oder poppler + tesseract)
src/volltext.js         Volltext-Lauf über die ganze Ablage im Hintergrund
src/migration.js        Datenmigrationen beim Serverstart
src/assistent.js        Objekt-Assistent: Pflichtangaben, Anlegen in einem Zug
src/abgleich.js         Cloud-Abgleich in beide Richtungen (Konflikte, Papierkorb, Sicherheitsstopp)
src/anbieter/           Dropbox und Google Drive (OAuth mit PKCE, API-Aufrufe)
src/benachrichtigung.js Hinweis-Mails
src/defaults/           gemeinsame Module aus tool-defaults (Anmeldung, Rollen, Protokoll, Mail, Update …)
public/                 Oberfläche
public/js/felder.js     Formularfelder aller Datensätze
public/js/objekt.js     Objektseite mit ihren Reitern
public/assets/          Design-System aus tool-defaults
werkzeuge/              Startdaten, Einsortieren, Hinweis-Mails, Demodaten, Notfallzugang
deploy/                 Server: immo.sh, Compose-Vorlage, Caddy
test/                   Tests

tool-defaults

Gemeinsame Funktionen der ho.Systeme-Werkzeuge kommen aus tool-defaults und liegen als Kopie in src/defaults/ und public/assets/. Dort nicht bearbeiten – Änderungen gehören nach tool-defaults und werden von dort übernommen. Werkzeugspezifisches kommt über src/defaults/bridge.js.

Tests

npm test                 # alle
npm run test:anmeldung
npm run test:update
npm run test:mail

npm test umfasst Anmeldung, Update, Mail, Cloud-Abgleich, Objekt-Assistent, Unterlagen und Texterkennung. Die Tests laufen mit Node selbst, ohne Testframework; Dropbox und Google Drive werden durch Attrappen in test/hilfen/ ersetzt.

Der Texterkennungs-Test (npm run test:texterkennung) braucht Linux mit poppler, Tesseract, ImageMagick (samt PDF-Modul) und DejaVu-Schrift; er erzeugt seine Testdokumente selbst und überspringt sich sonst. Er läuft im Workflow .forgejo/workflows/texterkennung.yml auf dem Forgejo-Runner in einem node:24-alpine-Container mit denselben Paketen wie das Dockerfile – bei Änderungen an der Paketliste beide anpassen.

Demodaten

npm run demo        # .demo\ mit erfundenen Objekten und Beispielablage
npm run demo:start  # Server damit auf Port 4799

Screenshots für README und Wiki (docs/bilder/) stammen aus diesem Datensatz – nie aus echten Daten.

Versionen

Jede Änderung bekommt eine Versionsnummer in package.json und einen Eintrag im CHANGELOG (Neu / Geändert / Behoben / Entfernt). Die App zeigt die Einträge unter „was ist neu?“.