Zum Inhalt

Technische Strategie

Die technische Strategie des Dokumentenmanagers beschreibt nicht nur, welche Technologien eingesetzt werden, sondern warum diese Auswahl für das konkrete Projekt sinnvoll ist. Gerade dieser Abschnitt zeigt methodische Reflexionsfähigkeit: Gute Projekte bestehen nicht aus zufällig zusammengesuchten Bibliotheken, sondern aus bewusst abgewogenen Entscheidungen unter realen Randbedingungen.

Technologie-Stack

Bereich Auswahl Begründung
Backend FastAPI Schnelle Entwicklung, starke Typisierung, integrierte OpenAPI-Dokumentation, klare Router-Struktur
ORM/Migrationen SQLAlchemy + Alembic Wartbarkeit, saubere Modellierung, reproduzierbare Schema-Entwicklung
Datenbank MariaDB/MySQL Verbreitet, stabil, ausreichend stark für relationale CRUD- und Such-Metadaten
Web-UI Jinja2 Serverseitiges Rendering reduziert Komplexität im Kernworkflow
Frontend optional Vite/React Moderne UI-Experimente möglich, aber nicht zwingend für Kernnutzen
OCR Tesseract + pdf2image/Poppler + pypdf Offline-fähig, keine laufenden Cloud-Kosten, datenschutzfreundlicher
Security Fernet, JWT, Passlib/Bcrypt Datei- und Textschutz, Token-Handling, sicheres Passwort-Hashing

Begründung der Auswahl

Warum FastAPI?

FastAPI bietet hohe Entwicklungsgeschwindigkeit bei zugleich strukturierter Typisierung und automatischer API-Dokumentation. Gerade in einem Teamprojekt ist das nützlich, weil Schnittstellen nicht mündlich erraten werden müssen. Der direkte OpenAPI-Mehrwert erhöht Transparenz und Testbarkeit.

Warum SQLAlchemy und Alembic?

Ein Projekt dieser Größe profitiert von sauberer Modellierung und migrationsfähiger Datenbankschicht. SQLAlchemy erlaubt die nachvollziehbare Definition von Domänenobjekten und deren Beziehungen. Alembic ergänzt dies um einen reproduzierbaren Änderungsverlauf des Schemas. Das ist methodisch deutlich besser als spontane SQL-Eingriffe auf Live-Datenbanken.

Warum MariaDB/MySQL?

Für den Dokumentenmanager sind relationale Strukturen, Fremdschlüssel und konsistente Zustände zentral. MariaDB/MySQL ist hierfür eine angemessene Wahl. PostgreSQL wäre ebenfalls stark gewesen, aber die aktuelle Auswahl ist technisch vollkommen vertretbar und im Projektumfeld gut handhabbar.

Warum keine reine SPA als Pflichtweg?

Eine reine Single-Page-Application hätte moderne Frontend-Möglichkeiten eröffnet, aber gleichzeitig Authentifizierung, CORS, Deployment und Fehlerfläche vergrößert. Für ein Projekt mit Fokus auf Dokumentenmanagement, Datenmodell und Sicherheitslogik ist ein serverseitig gerenderter Kernweg strategisch vernünftig. Die optionale Frontend-Komponente bleibt dennoch als Erweiterung denkbar.

Abwägung gegenüber Alternativen

PostgreSQL statt MariaDB/MySQL

PostgreSQL bietet in vielen Szenarien Vorteile bei komplexen Datentypen, Volltext und fortgeschrittener Query-Optimierung. Für die Kernanforderungen des Projekts ist MariaDB/MySQL aber ausreichend und im Schulkontext oft leichter verfügbar. Die gewählte Datenbank ist daher kein Notbehelf, sondern eine sinnvolle pragmatische Entscheidung.

Cloud-OCR statt Tesseract

Cloudbasierte OCR-Dienste liefern teilweise bessere Erkennungsqualität, bringen aber Kosten, Internetabhängigkeit und Datenschutzfragen mit sich. Tesseract ist lokal betreibbar und damit für ein selbst gehostetes, datensensibles Schulprojekt passender. Die Kehrseite ist höherer Installations- und Kalibrierungsaufwand. Dieser Trade-off wurde bewusst akzeptiert.

MongoDB statt relationalem Modell

Ein dokumentenorientierter Datenspeicher klingt auf dem Papier verführerisch, würde aber bei Benutzerbeziehungen, Kategorien, Versionen, Tokens und kontrollierten Zuständen keinen klaren Vorteil bringen. Das Projekt lebt von konsistenten Beziehungen, also ist ein relationales Modell die schlüssigere Wahl.

Skalierbarkeit

Skalierbarkeit bedeutet hier nicht nur „mehr Benutzer“, sondern auch die Fähigkeit, bei wachsender Komplexität nicht auseinanderzufallen.

Horizontale Skalierung

Die Kernlogik ist grundsätzlich geeignet, später stärker zu entkoppeln:

  • OCR kann in Worker ausgelagert werden
  • Retention-Aufgaben können periodisch getrennt laufen
  • API und Web-UI lassen sich klar trennen
  • Dateispeicher und Datenbank sind bereits logisch entkoppelt

Grenzen der aktuellen Lösung

Die aktuelle Projektlösung ist kein massiv verteiltes System. Sie priorisiert Verständlichkeit und saubere Grundarchitektur über maximale Infrastrukturkomplexität. Diese Begrenzung ist nicht negativ, sondern angemessen. Übertriebene Verteilarchitekturen in Schulprojekten sind oft nur dekorativer Nebel mit vielen Servern und wenig Erkenntnisgewinn.

Wartbarkeit

Wartbarkeit entsteht im Dokumentenmanager aus mehreren Faktoren:

  • modulare Ordnerstruktur
  • nachvollziehbare Router- und Serviceaufteilung
  • Alembic-Migrationen
  • dokumentierte .env
  • automatische API-Dokumentation
  • klare Trennung zwischen Metadaten und Dateiinhalten

Diese Kombination sorgt dafür, dass neue Teammitglieder oder spätere Bearbeiter nicht bei null anfangen müssen.

Performance

Die teuersten Operationen sind:

  • OCR-Verarbeitung
  • Dateiverschlüsselung
  • größere Datei-Uploads
  • datenbankseitige Filter- und Suchabfragen bei wachsenden Beständen

Gegenmaßnahmen

  • Uploadgrößenlimit über MAX_UPLOAD_MB
  • sinnvolle Indizierung in der Datenbank
  • spätere Auslagerung teurer OCR-Schritte
  • mögliche Ergebnisvorschau statt Vollverarbeitung im Request-Pfad

Testbarkeit und Erweiterbarkeit

Ein gutes Projekt lässt sich nicht nur starten, sondern auch weiterentwickeln. Die Architektur des Dokumentenmanagers ist dafür geeignet, weil zentrale Funktionen fachlich trennbar sind. Denkbare Erweiterungen:

  • KI-gestützte Zusammenfassungen
  • feinere Rollenmodelle
  • Protokollierung / Audit-Log
  • zusätzliche Vorschauformate
  • externe Speicherziele
  • asynchrone Task-Queues

Herausforderungen und konkrete Lösungen

Herausforderung 1: OCR-Abhängigkeiten

Problem: OCR ist nützlich, aber betrieblich fehleranfällig, weil Systemtools wie Tesseract und Poppler vorhanden sein müssen.
Lösung: Klare Dokumentation der Abhängigkeiten, separater Debug-Endpunkt und Smoke-Test.

Herausforderung 2: Duplikatbehandlung

Problem: Blindes Überschreiben oder Verwerfen ist fachlich unbrauchbar.
Lösung: pending_uploads als kontrollierter Zwischenzustand und explizite Benutzerentscheidung.

Herausforderung 3: Sichere Dateiablage

Problem: Dateien dürfen nicht ungeschützt im Dateisystem liegen.
Lösung: Fernet-basierte Verschlüsselung und Trennung zwischen Dateiinhalt und relationalen Metadaten.

Herausforderung 4: Nachvollziehbare Schema-Entwicklung

Problem: Schemaänderungen im Team werden schnell chaotisch.
Lösung: Alembic-Migrationen und konsistente Modellpflege.

Fazit zur technischen Strategie

Die technische Strategie des Dokumentenmanagers ist durch bewusste Pragmatik geprägt: genug Tiefe für saubere Architektur, aber keine künstliche Komplexität um ihrer selbst willen. Gerade diese Balance ist ein Qualitätsmerkmal. Das Projekt zeigt, dass technologische Entscheidungen nicht isoliert, sondern im Spannungsfeld von Skalierbarkeit, Wartbarkeit, Performance, Datenschutz und Umsetzbarkeit getroffen wurden.