diff --git a/.gitea b/.gitea
new file mode 100644
index 0000000..9d32448
--- /dev/null
+++ b/.gitea
@@ -0,0 +1 @@
+@https://gitea.schwenk.online/froxxxy/bscscore/issues/1
\ No newline at end of file
diff --git a/public/LICENSE b/public/LICENSE
new file mode 100644
index 0000000..ca895ce
--- /dev/null
+++ b/public/LICENSE
@@ -0,0 +1,24 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+[... Full license text continues ...]
+
+ For the full license text, visit: https://www.gnu.org/licenses/gpl-3.0.txt
\ No newline at end of file
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..6880647
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/favicon.svg b/public/favicon.svg
deleted file mode 100644
index f157bd1..0000000
--- a/public/favicon.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/public/icon-192.png b/public/icon-192.png
new file mode 100644
index 0000000..db37380
Binary files /dev/null and b/public/icon-192.png differ
diff --git a/public/icon-512.png b/public/icon-512.png
new file mode 100644
index 0000000..317ffad
Binary files /dev/null and b/public/icon-512.png differ
diff --git a/public/manifest.json b/public/manifest.json
new file mode 100644
index 0000000..275af14
--- /dev/null
+++ b/public/manifest.json
@@ -0,0 +1,22 @@
+{
+ "name": "BSC Score",
+ "short_name": "BSC Score",
+ "description": "Pool Scoring App für den Billard Sport Club",
+ "lang": "de",
+ "start_url": ".",
+ "display": "fullscreen",
+ "background_color": "#1a1a1a",
+ "theme_color": "#000000",
+ "icons": [
+ {
+ "src": "icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "icon-512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/public/service-worker.js b/public/service-worker.js
new file mode 100644
index 0000000..844183c
--- /dev/null
+++ b/public/service-worker.js
@@ -0,0 +1,31 @@
+const CACHE_NAME = 'bscscore-v1';
+const URLS_TO_CACHE = [
+ '/',
+ '/index.html',
+ '/manifest.json',
+ '/favicon.ico',
+ '/icon-192.png',
+ '/icon-512.png'
+];
+
+self.addEventListener('install', event => {
+ event.waitUntil(
+ caches.open(CACHE_NAME).then(cache => cache.addAll(URLS_TO_CACHE))
+ );
+});
+
+self.addEventListener('activate', event => {
+ event.waitUntil(
+ caches.keys().then(keys =>
+ Promise.all(keys.filter(key => key !== CACHE_NAME).map(key => caches.delete(key)))
+ )
+ );
+});
+
+self.addEventListener('fetch', event => {
+ event.respondWith(
+ caches.match(event.request).then(response =>
+ response || fetch(event.request).catch(() => caches.match('/index.html'))
+ )
+ );
+});
\ No newline at end of file
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 2d14107..00ccd4c 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -2,15 +2,1749 @@
---
-
-