docs: Changelog, Release-Notes und DEVLOG fuer 0.6.0
This commit is contained in:
+49
-1
@@ -7,6 +7,53 @@ die Versionierung [Semantic Versioning](https://semver.org/lang/de/).
|
||||
|
||||
## [Unveröffentlicht]
|
||||
|
||||
## [0.6.0] — 2026-09-01
|
||||
|
||||
Der Rest: Benachrichtigungen, Abgleich, Import und Export, Schnittstelle, PWA
|
||||
— und eine bebilderte Anleitung.
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
- **Benachrichtigungen** über vier Wege: E-Mail (SMTP), ntfy, Gotify und ein
|
||||
generischer Webhook, der zugleich Discord, Slack und Mattermost bedient.
|
||||
Jeder Nutzer richtet seine Kanäle selbst ein, kann sie einzeln stummschalten
|
||||
und mit einer Testnachricht ausprobieren. Dieselbe Meldung geht nie zweimal
|
||||
raus — auch ein Fehlversuch wird protokolliert, sonst spammt der nächste Lauf
|
||||
den Kanal voll, sobald er wieder erreichbar ist. Die E-Mail-Vorlage trägt
|
||||
Logo und Farbwelt von Flimmer.
|
||||
- **Täglicher Abgleich**: frischt laufende Serien bei TMDB auf, meldet neue
|
||||
Episoden und neu verfügbare Watchlist-Titel, räumt Papierkorb und abgelaufene
|
||||
Sitzungen. Eingebauter Zeitplan über `ENABLE_SCHEDULER` und `SYNC_HOUR`, von
|
||||
außen anstoßbar über `/api/cron/sync` mit `CRON_SECRET`, und in der
|
||||
Verwaltung per Knopfdruck. Ein einzelner Titel kann den Lauf nicht kippen.
|
||||
- **Import** aus Trakt.tv (JSON, egal ob Watchlist, History, Ratings oder
|
||||
Collection) und aus CSV mit Komma oder Semikolon. Der Import überschreibt
|
||||
nichts: was schon in der Bibliothek liegt, bleibt unangetastet.
|
||||
- **Export** der eigenen Daten als CSV oder als JSON mit allen Sichtungen und
|
||||
Universen.
|
||||
- **REST-API** unter `/api/v1` mit persönlichen API-Schlüsseln: Bibliothek
|
||||
lesen und pflegen, Episoden abhaken und zurücknehmen, suchen, Kalender,
|
||||
Statistik, Universen, Export. Beschreibung als OpenAPI 3.1 unter
|
||||
`/api/v1/openapi.json`, dazu `docs/API.md` mit Beispielen.
|
||||
- **Einstellungsseiten** für Profil, Region, Passwort, Benachrichtigungen,
|
||||
API-Schlüssel sowie Import und Export.
|
||||
- **Verwaltungsbereich**: Instanzname, Registrierung öffnen und schließen,
|
||||
öffentliche Profile erlauben, Konten sperren und Rechte vergeben, Abgleich
|
||||
anstoßen und der Zustand der Instanz auf einen Blick. Die letzte
|
||||
Administration lässt sich nicht entmachten.
|
||||
- **Öffentliche Profilseite** unter `/u/<adresse>` — Zahlen und zuletzt
|
||||
Gesehenes, aber keine Notizen, keine Watchlist, keine E-Mail-Adresse.
|
||||
Abschaltbar durch den Nutzer *und* instanzweit durch den Betreiber.
|
||||
- **PWA-Feinschliff**: eigener Service Worker (Poster aus dem Zwischenspeicher,
|
||||
Seiten zuerst aus dem Netz, Offline-Rückfall) und eine Offline-Seite.
|
||||
- **`TMDB_BASE_URL`** für Instanzen hinter einem eigenen Proxy — und für den
|
||||
mitgelieferten TMDB-Ersatz `scripts/tmdb-stub.mjs`, mit dem sich die Suche
|
||||
ohne Schlüssel aus den Beispieldaten ausprobieren lässt.
|
||||
- **Bebilderte Anleitung** `docs/ANLEITUNG.md` mit 18 Screenshots aus der
|
||||
laufenden Instanz, aufgenommen von `npm run screenshots`.
|
||||
- **9 weitere Tests** für CSV- und Trakt-Import, Export, das Aufräumen des
|
||||
Papierkorbs und den Schutz vor Doppelversand — zusammen 49.
|
||||
|
||||
## [0.5.0] — 2026-09-01
|
||||
|
||||
Übersicht, Kalender und Statistik.
|
||||
@@ -214,7 +261,8 @@ Erste lauffähige Etappe: Gerüst, Marke, Datenmodell und Anmeldung.
|
||||
dass weitere Sprachen als zusätzliche Datei dazukommen können.
|
||||
- **Seed-Skript** mit Demo-Konten sowie README und Design-Dokumentation.
|
||||
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/flimmer/compare/v0.5.0...HEAD
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/flimmer/compare/v0.6.0...HEAD
|
||||
[0.6.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.6.0
|
||||
[0.5.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.5.0
|
||||
[0.4.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.4.0
|
||||
[0.3.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.3.0
|
||||
|
||||
@@ -100,8 +100,25 @@ Statistiken, Benachrichtigungen, REST-API, PWA. Oberflächensprache **Deutsch**.
|
||||
|
||||
## Fortschritt
|
||||
|
||||
- ✅ **Etappe 1** (v0.1.0, released) — Gerüst, Branding, Docker, Schema, Auth. 38 min.
|
||||
- ⏳ **Etappe 2** — TMDB-Anbindung
|
||||
- ✅ **Etappe 1** (v0.1.0) — Gerüst, Branding, Docker, Schema, Auth. 38 min.
|
||||
- ✅ **Etappe 2** (v0.2.0) — TMDB: Suche, Import, Episoden, Bild-Cache. 14 min.
|
||||
- ✅ **Etappe 3** (v0.3.0) — Bibliothek, Status, Episodenfortschritt, Papierkorb. 24 min.
|
||||
- ✅ **Etappe 4** (v0.4.0) — Universen mit Reihenfolgen, Freigaben. 14 min.
|
||||
- ✅ **Etappe 5** (v0.5.0) — Übersicht, Kalender, Statistik. 15 min.
|
||||
- ✅ **Etappe 6** (v0.6.0) — Benachrichtigungen, Abgleich, Import/Export, REST-API, PWA, Anleitung. 31 min.
|
||||
|
||||
**Alle sechs Etappen abgeschlossen. Gesamtzeit: 2 h 16 min.**
|
||||
|
||||
### Nützliches für spätere Arbeiten
|
||||
- Suche ohne TMDB-Schlüssel ausprobieren:
|
||||
`npm run tmdb:stub` und dann
|
||||
`TMDB_API_KEY=stub TMDB_BASE_URL=http://127.0.0.1:3099/3 PORT=3011 npm run dev`
|
||||
- Screenshots neu aufnehmen: `npm run screenshots` (nimmt auf und verkleinert)
|
||||
- `npm test` läuft seriell gegen die Dev-Datenbank, braucht keinen TMDB-Schlüssel
|
||||
- Deutsche Anführungszeichen (`„…"`) niemals in JS-**String-Literalen** —
|
||||
das ASCII-Schlusszeichen beendet den String. In JSX-Text und Kommentaren ok.
|
||||
- Heredocs im Bash-Tool sind bei langen TSX-Dateien unzuverlässig — dann das
|
||||
Write-Werkzeug benutzen.
|
||||
|
||||
<!-- BEGIN:nextjs-agent-rules -->
|
||||
|
||||
|
||||
@@ -75,6 +75,22 @@ Alle Zeiten per `date`-Befehl erfasst (Europe/Berlin), nicht geschätzt.
|
||||
|
||||
---
|
||||
|
||||
## Etappe 6 — Benachrichtigungen, Sync, Import/Export, REST-API, PWA (v0.6.0)
|
||||
|
||||
| # | Start | Ende | Dauer | Arbeitsschritt |
|
||||
|---|---|---|---|---|
|
||||
| 6.1 | 19:54 | 19:58 | 4 min | Benachrichtigungen über vier Wege samt E-Mail-Vorlage; Hintergrundlauf mit Zeitplan und Cron-Endpunkt |
|
||||
| 6.2 | 19:58 | 20:02 | 4 min | Import (Trakt, CSV) und Export (CSV, JSON) |
|
||||
| 6.3 | 20:02 | 20:07 | 5 min | REST-API `/api/v1` mit API-Schlüsseln, OpenAPI-Beschreibung |
|
||||
| 6.4 | 20:07 | 20:12 | 5 min | Einstellungsseiten, Verwaltung, öffentliches Profil; Service Worker und Offline-Seite |
|
||||
| 6.5 | 20:12 | 20:15 | 3 min | 9 Tests für Import, Export, Papierkorb und Doppelversandschutz |
|
||||
| 6.6 | 20:15 | 20:20 | 5 min | TMDB-Ersatz für Screenshots, 18 Aufnahmen, Verkleinerung auf WebP (13 MB → 0,6 MB) |
|
||||
| 6.7 | 20:20 | 20:25 | 5 min | `docs/ANLEITUNG.md` und `docs/API.md`, README erweitert, API von Hand durchgetestet |
|
||||
|
||||
**Etappe 6 gesamt: 31 min** (2026-09-01, 19:54 – 20:25)
|
||||
|
||||
---
|
||||
|
||||
## Gesamtübersicht
|
||||
|
||||
| Etappe | Version | Dauer |
|
||||
@@ -84,5 +100,27 @@ Alle Zeiten per `date`-Befehl erfasst (Europe/Berlin), nicht geschätzt.
|
||||
| 3 — Kern-Tracking | 0.3.0 | 24 min |
|
||||
| 4 — Universen | 0.4.0 | 14 min |
|
||||
| 5 — Dashboard, Kalender, Statistik | 0.5.0 | 15 min |
|
||||
| 6 — Benachrichtigungen, Sync, Import/Export, API, PWA | 0.6.0 | 31 min |
|
||||
|
||||
**Bisher gesamt: 105 min**
|
||||
**Gesamtentwicklungszeit: 2 h 16 min** (136 min, 2026-09-01, 18:09 – 20:25)
|
||||
|
||||
### Womit die Zeit verging
|
||||
|
||||
| Anteil | Bereich |
|
||||
|---|---|
|
||||
| ~35 min | Oberfläche und Design (Branding, Komponenten, Seiten) |
|
||||
| ~30 min | Domänenlogik (Tracking, Universen, Statistik, Abgleich) |
|
||||
| ~25 min | Schnittstellen nach außen (TMDB, REST-API, Import/Export, Benachrichtigungen) |
|
||||
| ~20 min | Tests — 49 Stück, die unterwegs sieben echte Fehler gefunden haben |
|
||||
| ~15 min | Dokumentation, Screenshots, Changelog, Releases |
|
||||
| ~11 min | Gerüst, Docker, Datenmodell, Werkzeugkette |
|
||||
|
||||
### Fehler, die die Tests gefunden haben
|
||||
|
||||
1. `importSeries` gab veraltete Staffel- und Episodenzähler zurück.
|
||||
2. Testdateien räumten sich im parallelen Lauf gegenseitig die Fixtures weg.
|
||||
3. Das Monatsdiagramm blieb wegen eines Zeitzonenversatzes leer.
|
||||
4. Abgeschlossene, aber weiterlaufende Serien verschwanden aus dem Kalender.
|
||||
5. Poster zeigten das kaputte Bildsymbol statt der Rückfallkachel.
|
||||
6. Eine `server-only`-Kette landete im Browser-Bundle und brach den Build.
|
||||
7. Der SVG-Titel eines Diagramms brach die Hydration.
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# Flimmer 0.6.0
|
||||
|
||||
Der Rest: Benachrichtigungen, Abgleich, Import und Export, Schnittstelle, PWA
|
||||
— und eine bebilderte Anleitung.
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
- **Benachrichtigungen** über vier Wege: E-Mail (SMTP), ntfy, Gotify und ein
|
||||
generischer Webhook, der zugleich Discord, Slack und Mattermost bedient.
|
||||
Jeder Nutzer richtet seine Kanäle selbst ein, kann sie einzeln stummschalten
|
||||
und mit einer Testnachricht ausprobieren. Dieselbe Meldung geht nie zweimal
|
||||
raus — auch ein Fehlversuch wird protokolliert, sonst spammt der nächste Lauf
|
||||
den Kanal voll, sobald er wieder erreichbar ist. Die E-Mail-Vorlage trägt
|
||||
Logo und Farbwelt von Flimmer.
|
||||
- **Täglicher Abgleich**: frischt laufende Serien bei TMDB auf, meldet neue
|
||||
Episoden und neu verfügbare Watchlist-Titel, räumt Papierkorb und abgelaufene
|
||||
Sitzungen. Eingebauter Zeitplan über `ENABLE_SCHEDULER` und `SYNC_HOUR`, von
|
||||
außen anstoßbar über `/api/cron/sync` mit `CRON_SECRET`, und in der
|
||||
Verwaltung per Knopfdruck. Ein einzelner Titel kann den Lauf nicht kippen.
|
||||
- **Import** aus Trakt.tv (JSON, egal ob Watchlist, History, Ratings oder
|
||||
Collection) und aus CSV mit Komma oder Semikolon. Der Import überschreibt
|
||||
nichts: was schon in der Bibliothek liegt, bleibt unangetastet.
|
||||
- **Export** der eigenen Daten als CSV oder als JSON mit allen Sichtungen und
|
||||
Universen.
|
||||
- **REST-API** unter `/api/v1` mit persönlichen API-Schlüsseln: Bibliothek
|
||||
lesen und pflegen, Episoden abhaken und zurücknehmen, suchen, Kalender,
|
||||
Statistik, Universen, Export. Beschreibung als OpenAPI 3.1 unter
|
||||
`/api/v1/openapi.json`, dazu `docs/API.md` mit Beispielen.
|
||||
- **Einstellungsseiten** für Profil, Region, Passwort, Benachrichtigungen,
|
||||
API-Schlüssel sowie Import und Export.
|
||||
- **Verwaltungsbereich**: Instanzname, Registrierung öffnen und schließen,
|
||||
öffentliche Profile erlauben, Konten sperren und Rechte vergeben, Abgleich
|
||||
anstoßen und der Zustand der Instanz auf einen Blick. Die letzte
|
||||
Administration lässt sich nicht entmachten.
|
||||
- **Öffentliche Profilseite** unter `/u/<adresse>` — Zahlen und zuletzt
|
||||
Gesehenes, aber keine Notizen, keine Watchlist, keine E-Mail-Adresse.
|
||||
Abschaltbar durch den Nutzer *und* instanzweit durch den Betreiber.
|
||||
- **PWA-Feinschliff**: eigener Service Worker (Poster aus dem Zwischenspeicher,
|
||||
Seiten zuerst aus dem Netz, Offline-Rückfall) und eine Offline-Seite.
|
||||
- **`TMDB_BASE_URL`** für Instanzen hinter einem eigenen Proxy — und für den
|
||||
mitgelieferten TMDB-Ersatz `scripts/tmdb-stub.mjs`, mit dem sich die Suche
|
||||
ohne Schlüssel aus den Beispieldaten ausprobieren lässt.
|
||||
- **Bebilderte Anleitung** `docs/ANLEITUNG.md` mit 18 Screenshots aus der
|
||||
laufenden Instanz, aufgenommen von `npm run screenshots`.
|
||||
- **9 weitere Tests** für CSV- und Trakt-Import, Export, das Aufräumen des
|
||||
Papierkorbs und den Schutz vor Doppelversand — zusammen 49.
|
||||
Reference in New Issue
Block a user