Add web push notification system for user engagement and updates
Implement a web push notification system, including service worker integration, user subscription management, and an admin interface for sending broadcast messages. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: f585829f-898b-492f-82a5-11f4a76c87fb Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/ICRgny1 Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -17,6 +17,7 @@ The official website for Folx Music Television (folx.tv). Dark-themed bento grid
|
||||
- Recipe widget + full /rezepte subpage (21 recipes across 5 regions: Österreich, Bayern, Schwaben/Baden, Südtirol/Alpen, Norddeutschland) with AI-generated images
|
||||
- Google News RSS widget (Volksmusik/Schlager news, 5 items, auto-rotate)
|
||||
- Google AdSense integration (ca-pub-4465464714854276)
|
||||
- Web Push Notifications (bell icon in header, admin panel at /admin/push)
|
||||
- Article listing with featured carousel and category filtering
|
||||
- HTML content supports embedded iframes (bunny.net, YouTube, Facebook, Instagram, TikTok)
|
||||
- DOMPurify sanitization for safe HTML rendering
|
||||
@@ -46,6 +47,11 @@ The official website for Folx Music Television (folx.tv). Dark-themed bento grid
|
||||
- `PATCH /api/articles/:id` - Update article
|
||||
- `DELETE /api/articles/:id` - Delete article
|
||||
- `POST /api/upload` - Upload image file
|
||||
- `GET /api/push/vapid-key` - Get VAPID public key for push subscriptions
|
||||
- `POST /api/push/subscribe` - Subscribe to push notifications
|
||||
- `POST /api/push/unsubscribe` - Unsubscribe from push notifications
|
||||
- `GET /api/push/count` - Get push subscriber count
|
||||
- `POST /api/admin/push/send` - Send push notification to all subscribers
|
||||
- `GET /api/gallery` - Shuffled gallery images from Cloudinary (with artist names from filenames + overrides)
|
||||
- `GET /api/gallery/focal-points` - Gallery image focal points (JSON)
|
||||
- `PUT /api/gallery/focal-points/:fileName` - Set focal point for gallery image
|
||||
|
||||
Reference in New Issue
Block a user