prd-helpMake your own PRD

Read-only PRD for a coding agent

Projektname: Explorable.

17 of 18 sections ready
1. Problem, goal & success metric

Projektname: Explorable. Problem: Studierende haben unstrukturierte Vorlesungsmaterialien (PDF, TXT, DOCX), in denen Zusammenhänge zwischen Themen verborgen bleiben. Ziel: Aus hochgeladenen Materialien wird automatisch eine hierarchische, interaktive Mindmap, in der Querverbindungen zwischen Dokumenten sichtbar werden. Erfolgsmessung: Ein Upload einer Vorlesung (bis 20 Dateien) ergibt in unter 2 Minuten eine nutzbare Mindmap; mindestens 70 % der Testnutzer finden in einer Testsitzung eine Verbindung zwischen zwei Dokumenten, die sie vorher nicht gesehen haben.

2. Users & roles

Nutzer: Eine Person pro Rechner (Studierende).

Rollen: Keine. Kein Rollen- oder Rechtemodell, keine Freigaben, kein Teilen.

Sichtbarkeit: Alle Projekte, Dokumente und Analysen sind nur auf diesem Rechner sichtbar.

3. Core workflows

Kern-Workflow:

  1. Die App öffnet sich mit der schmalen Leiste oben und der Mindmap über alle Projekte.
  2. Studierender lädt einzelne Dateien (PDF/TXT/DOCX/PNG/JPG) über den Button in der Leiste per Auswahldialog in ein Projekt hoch.
  3. Jedes Dokument wird direkt nach dem Upload automatisch analysiert: Text extrahieren (bei reinen Bildern per Tesseract-Texterkennung), Schlüsselkonzepte erkennen und in die Clusterung eingliedern. Es gibt keinen separaten Analyse-Button; geänderte Dateien werden nur durch erneuten Upload neu analysiert.
  4. Ein Projekt erscheint in der Mindmap erst, wenn die erste Datei fertig analysiert ist; die Mindmap wird erst aktualisiert, wenn die Analyse des jeweiligen Dokuments abgeschlossen ist. Nie wird ein halbes Ergebnis angezeigt.
  5. Erst nach Abschluss der Analyse schlägt die App Tags aus dem erkannten Inhalt vor; der Nutzer übernimmt, ändert oder löscht sie.
  6. Pipeline clustert Konzepte Bottom-Up zu einer Hierarchie (Detail → Makro-Oberthema).
  7. Dokumente mit gemeinsamen Tags/Überschneidungen erzeugen gewichtete Brücken zwischen Clustern.
  8. Studierender erkundet die Mindmap: Zoomstufen, Filter über die Leiste, Custom Paths, Knoten und Tags, Wechsel zwischen Tag-Modus und Dokumenten-Modus.
  9. Klick auf einen Knoten zeigt Zusammenfassung und verlinkt auf das Quelldokument.
4. Features & requirements
  • Ausblenden per Klick: Ein Klick auf einen Projektbereich oder Dokument-Knoten blendet ihn aus; ein zweiter Klick blendet ihn wieder ein.
  • Tag-Filter aus Vorschau: Ein Klick auf einen Tag in der Vorschau filtert die Mindmap sofort auf diesen Tag; ein zweiter Klick auf denselben Tag hebt den Filter auf.
5. Scope: must / later / never

Must:

  • Lokaler Upload von PDF, TXT, DOCX, PNG und JPG pro Projekt
  • Automatische Analyse direkt nach dem Upload
  • Hierarchische Mindmap mit Projektbereichen und Dokumenten
  • Brücken zwischen Dokumenten mit gemeinsamen Tags
  • Zwei getrennte Ansichten: Tag-Ansicht und Dokumentansicht
  • Ausblenden per Klick, Dokumentvorschau, Tag-Filter
  • Fortschrittsanzeige pro Datei, Überspringen nicht lesbarer Dateien, Duplikat-Erkennung

Later:

  • Erkennung geänderter Dateien ohne erneuten Upload
  • Eigene Farben für Projektbereiche
  • Alternative Sprachmodelle

Never:

  • Login oder Konten
  • Teilen zwischen Nutzern
  • Übertragung an fremde Server
  • Cloud-Hosting
6. Screens & UI
  • Startansicht: Beim Öffnen wird die Tag-Ansicht gezeigt, damit du zuerst den Überblick über alle Themen hast, bevor du in einzelne Dokumente gehst.
  • Hover über einen Knoten: Hervorgehoben werden der Knoten selbst und die Verbindungen zu seinen Nachbarn mit höherer Priorität. Priorität bedeutet: mehr gemeinsame Tags zwischen zwei Dokumenten, also stärkere Verbindung. Verbindungen mit niedrigerer Priorität bleiben unverändert.
  • Klick auf einen Knoten: Es öffnet sich eine kurze Zusammenfassung mit einem Link zum Originaldokument.
7. Design system & visual style

Projektbereiche: Keine eigenen Farben pro Projekt. Es gilt die vorher festgelegte Grün-Beige-Farbpalette aus DESIGN.md; nur die Farbtokens aus tokens.css verwenden.

Tag-Filter-Hervorhebung: Der aktive Tag in der Filterleiste erhält den Messing-Akzent #A08A55 und zeigt den Hinweis "Filter: <Tag>".

8. Data model
EntitätFelder
Projektid, name, erstellt_am
Dokumentid, projekt_id, dateiname, größe, dateityp, speicherpfad, analyse_status
Custom Pathid, projekt_id, name
Tagid, name (eindeutig)
Dokument-Tag (Verknüpfung)dokument_id, tag_id
Dokument-Custom-Path (Verknüpfung)dokument_id, custom_path_id
Analyse-Ergebnisid, dokument_id, konzepte, cluster_id, zusammenfassung

Tags sind eine gemeinsame Liste; ein Tag wie 'Statistik' existiert nur einmal und wird über die Verknüpfungstabelle mehreren Dokumenten zugeordnet.

9. APIs & integrations

Lokale Komponenten:

  • Tesseract: Texterkennung für reine Bilddateien (PNG, JPG), lokal und kostenlos.
  • Ollama mit llama3.2 (3B) auf dem Standardport als Standardmodell; qwen2.5 (7B) als Alternative, wenn der Rechner genug Speicher hat. Lokal und kostenlos.

Keine Netzwerkübertragung von Dokumenten oder Bildern.

10. Auth, permissions & security

Authentifizierung: Keine. Kein Login, keine Registrierung, kein Konto.

Berechtigungen: Kein Rollenmodell; die einzige Person am Rechner hat vollen Zugriff.

Datenschutz: Uploads und Analyseergebnisse bleiben ausschließlich lokal, keine Übertragung an fremde Server.

11. Performance, privacy & accessibility

Performance: Ein Projekt mit 20 Dateien wird auf einem Rechner mit mindestens 16 GB RAM in unter 2 Minuten analysiert. Bei mehr Dateien steigt die Zeit proportional.

Datenschutz: Alle Daten bleiben lokal auf dem Rechner; keine Übertragung an fremde Server.

Barrierefreiheit: Nicht festgelegt; Assumption: Grundlegende Tastaturbedienung und ausreichende Kontraste nach DESIGN.md.

12. Edge cases & errors
  • Fehlerhafte Datei: Kann eine Datei nicht gelesen werden, wird sie übersprungen; die übrigen Dateien werden weiter analysiert. Am Ende meldet die App jede übersprungene Datei mit Dateiname und Grund.
  • Doppelter Upload: Hat eine hochgeladene Datei denselben Namen und dieselbe Größe wie eine bereits gespeicherte Datei im Projekt, wird sie nicht erneut gespeichert. Die App zeigt eine kurze Meldung an.
13. Stack & constraints

Lokale Datenbank: SQLite als eine Datei auf dem Rechner für Projekte, Tags, Custom Paths und Analyse-Ergebnisse.

Lokaler Dateispeicher: Ein Ordner auf dem Rechner für die hochgeladenen Originaldateien.

Lokale Dienste: Tesseract für Texterkennung bei Bildern, Ollama mit llama3.2 (3B) als Standard oder qwen2.5 (7B) als Alternative für die Konzepterkennung. Kein Hosting, kein Login, keine Cloud.

14. Existing code & do-not-change

Not needed: neues Projekt

15. Build order
  1. Upload und Projekte
  2. Textextraktion
  3. Konzepterkennung mit Ollama
  4. Mindmap-Aufbau
  5. Interaktion (Ausblenden, Vorschau, Tag-Filter)
  6. Start und Offline-Betrieb
16. Acceptance criteria & tests1 fix
  • 7 must-haves but only 1 acceptance checks
  • Fährst du mit dem Mauszeiger über einen Knoten, werden der Knoten und die Verbindungen zu Nachbarn mit höherer Priorität hervorgehoben, Verbindungen mit niedrigerer Priorität bleiben unverändert.
17. Deployment, environments & secrets

Ausführung: Lokal auf einem einzelnen Rechner, kein Hosting, kein Server im Netz. Die App läuft vollständig offline.

Start: Ein Startbefehl öffnet die App im Browser unter einer lokalen Adresse (z. B. http://localhost). Beim Start prüft die App, ob Ollama läuft; ist es nicht aktiv, startet die App Ollama automatisch auf dem Standardport mit.

Voraussetzungen: Ollama mit dem gewählten Sprachmodell (llama3.2 3B oder qwen2.5 7B), Tesseract für OCR, mindestens 16 GB RAM.

Umgebungen: Nur eine Umgebung (lokal). Keine Geheimnisse oder API-Schlüssel nötig.

18. Open questions & assumptions

Default: Isolation per Klick, zweiter Klick hebt auf.

Default: Dateiänderungen werden nicht erkannt; geänderte Dateien müssen neu hochgeladen werden.

Default: Ollama wird beim Start automatisch mitgestartet; die App läuft vollständig offline.

Default: Scope und Build-Reihenfolge sind wie oben festgelegt; Barrierefreiheit beschränkt sich auf Tastaturbedienung und Kontraste nach DESIGN.md.

Offen: Ob die Konzepterkennung ohne Ollama als Fallback existiert, ist festgelegt: nein, neue Analysen werden blockiert.

Images

screenshot-1.jpg
images/screenshot-1.jpg
screenshot-2.jpg
images/screenshot-2.jpg