Commit graph

38 commits

Author SHA1 Message Date
4fee85bd22 Refactor: CSS-Variablen für alle Farbwerte (theme.css) 2026-05-22 08:59:35 +02:00
e2d7655e13 Einstellungen: Passwort-Ändern-Funktion 2026-05-22 08:19:58 +02:00
aa9ab9d776 Merge feat/no-pocketbase: PocketBase → SvelteKit + SQLite + JWT 2026-05-22 08:12:37 +02:00
50810c4b50 PWA: PNG-Icons für Homescreen (iOS 180px, Android 192/512px) 2026-05-22 08:12:32 +02:00
51c0fe58aa Fix: HTML-Tags in Nachrichten-Vorschau strippen 2026-05-22 08:10:13 +02:00
957c4a9707 Fix: Route-Namen (orte/ort-ausfaelle) und /api/users ergänzt 2026-05-21 22:17:03 +02:00
39981c0d17 Migrate: PocketBase → SvelteKit + better-sqlite3 + JWT
Vollständige Migration weg von PocketBase. Neuer Stack:
- better-sqlite3 (WAL-Mode, direkte SQLite-Abfragen)
- jose (JWT HS256, 30 Tage Laufzeit)
- bcryptjs (Passwort-Hashing, cost 12)

Neue Dateien:
- src/lib/server/db.ts    → SQLite-Singleton + Schema + Helpers
- src/lib/server/auth.ts  → JWT sign/verify, bcrypt, Bearer-Token
- src/lib/user.ts         → Svelte-Store (ersetzt pb.authStore)
- src/lib/api.ts          → fetch()-Wrapper (ersetzt pb.collection())
- src/app.d.ts            → App.Locals TypeScript-Deklaration
- 30 neue API-Routes unter src/routes/api/

Entfernt:
- Abhängigkeit von pocketbase npm-Paket (bleibt im package.json bis
  alle Referenzen bereinigt sind)
- PocketBase-Container aus docker-compose.yml
- Migrations und Hooks aus Deploy-Pipeline

Docker: Ein einziger Container, SQLite-Volume unter /data/
Makefile: PocketBase-spezifische Targets entfernt
seed.js: Komplett neu für neue REST-API
2026-05-21 21:55:04 +02:00
61c430f2e6 Fix: neuigkeiten-Migration auf new Collection()+app.save() umgestellt
importCollections() kompiliert Access-Rules in PocketBase v0.38 nicht
korrekt → HTTP 400 bei jedem List-Request. Alle anderen Migrationen
(nachrichten, mitglieder, etc.) verwenden new Collection() + app.save()
und funktionieren einwandfrei. Gleiche Methode jetzt auch für neuigkeiten
und reaktionen.

Außerdem: Makefile um staging-reset-Target erweitert (löscht PB-Daten),
staging-deploy synchronisiert Migrations und Hooks jetzt vollständig
(nicht nur neue Dateien).
2026-05-21 20:49:11 +02:00
ff8e9b2c39 Test: autor_id als Text statt Relation (PB v0.38 Bug-Isolation) 2026-05-21 20:33:18 +02:00
caff0feae8 Fix: importCollections() statt app.save() für korrekte Rule-Compilation in PB v0.38 2026-05-21 20:30:14 +02:00
9898581ae4 Fix: Re-save nach Collection-Erstellung erzwingt Rule-Index in PocketBase v0.38 2026-05-21 20:24:40 +02:00
fb54f1bd27 Fix: reaktionen-Migration liest neuigkeiten-ID nach app.save() 2026-05-21 20:22:58 +02:00
e4ca28025c Fix: Neuigkeiten-Migration ohne explizite Feld-IDs (PocketBase v0.38 Kompatibilität) 2026-05-21 20:21:46 +02:00
34f6a4f11d Fix: pbc_-Prefix aus Custom-Collection-IDs entfernt (PocketBase reserviert pbc_ intern) 2026-05-21 20:09:20 +02:00
0aca72af53 Fix: autor_name denormalisiert speichern statt expand (viewRule-Konflikt) 2026-05-21 20:03:55 +02:00
74c3aa11b0 Fix: Neuigkeiten/Reaktionen Access-Rules via separater Migration neu kompilieren 2026-05-21 19:50:48 +02:00
75cb9bfc88 Fix: Neuigkeiten-Ladestate mit try/catch abgesichert 2026-05-21 19:25:27 +02:00
13c6ba73ca Neuigkeiten: Vereins-Feed mit Fotos/Videos, Reaktionen, Termin-Verknüpfung 2026-05-21 19:17:35 +02:00
d4a0a75cf7 UI: Übersicht aus Bottom-Nav entfernt, Header-Buttons einheitlich kompakt 2026-05-21 18:45:34 +02:00
2514ec7496 Nav: Einstellungen aus Bottom-Nav entfernt (Gear-Icon im Header reicht) 2026-05-21 18:15:30 +02:00
6dd4d657be Statische IPs für alle Container im npm_bridge-Netz (.11–.14) 2026-05-21 08:49:01 +02:00
a4436d70c2 Staging: docker-compose.staging.yml, Makefile-Targets, Seed-Script (18 Mitglieder, Termine, Orte, Beitragsarten) 2026-05-20 20:46:46 +02:00
81f34905cf Termine: Wochen- und Monatsansicht via @event-calendar/core, umschaltbar zur Listenansicht 2026-05-20 20:33:09 +02:00
59d94f9c47 Import/Export: CSV-Export (Alle/Aktive/SEPA), JSON-Backup, CSV-Import mit Spalten-Mapping 2026-05-20 20:25:07 +02:00
95c2dc0f26 Lizenzmodell: Plan-Anzeige in Einstellungen, SEPA-Gate für Free-Plan 2026-05-20 20:21:21 +02:00
b8e2a69912 Veranstaltungsorte: Verwaltung, Ausfälle, Ort-Picker in Terminen, Warnhinweise 2026-05-20 20:04:53 +02:00
3ac17b2645 Termine: Wiederholungsserien (rrule.js), iCal-Subscription-Feed (ical-generator) 2026-05-20 19:58:33 +02:00
c23ac90d35 Durchführender: Verfügbarkeit pro Termin, Umbenennung Trainer→Durchführender 2026-05-20 19:43:46 +02:00
59aa3cbcce Rollen: Trainer-Einladung, rollenbasierte Navigation und Zugriffskontrolle 2026-05-20 17:27:59 +02:00
7e2e5a643d Einstellungen: Vereinsprofil + SEPA-Bankdaten editierbar, Abmelden auf Einstellungsseite 2026-05-20 16:57:22 +02:00
472979a91c Übersicht: Vereins-Header mit Logo + nächste Termine statt redundanter Nav-Chips 2026-05-20 16:51:47 +02:00
f2906f5c60 Fix: favicon.ico 404 via 301-Redirect auf favicon.svg 2026-05-20 16:48:54 +02:00
bb0e67b2bd Branding: Logo, Favicon und App-Icon eingebaut 2026-05-20 16:40:43 +02:00
77c6f513b5 Feature: SEPA-Export, Push-Notifications, Onboarding + vollständige UI
- Phosphor Icons (Icon.svelte, svg-Registry)
- Schema-Abgleich: alle Felder zwischen PB-Migrations und types.ts konsistent
- Stripe entfernt, SEPA pain.008 XML-Export implementiert (sepa.ts)
- Beiträge: vollständiges CRUD + SEPA-Einzug-Sheet mit Vorschau
- Termine: vollständiges CRUD (upcoming/vergangen, datetime-local)
- Mitglieder: Formulare um alle Felder erweitert (Adresse, SEPA-Mandat, Notizen)
- Nachrichten: Brevo E-Mail via PocketBase-Hook, UI mit Gruppen-Filter
- Push-Notifications: VAPID, Custom Service Worker (injectManifest),
  Subscribe/Send API-Routen, automatische Subscription nach Login
- Onboarding: 3-Schritt-Flow für neue Vereine, Guard im App-Layout
- Makefile: .env wird vollständig zur DS übertragen
2026-05-20 13:01:11 +02:00
c2c4dfd518 Add Mitgliederverwaltungs-UI (Phase 1 MVP)
- List view with live search and member count
- Create form (/mitglieder/neu) with group checkboxes
- Detail/Edit view with inline edit toggle
- Delete with confirmation dialog
- Makefile: skip migration files already on DS (avoid root permission error)
2026-05-19 20:48:53 +02:00
375a3305bb Add PocketBase schema migrations and migration pipeline
- 8 collections: vereine, gruppen, mitglieder, beitraege, einzuege,
  termine, nachrichten, push_subscriptions
- verein_id relation added to users (multi-tenant isolation)
- API rules enforce tenant separation via @request.auth.verein_id
- docker-compose: --migrationsDir=/pb_data/migrations flag + volume mount
- Makefile: migrations sync step added to deploy target
2026-05-19 20:40:47 +02:00
94ca36f470 Fix: VITE_PB_URL als Docker build-arg (api.vereins.haus) 2026-05-18 18:52:13 +02:00
773046c80d Grundgerüst: SvelteKit 5 + PocketBase + VitePWA
- Docker Compose Setup (PocketBase + SvelteKit Node)
- Auth: Login, Registrierung (Verein + User in PocketBase)
- Geschützte App-Shell mit Bottom-Navigation (Mobile-first)
- Platzhalterseiten: Mitglieder, Termine, Beiträge, Nachrichten
- TypeScript-Typen für alle Collections
- PWA-Manifest für vereins.haus
- Makefile für SSH-Deploy auf Synology DS
2026-05-18 18:46:33 +02:00