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
This commit is contained in:
rene 2026-05-20 13:01:11 +02:00
parent c2c4dfd518
commit 77c6f513b5
32 changed files with 3012 additions and 399 deletions

View file

@ -6,6 +6,9 @@ export default defineConfig({
plugins: [
sveltekit(),
VitePWA({
strategies: 'injectManifest',
srcDir: 'src',
filename: 'sw.ts',
registerType: 'autoUpdate',
manifest: {
name: 'vereins.haus',
@ -21,19 +24,9 @@ export default defineConfig({
{ src: '/icons/apple-touch-icon.png', sizes: '180x180', type: 'image/png' }
]
},
workbox: {
injectManifest: {
globPatterns: ['**/*.{js,css,html,svg,png,ico}'],
runtimeCaching: [
{
urlPattern: /^https:\/\/api\.vereins\.haus\/.*/i,
handler: 'NetworkFirst',
options: {
cacheName: 'pocketbase-api',
expiration: { maxEntries: 100, maxAgeSeconds: 60 * 60 * 24 }
}
}
]
}
})
]
},
}),
],
});