Projektportal User Journeys — Prüfschritte, Evidence und GAP zum Neos-Projektportal
Live-Prüfung am 18.06.2026 auf https://solcom.ddev.site mit agent-browser,
Mailpit und Drush/SQL. Der Report ergänzt den Parity-Audit vom 17.06. um aktuelle Screenshots,
Videos und konkrete Abnahme-Prüfschritte.
1. Statusmatrix der User Journeys
| Journey | Status | Live-Befund am 18.06.2026 | Evidence |
|---|---|---|---|
| Registrieren & Aktivieren | bestanden | 3-stufige Registrierung, Pflichtfelder auf Seite 1, Datei-Upload, gesperrter User, Mailpit-Verifizierung und Aktivierung funktionieren. | Video · Screenshots 08, 10-16 · SQL UID 17 Status 0 → 1 |
| Login | bestanden | Login mit E-Mail und Passwort führt ins Projektportal; Profil-Hub zeigt Daten, Dokument, Account, Suchagent und Merkliste. | Video · Screenshot 18 |
| Passwort vergessen | bestanden | Reset-Formular sendet nach Honeypot-Wartezeit die generische Enumeration-sichere Meldung; Mailpit zeigt Reset-Mail. | Video · Screenshots 28-32 |
| Account-Daten ändern | teilweise | /projektportal/konto/einstellungen existiert mit Passwort, E-Mail, Magazin-Opt-In und Konto-Löschen-Link. E-Mail-Wechsel-Double-Opt-In wurde nicht verifiziert. |
Screenshot 22 |
| Account löschen | nicht destruktiv ausgeführt | Der Lösch-Einstieg ist sichtbar. Vollständige Löschung wurde nicht am Testkonto ausgeführt, weil derselbe Account für weitere Evidence gebraucht wurde. | Screenshot 22 · vorhandener Dogfood-Report 2026-06-16 |
| Profil & Dokumente pflegen | bestanden | Profilbearbeitung speichert Stundensatz, Verfügbarkeit und Einsatzorte; Upload-Dokument bleibt im Profil sichtbar. | Video · Screenshots 19-21 |
| Projekt finden & merken | bestanden | Projektliste, Detailseite, anonyme Merkliste und eingeloggte Merkliste sind erreichbar. Persistenz wurde in users_data nachgewiesen. |
Screenshots 01-04, 26-27 · SQL users_data |
| Auf Projekt bewerben | teilweise / Submit offen | Gast-Bewerbungsformular ist sichtbar und Datei-Upload funktioniert. Mehrere Submit-Versuche erzeugten keine Danke-Seite und keine neue webform_submission. |
Videos 06-07 · Screenshots 34-36 · SQL: kein neuer Submission-Satz nach SID 14 |
| Suchagent / Projekt-Alert | bestanden | Eingeloggter Suchagent lässt sich mit Region Deutschland speichern; Entity ppp_alert wurde mit Status aktiv angelegt. |
Video · Screenshots 23-25 · SQL ppp_alert |
| Verfügbarkeit melden | fehlt | /projektportal/verfuegbarkeit liefert 404. Zusätzlich bricht die 404-Seite wegen byte_theme:text/text_size mit Wert text-3xl gegen das SDC-Enum. |
Screenshot 33 |
2. Prüfschritte für die Abnahme
2.1 Registrierung und Aktivierung
/projektportal/registrierenanonym öffnen.- Seite 1 ausfüllen, PDF/DOC hochladen, Datenschutz und Nutzungserklärung anhaken, weiter klicken.
- Seite 2 und Seite 3 leer lassen und absenden.
- In Mailpit die Mail „Projektpartner-Account verifizieren“ öffnen und den Verifizierungslink aufrufen.
- Erwartet: User ist vor Link-Klick gesperrt, danach aktiv; Browser zeigt den Login und die Aktivierungsmeldung.
2.2 Login und Profil-Hub
/user/loginöffnen.- Mit der registrierten E-Mail und Passwort anmelden.
- Erwartet: Redirect ins Portal; kein Admin-Chrome; Bereiche „Meine Daten“, „Mein Account“, „Meine Dokumente“, „Mein Projekt Alert“ sichtbar.
2.3 Profil bearbeiten
/projektportal/profil/bearbeitenöffnen.- Stundensatz, Verfügbarkeit und Einsatzorte ändern und speichern.
- Erwartet: Statusmeldung „Das Profil wurde gespeichert“; Profil-Hub zeigt die geänderten Werte.
- Nachtest offen: Prüfen, ob eine Profiländerungs-Mail bzw. Queue-Auslieferung an den vorgesehenen SF-Übergangskanal entsteht.
2.4 Konto-Einstellungen und Konto-Löschung
/projektportal/konto/einstellungenöffnen.- Passwortwechsel und Magazin-Opt-In prüfen.
- E-Mail-Adresse ändern und Mailpit beobachten.
- Erwartet: Passwortwechsel speichert; E-Mail-Wechsel darf erst nach Bestätigung der neuen Adresse final werden.
- Destruktiver Prüfschritt: Mit einem frischen Wegwerfaccount Konto löschen und danach prüfen, dass Login, Profil und private Dateien entfernt sind.
2.5 Projektliste, Detail und Merkliste
/fuer-freiberufler/projektlisteanonym öffnen.- Ein Projekt öffnen, „Zur Merkliste hinzufügen“ klicken und
/projektportal/merklisteöffnen. - Einloggen und Merkliste erneut prüfen.
- Erwartet: Das gemerkte Projekt erscheint anonym und nach Login; eingeloggte Speicherung ist serverseitig persistiert.
2.6 Bewerbung auf ein Projekt
- Projekt-Detailseite öffnen und „Jetzt bewerben“ klicken.
- Gastformular ausfüllen, Datei hochladen, Datenschutz anhaken.
- Absenden und danach Mailpit sowie
webform_submissionprüfen. - Erwartet: Danke-/Erfolgsmeldung, neuer
rsm_project_offer_application-Submission-Satz, interne Bewerbungsmail und optional Bewerber-Bestätigung. - Aktueller Befund: Upload ist belegt, Submit erzeugte im Live-Nachtest keine neue Submission und keine sichtbare Erfolgsmeldung.
2.7 Suchagent / Projekt-Alert
- Eingeloggt
/projektportal/suchagentöffnen. - Region Deutschland aktivieren, optional Skills ergänzen, Suchagent speichern.
- Erwartet: Statusmeldung „Ihr Suchagent wurde gespeichert“; Button wechselt zu „Suchagent speichern“ und „Suchagent löschen“; DB enthält aktive
ppp_alert-Entity. - Nachtest offen: Cron-/Treffer-Mail mit passendem Projektangebot auslösen.
2.8 Passwort-Reset
- Anonym
/user/passwordöffnen. - E-Mail eintragen und nach mindestens sechs Sekunden absenden.
- Erwartet: Enumeration-sichere Meldung; Mailpit zeigt Passwort-Reset-Mail.
- Hinweis: Ein zu schneller Submit wird durch Honeypot geblockt; das ist beabsichtigtes Verhalten.
2.9 Verfügbarkeit
/projektportal/verfuegbarkeit?id=testoder den späteren echten Token-Link öffnen.- Erwartet aus Neos: Token-Link zeigt Verfügbarkeitsformular, speichert Rückmeldung und bestätigt per Mail/Status.
- Aktueller Befund: Route fehlt; 404-Seite rendert zusätzlich fehlerhaft.
3. GAP-Matrix zum Neos-Projektportal
| Neos-Capability | Drupal-Befund | GAP / nächster Prüfschritt |
|---|---|---|
| Registrierung mit Aktivierungslink | umgesetzt Webform-Wizard, gesperrter User und Aktivierungsmail funktionieren. | RMS/PPP-ID-Vergabe bzw. SF-Rücksync für Neuregistrierungen als Join-Key verifizieren. |
| Login inklusive Gastdatenübernahme | teilweise Login und Merkliste-Merge funktionieren; Gast-Suchagent ist nicht belegt. | Gast-Suchagent mit Double-Opt-In und Übernahme in Account fehlt oder ist nicht im MVP. |
| Passwort vergessen / zurücksetzen | umgesetzt Core-Flow mit Honeypot und Mailpit belegt. | Legacy-Tokenlaufzeiten gegen Drupal-Core-Timeout fachlich entscheiden. |
| Zugangsdaten ändern | teilweise Account-Form existiert. | E-Mail-Wechsel muss Bestätigung der neuen Adresse erzwingen; live noch nicht belegt. |
| Account löschen | teilweise Einstieg sichtbar, Dogfood-Report nennt vorhandene Löschlogik. | Destruktiver End-to-End-Test mit Wegwerfaccount: User, Profil, private Dateien, Logout. |
| Profil und Unterlagen pflegen | umgesetzt Bearbeitung und Speicherung live belegt. | Benachrichtigungs-/SF-Übergangsmail nach Profiländerung im aktuellen Lauf nicht beobachtet. |
| Projekt finden, merken, Merkliste | umgesetzt Liste, Detail, anonyme und eingeloggte Merkliste funktionieren. | CSRF-Härtung der Raw-Routen aus Parity-Audit nachziehen bzw. erneut prüfen. |
| Auf Projekt bewerben | teilweise Formular und Upload funktionieren; Submit-Bestätigung nicht belegt. | Submit-Blocker klären, interne Recruiting-Mail mit Anhängen und Bewerber-ACK prüfen. |
| Suchagent / Projekt-Alert | für eingeloggte Nutzer umgesetzt Speichern und Entity-Anlage belegt. | Neos-Gaps: Gast-Suchagent, Hash-Abmeldung, Gebiets-Ausschluss/UND-ODER-Logik und echte Treffer-Mail prüfen. |
| Verfügbarkeit melden | fehlt Keine erreichbare Route. | Komplette Journey neu schneiden: Token-Mail, Formular, Speicherung, Abmeldung/Status, Follow-up-Mails. |
| Magazin-/Newsletter-Opt-In | UI teilweise vorhanden Checkbox in Konto-Einstellungen sichtbar. | Mailingwork-/Marketing-Anbindung nicht live belegt; Scope-Entscheidung erforderlich. |
4. Findings aus dem aktuellen Live-Durchlauf
| Priorität | Befund | Beleg | Empfohlene Aktion |
|---|---|---|---|
| hoch | Verfügbarkeits-Journey fehlt; zusätzlich bricht die 404-Seite wegen ungültigem SDC-Enum text-3xl. |
Screenshot 33, URL /projektportal/verfuegbarkeit?id=test. |
404-SDC-Fehler separat reparieren; Availability als eigenes Ticket/Phase-2-Scope sauber entscheiden. |
| hoch | Projektbewerbung: Gastformular lässt Upload zu, aber Submit erzeugte keine Erfolgsmeldung und keinen neuen Submission-Satz. | Videos 06/07, Screenshots 34-36, SQL: letzter neuer Satz bleibt SID 14 (projektpartner_registration). |
Form-Submit serverseitig debuggen; danach Mailpit und webform_submission als Pflichtbeleg aufnehmen. |
| mittel | Account-E-Mail-Wechsel ist als Formularfeld vorhanden, Double-Opt-In-Verhalten aber nicht belegt. | Screenshot 22. | Mit Wegwerfaccount E-Mail ändern und bestätigen, dabei alte/neue Adresse und Login-Verhalten prüfen. |
| mittel | Profiländerungs-Mail/SF-Übergang wurde nach Profil-Save in diesem Lauf nicht in Mailpit beobachtet. | Screenshots 19-21, Mailpit-Zählung nach Profil-Save ohne eindeutige neue Profilmail. | Queue/Mail-Auslieferung gezielt mit Drush-Queue und Mailpit prüfen. |
| tooling | Einige UI-Klicks per agent-browser click trafen nicht zuverlässig; DOM-Klicks bestätigten jedoch die sichtbaren Links/Buttons. |
Projektdetail/Merkliste in der Browser-Evidence. | Nicht als Produktfehler werten, solange manuell reproduzierbar korrekt; bei Abnahme mit echter Maus gegenprüfen. |
5. Evidence: Screenshots und Videos
Vollständiger Asset-Ordner:
docs/reports/assets/2026-06-18-projektportal-journeys/.
Der Screenshot-Satz umfasst 01 bis 36; die relevanten aktuellen Videos sind 03 bis 07.
Repräsentative Screenshots
6. Methodik und Quellen
Browser: Alle Navigations-, Interaktions-, Screenshot- und Video-Schritte liefen über agent-browser.
Systembelege: Drupal-Status, Routen, User-, ppp_alert-, users_data- und webform_submission-Tabellen wurden über ddev drush geprüft.
Dokuquellen: Neos Flow Inventory 0009, Neos Formular-Mockups 0010, Dogfood-QA 2026-06-16 und Parity-Audit 2026-06-17.
Grenze: Der Bericht dokumentiert den aktuellen lokalen DDEV-Zustand am 18.06.2026. Er ist kein Ersatz für den finalen Pre-Go-Live-Lauf gegen Staging/Production-Daten.