DocMind ist eine selbst gehostete, mandantenfähige Webanwendung auf Basis von PHP und MySQL zur KI-gestützten Verwaltung und Analyse von Dokumenten. Im Zentrum steht eine RAG-Pipeline (Retrieval-Augmented Generation), die Dokumenteninhalte durchsuchbar macht und als Grundlage für einen Frage-Antwort-Chat dient. Die Anwendung läuft unter IIS auf Windows; ein begleitender .NET-Windows-Dienst übernimmt den asynchronen Aufbau und Versand von Dokumenten-Exporten.
1. Dokumentenverwaltung — der Kern
- Hochladen, mit Speicherlimit- und Duplikat-Prüfung vor dem eigentlichen Speichern
- KI-Analyse jedes Dokuments — Kategorie, Sprache, Zusammenfassung, Schlüsselinformationen, Schlagworte, Lesemethode, Dokumentdatum werden automatisch erkannt
- Erneute Analyse möglich, mit Vorschau vor der Übernahme (die neue Analyse wird zwischengespeichert, bis der Nutzer sie ausdrücklich bestätigt — erst dann fließt sie in die eigentliche Version ein)
- Versionsverwaltung — jede Änderung an einem Dokument legt eine neue Version an, das Original bleibt erhalten
- Manuelle Dokumente — Einträge, die nicht auf einem hochgeladenen Original basieren, sondern direkt von Hand angelegt werden
- Textextraktion ohne externe Abhängigkeiten — nur eingebaute PHP-Bordmittel (
ZipArchive+ reines Text-Parsing). PDFs werden bewusst nicht hier ausgelesen, sondern direkt von der KI gelesen (Text und eingescannte Seiten)
2. KI-gestützte Funktionen
- Analyse-Engine — nutzt Claude (intern als "DocMind AI" bezeichnet) für die eigentliche Dokumentenanalyse, mit strukturierter Werkzeug-Ausgabe und nativer PDF-Lesefähigkeit
- Frage-Antwort-Chat über die eigenen Dokumente (Retrieval-Augmented Generation) — Textabschnitte werden in Vektoren umgewandelt (OpenAI Embeddings), die eigentliche Antwort formuliert weiterhin Claude
- Gespeicherte Chat-Verläufe, ähnlich wie bei Claude.ai — entweder über die ganze Bibliothek hinweg oder an ein bestimmtes Dokument gebunden
- Automatische Fristenerkennung — läuft im selben Analyseaufruf wie die normale Dokumentanalyse (kein zweiter, kostenpflichtiger KI-Durchgang), mit einer klaren Regel, welches Datum als Bezugspunkt für relative Fristen ("14 Tage ab Rechnungsdatum") herangezogen wird
- Große PDFs werden automatisch in Blöcke aufgeteilt, falls die Datei die Größen-/Seitengrenzen einer einzelnen KI-Anfrage überschreiten würde — ebenfalls ohne externe Werkzeuge wie Imagick oder Ghostscript
3. Dokumente zusammenstellen
- PDF-Zusammenfügen-Assistent — baut aus Seiten zweier PDF-Dateien ein neues, eigenständiges PDF in frei wählbarer Reihenfolge, wahlweise als neue Version eines bestehenden Dokuments oder als komplett neues Dokument
- Nutzt FPDI (reine PHP-Bibliothek), ebenfalls ohne externe Programme
4. Termine & Kalender
- Erkannte Fristen lassen sich als echte Kalendereinladungen verschicken (nicht nur als reine
.ics-Datei) — mit Zusagen-/Absagen-Schaltflächen in Outlook, Gmail und Apple Mail, bewusst über eine neutrale Absenderadresse statt der eigenen, damit das Mailprogramm die Einladung nicht fälschlich als selbst angelegten Termin behandelt - Spätere Absage einer bereits verschickten Einladung wird ebenfalls unterstützt (echte Kalender-Rücknahme, kein zweiter Doppeleintrag)
5. Freigaben & Zusammenarbeit
- Personenbezogene Freigaben (Lese- oder Bearbeitungsrecht) sowie öffentliche Link-Freigaben (nur Lesen)
- Jede Zugriffsentscheidung läuft über eine einzige, zentrale Prüffunktion — keine verstreute Zugriffslogik an verschiedenen Stellen im Code
6. Konto & Sicherheit
- Registrierung mit E-Mail-Bestätigung
- Zwei-Faktor-Anmeldung (TOTP/Authenticator-App), opt-in je Nutzer
- Änderung von E-Mail/Passwort nur nach Bestätigung per zugeschicktem 6-stelligen Code, nichts wird sofort übernommen
- Kontolöschung: sofortige, endgültige Löschung nach Passwort- und Code-Bestätigung, mit vorherigem Hinweis und der Möglichkeit, zuerst alle eigenen Dokumente herunterzuladen
- API-Schlüssel-Verwaltung — Schlüssel werden nie im Klartext gespeichert (AES-256-GCM-Verschlüsselung mit einem zentralen Master-Schlüssel)
7. Abrechnung & Tarife
- Anbindung an Stripe (ein zentrales GeekInfinity-Stripe-Konto, nicht je Kunde ein eigenes)
- Tarife komplett datengetrieben — alle Tarifstufen (Name, Limits, Preise) liegen in einer einzigen, über die Admin-Oberfläche editierbaren Einstellung, keine Codeänderung nötig, um einen Tarif hinzuzufügen oder zu ändern
- 7-tägige kostenlose Testphase direkt über Stripe abgewickelt (Stripe übernimmt automatisch die Abbuchung am 8. Tag und die Umstellung auf den bezahlten Tarif)
- Getrennt davon: eigener Marketing-Text je Tarif und Sprache für die öffentliche Preisseite — bewusst getrennt von den reinen Abrechnungsdaten, da unterschiedliche Zuständigkeiten
- Individuelle Ausnahmen je Konto möglich (z. B. für Testkonten)
8. Export & Datenmitnahme
- Eigenständiger Dokumenten-Export: Nutzer können jederzeit ein passwortgeschütztes ZIP aller eigenen Dokumente anfordern — wird von einem separaten Windows-Hintergrunddienst gebaut (nicht vom Webserver selbst), Benachrichtigung per E-Mail mit zeitlich begrenztem Downloadlink
- Diese Infrastruktur wird auch bei der Kontolöschung mitgenutzt, damit Nutzer ihre Daten vorher sichern können
9. Aktive Hilfe
- Zustandsgetriebene Hinweise: Die Anwendung weiß deutlich mehr über den eigenen Zustand eines Nutzers, als standardmäßig sichtbar wäre (z. B. noch nicht durchsuchbare Dokumente, fehlgeschlagene Analysen, Scans ohne erkannten Text, bald erschöpftes Tarifkontingent) — diese Zustände werden gesammelt und als Hinweisliste angezeigt, übersetzt im Browser statt fest im Code hinterlegt
10. Erste Einrichtung
- Geführte Erstnutzung, deren Fortschritt als einfacher Datensatz je Nutzer gespeichert wird (kein eigenes Datenbankschema dafür) — kann jederzeit übersprungen oder neu gestartet werden
11. Administration
- Eigene Admin-Oberfläche für Nutzerverwaltung, mit eingebauten Schutzmechanismen (ein Admin kann sich selbst nie deaktivieren, sich selbst nie die Admin-Rolle entziehen, und den letzten verbleibenden aktiven Admin nicht entfernen — die Instanz kann sich so nie selbst aussperren)
- Verwaltung der Tarife, Marketing-Texte, Hilfetexte und weiterer Systemeinstellungen
12. Rechtliches
- Eigene Verwaltung von AGB, Impressum, Datenschutzerklärung, mit Versionierung und protokollierter Zustimmung je Nutzer
Technische Grundprinzipien, durchgängig im ganzen Code
- Keine eingebettete SQL — jeder Datenbankzugriff läuft über gespeicherte Prozeduren, nirgends rohes SQL direkt im PHP-Code
- Keine externen Programme für PDF-Verarbeitung — durchgängig reine PHP-Bibliotheken (FPDI), kein Imagick, kein Ghostscript, keine Kommandozeilen-Aufrufe
- mbstring-Ersatzfunktionen eingebaut, falls diese PHP-Erweiterung auf einem Hosting-Paket einmal nicht verfügbar ist