Ersetzt das kaputte, generische Platzhalter-Template (verwies auf nicht
existierende assets/img/appstore.jpg etc.) unter der Root-Domain durch eine
echte Landingpage.
Design bewusst eigenständiger als die Install-Seite (dort ging es um
Vertrauen/Klarheit, hier darf es Persönlichkeit zeigen) - Fraunces-Kursiv
für die persönliche Stimme des Erstellers, ansonsten Systemschrift und die
etablierten Marken-Farben (Teal/Mint). Drei echte Screenshots der App statt
Stock-Bildern, erzeugt mit Playwright + demo-befüllter IndexedDB (Datum,
Namen frei erfunden, keine echten Nutzerdaten) - zeigt die tatsächliche
Oberfläche.
Inhaltlich auf die vier genannten Unterscheidungsmerkmale fokussiert:
einfache/übersichtliche Bedienung (keine Grafen), eingebauter Timer, 100%
Anonymität, und daraus abgeleitet der Backup/Wiederherstellen-Hinweis
(möglich, weil alles nur lokal liegt). Bewusst textarm, Screenshots tragen
die Botschaft.
Footer verlinkt Feedback-Mail, WhatsApp-Community und das Impressum von
zielke.studio (Popup-Button auf deren Startseite, kein eigener Deep-Link
verfügbar) mit Hinweis, dass PioMint ein privates Projekt ist.
Lokal getestet: Django-Check sauber, Rendering bei 390px (mobil) und 1280px
(Desktop) per Playwright-Screenshot geprüft.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Wunsch aus der Community: Name der Person, mit der man zusammen im Dienst
war, zum Eintrag hinterlegen können.
- Neues Textfeld "Partner" (optional, max. 30 Zeichen) in Neuer-Eintrag- und
Bearbeiten-Modal, direkt unter dem Datum
- Wird als partner-Feld im IndexedDB-Eintrag gespeichert
- Aktivitäten-Tabelle zeigt "mit <Partner>" klein unter dem Typ an, wenn
angegeben
- Bearbeiten-Formular wird beim Öffnen korrekt mit dem gespeicherten Partner
vorbefüllt
Lokal getestet: Felder rendern in beiden Modals, Django-Check sauber.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Neues Modell UsageEvent (device_id, Plattform/Browser aus User-Agent
serverseitig geparst, Standalone-Flag, Zeitstempel) - komplett anonym,
device_id ist eine zufällige, nur lokal im Browser gespeicherte ID
- POST /app/track/: nimmt ein Nutzungssignal entgegen (max. 1x pro Gerät/Tag,
siehe home01.js: pingUsageIfNeeded())
- GET /app/dashboard/: Übersicht für Admins (staff_member_required, nutzt
bestehenden Django-Admin-Login) - Geräte heute/7/30 Tage, Plattform- und
Browser-Verteilung, Standalone-Quote, letzte Signale
- UsageEvent zusätzlich im normalen Django-Admin registriert
- Migration bewusst nicht mitcommittet (Projekt-Konvention, siehe .gitignore) -
muss auf jedem Environment einmalig per `manage.py makemigrations app &&
manage.py migrate` erzeugt werden
Lokal getestet: Track-Endpoint, Dashboard-Rendering mit Testdaten, Admin-Login-
Schutz (unauthenticated -> 302), Django-Admin-Listing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>