diff --git a/README.md b/README.md index 9f9d256..4919e1f 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,14 @@ Starte mit: docker-compose up --build ``` +## Progressive Web App (PWA) + +Elpatrons Datumsrechner ist als PWA installierbar (z.B. auf Android/iOS-Homescreen oder Desktop). Die App funktioniert offline für die Startseite und statische Ressourcen, die Datumsberechnung bleibt serverseitig. + +- Manifest und Service Worker sind integriert +- App-Icon und Theme-Color für Homescreen +- Installation über Browser-Menü ("Zum Startbildschirm hinzufügen") + ## Entwicklung & Hinweise - Die HTML-Templates liegen im Ordner `templates/` (Trennung von Logik und Darstellung) diff --git a/static/manifest.json b/static/manifest.json new file mode 100644 index 0000000..4ae849d --- /dev/null +++ b/static/manifest.json @@ -0,0 +1,14 @@ +{ + "name": "Elpatrons Datumsrechner", + "short_name": "Datumsrechner", + "start_url": "/", + "display": "standalone", + "background_color": "#2563eb", + "theme_color": "#2563eb", + "description": "Open Source Web-App für Kalender- und Datumsberechnungen.", + "icons": [ + { "src": "/favicon.png", "sizes": "32x32", "type": "image/png" }, + { "src": "/favicon.ico", "sizes": "48x48 64x64 128x128 256x256", "type": "image/x-icon" }, + { "src": "/logo.svg", "sizes": "any", "type": "image/svg+xml" } + ] +} \ No newline at end of file diff --git a/static/service-worker.js b/static/service-worker.js new file mode 100644 index 0000000..13e68cf --- /dev/null +++ b/static/service-worker.js @@ -0,0 +1,20 @@ +const CACHE_NAME = 'datumsrechner-cache-v1'; +const urlsToCache = [ + '/', + '/static/style.css', + '/favicon.ico', + '/favicon.png', + '/logo.svg', +]; +self.addEventListener('install', event => { + event.waitUntil( + caches.open(CACHE_NAME) + .then(cache => cache.addAll(urlsToCache)) + ); +}); +self.addEventListener('fetch', event => { + event.respondWith( + caches.match(event.request) + .then(response => response || fetch(event.request)) + ); +}); \ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 711e729..91bc06e 100644 --- a/templates/index.html +++ b/templates/index.html @@ -20,6 +20,8 @@ + +