diff --git a/web/.prettierrc.mjs b/web/.prettierrc.mjs new file mode 100644 index 0000000..3ce655d --- /dev/null +++ b/web/.prettierrc.mjs @@ -0,0 +1,13 @@ +// .prettierrc.mjs +/** @type {import("prettier").Config} */ +export default { + plugins: ["prettier-plugin-astro"], + overrides: [ + { + files: "*.astro", + options: { + parser: "astro", + }, + }, + ], +}; diff --git a/web/astro.config.mjs b/web/astro.config.mjs index 1e8d329..73c479b 100644 --- a/web/astro.config.mjs +++ b/web/astro.config.mjs @@ -1,12 +1,15 @@ import { defineConfig } from "astro/config"; - import tailwind from "@astrojs/tailwind"; +import mdx from "@astrojs/mdx"; + // https://astro.build/config export default defineConfig({ + site: "https://www.vspace.one", integrations: [ tailwind({ applyBaseStyles: false, }), + mdx(), ], }); diff --git a/web/bun.lockb b/web/bun.lockb index 49026e5..535aa11 100755 Binary files a/web/bun.lockb and b/web/bun.lockb differ diff --git a/web/package.json b/web/package.json index 0c7e34a..871ca45 100644 --- a/web/package.json +++ b/web/package.json @@ -11,22 +11,31 @@ }, "dependencies": { "@astrojs/check": "^0.7.0", + "@astrojs/mdx": "^3.1.2", "@astrojs/tailwind": "^5.1.0", + "@astrojs/ts-plugin": "^1.8.0", + "@photo-sphere-viewer/core": "^5.8.1", + "@photo-sphere-viewer/markers-plugin": "^5.8.1", + "@photo-sphere-viewer/virtual-tour-plugin": "^5.8.1", "astro": "^4.11.3", "autoprefixer": "^10.4.19", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "ical": "^0.8.0", + "keen-slider": "^6.8.6", "marked": "^13.0.1", "motion": "^10.18.0", "postcss": "^8.4.38", "postcss-custom-media": "^10.0.6", "postcss-import": "^16.1.0", + "prettier-plugin-astro": "^0.14.0", "tailwind-merge": "^2.3.0", "tailwindcss": "^3.4.4", + "tailwindcss-animate": "^1.0.7", + "three": "^0.165.0", "typescript": "^5.5.2" }, "devDependencies": { "@types/ical": "^0.8.3" } -} \ No newline at end of file +} diff --git a/web/public/download/beitragsordnung_v1.0.pdf b/web/public/download/beitragsordnung_v1.0.pdf new file mode 100644 index 0000000..129e23d Binary files /dev/null and b/web/public/download/beitragsordnung_v1.0.pdf differ diff --git a/web/public/download/beitragsordnung_v1.1.pdf b/web/public/download/beitragsordnung_v1.1.pdf new file mode 100644 index 0000000..7af123d Binary files /dev/null and b/web/public/download/beitragsordnung_v1.1.pdf differ diff --git a/web/public/download/beitragsordnung_v1.2.pdf b/web/public/download/beitragsordnung_v1.2.pdf new file mode 100644 index 0000000..8b9af8f Binary files /dev/null and b/web/public/download/beitragsordnung_v1.2.pdf differ diff --git a/web/public/download/beitrittserklaerung_interactive_v1.1.pdf b/web/public/download/beitrittserklaerung_interactive_v1.1.pdf new file mode 100644 index 0000000..3c480d1 Binary files /dev/null and b/web/public/download/beitrittserklaerung_interactive_v1.1.pdf differ diff --git a/web/public/download/beitrittserklaerung_interactive_v1.2.pdf b/web/public/download/beitrittserklaerung_interactive_v1.2.pdf new file mode 100644 index 0000000..eee99ea Binary files /dev/null and b/web/public/download/beitrittserklaerung_interactive_v1.2.pdf differ diff --git a/web/public/download/beitrittserklaerung_interactive_v1.3.pdf b/web/public/download/beitrittserklaerung_interactive_v1.3.pdf new file mode 100644 index 0000000..37c516f Binary files /dev/null and b/web/public/download/beitrittserklaerung_interactive_v1.3.pdf differ diff --git a/web/public/download/beitrittserklaerung_v1.1.pdf b/web/public/download/beitrittserklaerung_v1.1.pdf new file mode 100644 index 0000000..f792438 Binary files /dev/null and b/web/public/download/beitrittserklaerung_v1.1.pdf differ diff --git a/web/public/download/beitrittserklaerung_v1.2.pdf b/web/public/download/beitrittserklaerung_v1.2.pdf new file mode 100644 index 0000000..b78e6c8 Binary files /dev/null and b/web/public/download/beitrittserklaerung_v1.2.pdf differ diff --git a/web/public/download/beitrittserklaerung_v1.3.pdf b/web/public/download/beitrittserklaerung_v1.3.pdf new file mode 100644 index 0000000..8c7fb93 Binary files /dev/null and b/web/public/download/beitrittserklaerung_v1.3.pdf differ diff --git a/web/public/download/raumordnung_2024.pdf b/web/public/download/raumordnung_2024.pdf new file mode 100755 index 0000000..40d4eda Binary files /dev/null and b/web/public/download/raumordnung_2024.pdf differ diff --git a/web/public/download/satzung_2022.pdf b/web/public/download/satzung_2022.pdf new file mode 100644 index 0000000..7fd4c47 Binary files /dev/null and b/web/public/download/satzung_2022.pdf differ diff --git a/web/public/download/satzung_2024.pdf b/web/public/download/satzung_2024.pdf new file mode 100755 index 0000000..1d15703 Binary files /dev/null and b/web/public/download/satzung_2024.pdf differ diff --git a/web/public/download/satzung_v1.0.pdf b/web/public/download/satzung_v1.0.pdf new file mode 100644 index 0000000..c6266ab Binary files /dev/null and b/web/public/download/satzung_v1.0.pdf differ diff --git a/web/public/download/satzung_v1.1.pdf b/web/public/download/satzung_v1.1.pdf new file mode 100644 index 0000000..65bbae3 Binary files /dev/null and b/web/public/download/satzung_v1.1.pdf differ diff --git a/web/public/favicon.png b/web/public/favicon.png new file mode 100644 index 0000000..9b573f8 Binary files /dev/null and b/web/public/favicon.png differ diff --git a/web/public/logo_vspaceone.png b/web/public/logo_vspaceone.png new file mode 100644 index 0000000..ba16e75 Binary files /dev/null and b/web/public/logo_vspaceone.png differ diff --git a/web/public/pic/.comments/ethernetcable-original.jpeg.xml b/web/public/pic/.comments/ethernetcable-original.jpeg.xml new file mode 100644 index 0000000..72a41a0 --- /dev/null +++ b/web/public/pic/.comments/ethernetcable-original.jpeg.xml @@ -0,0 +1,46 @@ + + + LAN cable + LAN cable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/public/pic/donation-qr-code.png b/web/public/pic/donation-qr-code.png new file mode 100644 index 0000000..abef3e5 Binary files /dev/null and b/web/public/pic/donation-qr-code.png differ diff --git a/web/public/pic/favicon/android-icon-144x144.png b/web/public/pic/favicon/android-icon-144x144.png new file mode 100644 index 0000000..55fcc5f Binary files /dev/null and b/web/public/pic/favicon/android-icon-144x144.png differ diff --git a/web/public/pic/favicon/android-icon-192x192.png b/web/public/pic/favicon/android-icon-192x192.png new file mode 100644 index 0000000..7e4095a Binary files /dev/null and b/web/public/pic/favicon/android-icon-192x192.png differ diff --git a/web/public/pic/favicon/android-icon-36x36.png b/web/public/pic/favicon/android-icon-36x36.png new file mode 100644 index 0000000..b3fa23c Binary files /dev/null and b/web/public/pic/favicon/android-icon-36x36.png differ diff --git a/web/public/pic/favicon/android-icon-48x48.png b/web/public/pic/favicon/android-icon-48x48.png new file mode 100644 index 0000000..52c8d50 Binary files /dev/null and b/web/public/pic/favicon/android-icon-48x48.png differ diff --git a/web/public/pic/favicon/android-icon-72x72.png b/web/public/pic/favicon/android-icon-72x72.png new file mode 100644 index 0000000..8abe7e4 Binary files /dev/null and b/web/public/pic/favicon/android-icon-72x72.png differ diff --git a/web/public/pic/favicon/android-icon-96x96.png b/web/public/pic/favicon/android-icon-96x96.png new file mode 100644 index 0000000..9b2974a Binary files /dev/null and b/web/public/pic/favicon/android-icon-96x96.png differ diff --git a/web/public/pic/favicon/apple-icon-114x114.png b/web/public/pic/favicon/apple-icon-114x114.png new file mode 100644 index 0000000..8658d61 Binary files /dev/null and b/web/public/pic/favicon/apple-icon-114x114.png differ diff --git a/web/public/pic/favicon/apple-icon-120x120.png b/web/public/pic/favicon/apple-icon-120x120.png new file mode 100644 index 0000000..c287868 Binary files /dev/null and b/web/public/pic/favicon/apple-icon-120x120.png differ diff --git a/web/public/pic/favicon/apple-icon-144x144.png b/web/public/pic/favicon/apple-icon-144x144.png new file mode 100644 index 0000000..55fcc5f Binary files /dev/null and b/web/public/pic/favicon/apple-icon-144x144.png differ diff --git a/web/public/pic/favicon/apple-icon-152x152.png b/web/public/pic/favicon/apple-icon-152x152.png new file mode 100644 index 0000000..9443f8a Binary files /dev/null and b/web/public/pic/favicon/apple-icon-152x152.png differ diff --git a/web/public/pic/favicon/apple-icon-180x180.png b/web/public/pic/favicon/apple-icon-180x180.png new file mode 100644 index 0000000..10668eb Binary files /dev/null and b/web/public/pic/favicon/apple-icon-180x180.png differ diff --git a/web/public/pic/favicon/apple-icon-57x57.png b/web/public/pic/favicon/apple-icon-57x57.png new file mode 100644 index 0000000..440fb02 Binary files /dev/null and b/web/public/pic/favicon/apple-icon-57x57.png differ diff --git a/web/public/pic/favicon/apple-icon-60x60.png b/web/public/pic/favicon/apple-icon-60x60.png new file mode 100644 index 0000000..c7e59c4 Binary files /dev/null and b/web/public/pic/favicon/apple-icon-60x60.png differ diff --git a/web/public/pic/favicon/apple-icon-72x72.png b/web/public/pic/favicon/apple-icon-72x72.png new file mode 100644 index 0000000..8abe7e4 Binary files /dev/null and b/web/public/pic/favicon/apple-icon-72x72.png differ diff --git a/web/public/pic/favicon/apple-icon-76x76.png b/web/public/pic/favicon/apple-icon-76x76.png new file mode 100644 index 0000000..17d6924 Binary files /dev/null and b/web/public/pic/favicon/apple-icon-76x76.png differ diff --git a/web/public/pic/favicon/apple-icon-precomposed.png b/web/public/pic/favicon/apple-icon-precomposed.png new file mode 100644 index 0000000..d89886a Binary files /dev/null and b/web/public/pic/favicon/apple-icon-precomposed.png differ diff --git a/web/public/pic/favicon/apple-icon.png b/web/public/pic/favicon/apple-icon.png new file mode 100644 index 0000000..d89886a Binary files /dev/null and b/web/public/pic/favicon/apple-icon.png differ diff --git a/web/public/pic/favicon/browserconfig.xml b/web/public/pic/favicon/browserconfig.xml new file mode 100644 index 0000000..c554148 --- /dev/null +++ b/web/public/pic/favicon/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/web/public/pic/favicon/favicon-16x16.png b/web/public/pic/favicon/favicon-16x16.png new file mode 100644 index 0000000..119c741 Binary files /dev/null and b/web/public/pic/favicon/favicon-16x16.png differ diff --git a/web/public/pic/favicon/favicon-32x32.png b/web/public/pic/favicon/favicon-32x32.png new file mode 100644 index 0000000..c3579ac Binary files /dev/null and b/web/public/pic/favicon/favicon-32x32.png differ diff --git a/web/public/pic/favicon/favicon-96x96.png b/web/public/pic/favicon/favicon-96x96.png new file mode 100644 index 0000000..9b2974a Binary files /dev/null and b/web/public/pic/favicon/favicon-96x96.png differ diff --git a/web/public/pic/favicon/favicon.ico b/web/public/pic/favicon/favicon.ico new file mode 100644 index 0000000..50a2bb7 Binary files /dev/null and b/web/public/pic/favicon/favicon.ico differ diff --git a/web/public/pic/favicon/manifest.json b/web/public/pic/favicon/manifest.json new file mode 100644 index 0000000..013d4a6 --- /dev/null +++ b/web/public/pic/favicon/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "\/android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "\/android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "\/android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "\/android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "\/android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "\/android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} \ No newline at end of file diff --git a/web/public/pic/favicon/ms-icon-144x144.png b/web/public/pic/favicon/ms-icon-144x144.png new file mode 100644 index 0000000..55fcc5f Binary files /dev/null and b/web/public/pic/favicon/ms-icon-144x144.png differ diff --git a/web/public/pic/favicon/ms-icon-150x150.png b/web/public/pic/favicon/ms-icon-150x150.png new file mode 100644 index 0000000..7dc0416 Binary files /dev/null and b/web/public/pic/favicon/ms-icon-150x150.png differ diff --git a/web/public/pic/favicon/ms-icon-310x310.png b/web/public/pic/favicon/ms-icon-310x310.png new file mode 100644 index 0000000..5802cf3 Binary files /dev/null and b/web/public/pic/favicon/ms-icon-310x310.png differ diff --git a/web/public/pic/favicon/ms-icon-70x70.png b/web/public/pic/favicon/ms-icon-70x70.png new file mode 100644 index 0000000..a8d06c8 Binary files /dev/null and b/web/public/pic/favicon/ms-icon-70x70.png differ diff --git a/web/public/pic/logo_vspaceone.svg b/web/public/pic/logo_vspaceone.svg new file mode 100644 index 0000000..c44d837 --- /dev/null +++ b/web/public/pic/logo_vspaceone.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/web/public/pic/logos/Matrix.svg b/web/public/pic/logos/Matrix.svg new file mode 100644 index 0000000..de7039f --- /dev/null +++ b/web/public/pic/logos/Matrix.svg @@ -0,0 +1,9 @@ + + + Matrix (protocol) logo + + + + + + \ No newline at end of file diff --git a/web/public/pic/logos/logo_VOW_klein.gif b/web/public/pic/logos/logo_VOW_klein.gif new file mode 100644 index 0000000..fe6902a Binary files /dev/null and b/web/public/pic/logos/logo_VOW_klein.gif differ diff --git a/web/public/pic/logos/logo_freifunk.png b/web/public/pic/logos/logo_freifunk.png new file mode 100644 index 0000000..5f549de Binary files /dev/null and b/web/public/pic/logos/logo_freifunk.png differ diff --git a/web/public/pic/logos/logo_freifunk_bw.png b/web/public/pic/logos/logo_freifunk_bw.png new file mode 100644 index 0000000..d415664 Binary files /dev/null and b/web/public/pic/logos/logo_freifunk_bw.png differ diff --git a/web/public/pic/logos/logo_lug-vs.png b/web/public/pic/logos/logo_lug-vs.png new file mode 100644 index 0000000..472b8ef Binary files /dev/null and b/web/public/pic/logos/logo_lug-vs.png differ diff --git a/web/public/pic/logos/logo_lug-vs_bw.png b/web/public/pic/logos/logo_lug-vs_bw.png new file mode 100644 index 0000000..2b6d126 Binary files /dev/null and b/web/public/pic/logos/logo_lug-vs_bw.png differ diff --git a/web/public/pic/mainboard-original.jpg b/web/public/pic/mainboard-original.jpg new file mode 100644 index 0000000..e6df33c Binary files /dev/null and b/web/public/pic/mainboard-original.jpg differ diff --git a/web/public/pic/mainboard.jpg b/web/public/pic/mainboard.jpg new file mode 100644 index 0000000..933b514 Binary files /dev/null and b/web/public/pic/mainboard.jpg differ diff --git a/web/public/pic/panorama/bruecke_big.jpg b/web/public/pic/panorama/bruecke_big.jpg new file mode 100644 index 0000000..7b1c0b0 Binary files /dev/null and b/web/public/pic/panorama/bruecke_big.jpg differ diff --git a/web/public/pic/panorama/bruecke_half.jpg b/web/public/pic/panorama/bruecke_half.jpg new file mode 100644 index 0000000..85dd24b Binary files /dev/null and b/web/public/pic/panorama/bruecke_half.jpg differ diff --git a/web/public/pic/panorama/bruecke_quarter.jpg b/web/public/pic/panorama/bruecke_quarter.jpg new file mode 100644 index 0000000..6866e26 Binary files /dev/null and b/web/public/pic/panorama/bruecke_quarter.jpg differ diff --git a/web/public/pic/panorama/labor_big.jpg b/web/public/pic/panorama/labor_big.jpg new file mode 100644 index 0000000..f38ee20 Binary files /dev/null and b/web/public/pic/panorama/labor_big.jpg differ diff --git a/web/public/pic/panorama/labor_half.jpg b/web/public/pic/panorama/labor_half.jpg new file mode 100644 index 0000000..db9c632 Binary files /dev/null and b/web/public/pic/panorama/labor_half.jpg differ diff --git a/web/public/pic/panorama/labor_quarter.jpg b/web/public/pic/panorama/labor_quarter.jpg new file mode 100644 index 0000000..0667e76 Binary files /dev/null and b/web/public/pic/panorama/labor_quarter.jpg differ diff --git a/web/public/pic/panorama/maschinenraum_big.jpg b/web/public/pic/panorama/maschinenraum_big.jpg new file mode 100644 index 0000000..3ef353e Binary files /dev/null and b/web/public/pic/panorama/maschinenraum_big.jpg differ diff --git a/web/public/pic/panorama/maschinenraum_half.jpg b/web/public/pic/panorama/maschinenraum_half.jpg new file mode 100644 index 0000000..96410db Binary files /dev/null and b/web/public/pic/panorama/maschinenraum_half.jpg differ diff --git a/web/public/pic/panorama/maschinenraum_quarter.jpg b/web/public/pic/panorama/maschinenraum_quarter.jpg new file mode 100644 index 0000000..a358a6c Binary files /dev/null and b/web/public/pic/panorama/maschinenraum_quarter.jpg differ diff --git a/web/public/pic/sponsors/netcup_logo_RGB_color.svg b/web/public/pic/sponsors/netcup_logo_RGB_color.svg new file mode 100755 index 0000000..f5f22fb --- /dev/null +++ b/web/public/pic/sponsors/netcup_logo_RGB_color.svg @@ -0,0 +1 @@ +netcup_logo_color \ No newline at end of file diff --git a/web/public/pic/sponsors/undraw_businessman_re_mlee.svg b/web/public/pic/sponsors/undraw_businessman_re_mlee.svg new file mode 100644 index 0000000..830bb7c --- /dev/null +++ b/web/public/pic/sponsors/undraw_businessman_re_mlee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/public/pic/vspaceone_4bit_adder.JPG b/web/public/pic/vspaceone_4bit_adder.JPG new file mode 100644 index 0000000..98bd850 Binary files /dev/null and b/web/public/pic/vspaceone_4bit_adder.JPG differ diff --git a/web/public/pic/vspaceone_4bit_adder_small.jpg b/web/public/pic/vspaceone_4bit_adder_small.jpg new file mode 100644 index 0000000..e2960d1 Binary files /dev/null and b/web/public/pic/vspaceone_4bit_adder_small.jpg differ diff --git a/web/public/pic/vspaceone_arbeitsplatz3.jpg b/web/public/pic/vspaceone_arbeitsplatz3.jpg new file mode 100644 index 0000000..20f0489 Binary files /dev/null and b/web/public/pic/vspaceone_arbeitsplatz3.jpg differ diff --git a/web/public/pic/vspaceone_ausstattung_1.jpg b/web/public/pic/vspaceone_ausstattung_1.jpg new file mode 100644 index 0000000..c7077ea Binary files /dev/null and b/web/public/pic/vspaceone_ausstattung_1.jpg differ diff --git a/web/public/pic/vspaceone_ausstattung_2.jpg b/web/public/pic/vspaceone_ausstattung_2.jpg new file mode 100644 index 0000000..7f3ff7f Binary files /dev/null and b/web/public/pic/vspaceone_ausstattung_2.jpg differ diff --git a/web/public/pic/vspaceone_ausstattung_3.jpg b/web/public/pic/vspaceone_ausstattung_3.jpg new file mode 100644 index 0000000..e16da6d Binary files /dev/null and b/web/public/pic/vspaceone_ausstattung_3.jpg differ diff --git a/web/public/pic/vspaceone_ausstattung_4.jpg b/web/public/pic/vspaceone_ausstattung_4.jpg new file mode 100644 index 0000000..e0c92c0 Binary files /dev/null and b/web/public/pic/vspaceone_ausstattung_4.jpg differ diff --git a/web/public/pic/vspaceone_big_psu.JPG b/web/public/pic/vspaceone_big_psu.JPG new file mode 100644 index 0000000..b5edb6c Binary files /dev/null and b/web/public/pic/vspaceone_big_psu.JPG differ diff --git a/web/public/pic/vspaceone_big_psu_small.jpg b/web/public/pic/vspaceone_big_psu_small.jpg new file mode 100644 index 0000000..20d80a8 Binary files /dev/null and b/web/public/pic/vspaceone_big_psu_small.jpg differ diff --git a/web/public/pic/vspaceone_bruecke_1.jpg b/web/public/pic/vspaceone_bruecke_1.jpg new file mode 100644 index 0000000..f68d78c Binary files /dev/null and b/web/public/pic/vspaceone_bruecke_1.jpg differ diff --git a/web/public/pic/vspaceone_cap_drawers.JPG b/web/public/pic/vspaceone_cap_drawers.JPG new file mode 100644 index 0000000..c5259e0 Binary files /dev/null and b/web/public/pic/vspaceone_cap_drawers.JPG differ diff --git a/web/public/pic/vspaceone_cap_drawers_small.jpg b/web/public/pic/vspaceone_cap_drawers_small.jpg new file mode 100644 index 0000000..418d44b Binary files /dev/null and b/web/public/pic/vspaceone_cap_drawers_small.jpg differ diff --git a/web/public/pic/vspaceone_drawer_wall.JPG b/web/public/pic/vspaceone_drawer_wall.JPG new file mode 100644 index 0000000..18c4815 Binary files /dev/null and b/web/public/pic/vspaceone_drawer_wall.JPG differ diff --git a/web/public/pic/vspaceone_drawer_wall_small.jpg b/web/public/pic/vspaceone_drawer_wall_small.jpg new file mode 100644 index 0000000..ed5bdfd Binary files /dev/null and b/web/public/pic/vspaceone_drawer_wall_small.jpg differ diff --git a/web/public/pic/vspaceone_elektronik.jpg b/web/public/pic/vspaceone_elektronik.jpg new file mode 100644 index 0000000..03fea7e Binary files /dev/null and b/web/public/pic/vspaceone_elektronik.jpg differ diff --git a/web/public/pic/vspaceone_gemeinschaft.jpg b/web/public/pic/vspaceone_gemeinschaft.jpg new file mode 100644 index 0000000..6d0cbff Binary files /dev/null and b/web/public/pic/vspaceone_gemeinschaft.jpg differ diff --git a/web/public/pic/vspaceone_holzundmetall.jpg b/web/public/pic/vspaceone_holzundmetall.jpg new file mode 100644 index 0000000..017e678 Binary files /dev/null and b/web/public/pic/vspaceone_holzundmetall.jpg differ diff --git a/web/public/pic/vspaceone_maschinenraum.jpg b/web/public/pic/vspaceone_maschinenraum.jpg new file mode 100644 index 0000000..12af2b9 Binary files /dev/null and b/web/public/pic/vspaceone_maschinenraum.jpg differ diff --git a/web/public/pic/vspaceone_motoren.JPG b/web/public/pic/vspaceone_motoren.JPG new file mode 100644 index 0000000..8485bae Binary files /dev/null and b/web/public/pic/vspaceone_motoren.JPG differ diff --git a/web/public/pic/vspaceone_motoren_small.jpg b/web/public/pic/vspaceone_motoren_small.jpg new file mode 100644 index 0000000..ef77939 Binary files /dev/null and b/web/public/pic/vspaceone_motoren_small.jpg differ diff --git a/web/public/pic/vspaceone_prusa_mk3s.JPG b/web/public/pic/vspaceone_prusa_mk3s.JPG new file mode 100644 index 0000000..fcdfd57 Binary files /dev/null and b/web/public/pic/vspaceone_prusa_mk3s.JPG differ diff --git a/web/public/pic/vspaceone_prusa_mk3s_small.jpg b/web/public/pic/vspaceone_prusa_mk3s_small.jpg new file mode 100644 index 0000000..dc55cbf Binary files /dev/null and b/web/public/pic/vspaceone_prusa_mk3s_small.jpg differ diff --git a/web/public/pic/vspaceone_scope.JPG b/web/public/pic/vspaceone_scope.JPG new file mode 100644 index 0000000..ca7ae3a Binary files /dev/null and b/web/public/pic/vspaceone_scope.JPG differ diff --git a/web/public/pic/vspaceone_scope_small.jpg b/web/public/pic/vspaceone_scope_small.jpg new file mode 100644 index 0000000..020c7ae Binary files /dev/null and b/web/public/pic/vspaceone_scope_small.jpg differ diff --git a/web/scripts/build-map.ts b/web/scripts/build-map.ts new file mode 100644 index 0000000..e69de29 diff --git a/web/src/components/Button.astro b/web/src/components/Button.astro index 1e7dd08..786bed9 100644 --- a/web/src/components/Button.astro +++ b/web/src/components/Button.astro @@ -4,43 +4,43 @@ import { cva, type VariantProps } from "class-variance-authority"; import { cn } from "@/lib/utils"; export const button = cva( - cn( - "inline-flex items-center justify-center rounded-md text-sm font-medium", - "transition-colors focus-visible:outline-none", - "ring-main focus-visible:ring-2 focus-visible:ring-ring", - "focus-visible:ring-offset-2 disabled:opacity-50", - "disabled:pointer-events-none ring-offset-background" - ), - { - variants: { - variant: { - default: "bg-main text-neutral hocus:bg-main/80", - primary: - "bg-primary dark:bg-primary/50 text-neutral dark:text-main hocus:bg-primary/80 dark:hocus:bg-primary/80", - destructive: - "bg-error text-destructive-foreground hocus:bg-destructive/90", - outline: - "border border-input hover:bg-accent hover:text-accent-foreground", - secondary: "bg-main/10 text-main hocus:bg-main/20", - ghost: "hocus:bg-accent hocus:text-accent-foreground", - link: "underline-offset-4 hocus:underline text-primary", - }, - size: { - default: "h-10 text-base py-2 px-4", - sm: "h-9 px-3 rounded-md", - lg: "h-11 px-8 rounded-md", - }, - }, - } + cn( + "inline-flex items-center justify-center rounded-md text-sm font-medium", + "transition-colors focus-visible:outline-none no-underline", + "ring-main focus-visible:ring-2 focus-visible:ring-ring", + "focus-visible:ring-offset-2 disabled:opacity-50", + "disabled:pointer-events-none ring-offset-background" + ), + { + variants: { + variant: { + default: "bg-main text-neutral hocus:bg-main/80", + primary: + "bg-primary dark:bg-primary/50 text-neutral dark:text-main hocus:bg-primary/80 dark:hocus:bg-primary/80", + destructive: + "bg-error text-destructive-foreground hocus:bg-destructive/90", + outline: + "border border-input hover:bg-accent hover:text-accent-foreground", + secondary: "bg-main/10 text-main hocus:bg-main/20", + ghost: "hocus:bg-accent hocus:text-accent-foreground", + link: "underline-offset-4 hocus:underline text-primary", + }, + size: { + default: "h-10 text-base py-2 px-4", + sm: "h-9 px-3 rounded-md", + lg: "h-14 text-lg px-8 rounded-md", + }, + }, + } ); export interface Props - extends HTMLAttributes<"button">, - VariantProps {} + extends HTMLAttributes<"button">, + VariantProps {} const { variant = "default", size = "default", ...props } = Astro.props; --- diff --git a/web/src/components/Card.astro b/web/src/components/Card.astro index 973b8bd..8b8da17 100644 --- a/web/src/components/Card.astro +++ b/web/src/components/Card.astro @@ -7,7 +7,7 @@ const card = cva( { variants: { interactable: { - false: "transition-shadow focus-within:shadow-lg ring-2 ring-neutral", + false: "transition-shadow focus-within:shadow-lg ring-2 ring-main", true: "cursor-pointer shadow-sm hocus:bg-neutral-accent/50 \ hocus:shadow-lg hocus:ring-2 hocus:outline-none", }, diff --git a/web/src/components/Cards/CardFaq.astro b/web/src/components/Cards/CardFaq.astro new file mode 100644 index 0000000..63e234c --- /dev/null +++ b/web/src/components/Cards/CardFaq.astro @@ -0,0 +1,14 @@ +--- +import Card from "../Card.astro"; + +type Props = { + title: string; +}; + +const { title } = Astro.props; +--- + + +

{title}

+ +
diff --git a/web/src/components/Cards/CardSponsor.astro b/web/src/components/Cards/CardSponsor.astro new file mode 100644 index 0000000..e322763 --- /dev/null +++ b/web/src/components/Cards/CardSponsor.astro @@ -0,0 +1,19 @@ +--- +import type { z } from "astro:content"; +import { Sponsor } from "@/content/config"; +import Card from "../Card.astro"; + +type Props = { + sponsor: z.output; +}; + +const { sponsor } = Astro.props; +--- + + +
+ +
+

{sponsor.name}

+ +
diff --git a/web/src/components/Layout/Footer.astro b/web/src/components/Layout/Footer.astro index f7f9522..29071a5 100644 --- a/web/src/components/Layout/Footer.astro +++ b/web/src/components/Layout/Footer.astro @@ -25,31 +25,86 @@ type NavigationGroup = { const tree: Array = [ { - title: "Overview", + title: "Übersicht", items: [ { path: "/", type: NavigationItemType.Link, - label: "Landing", + label: "Startseite", + }, + + { + path: "/faq", + type: NavigationItemType.Link, + label: "FAQ", + }, + ], + }, + {title: "Unterstützung", + items: [ + { + path: "/support/donate", + type: NavigationItemType.Link, + label: "Spenden", }, { - path: "https://github.com/tempblade/creator", + path: "/support/sponsor", type: NavigationItemType.Link, - label: "GitHub", + label: "Sponsoren", }, { - path: "https://tempblade.com", + path: "/support/join", + type: NavigationItemType.Link, + label: "Werde Mitglied!", + }, + ] + }, + { + title: "Nützliches", + items: [ + { + path: "/downloads", + label: "Downloads", + type: NavigationItemType.Link, + }, + { + path: "https://wiki.vspace.one", + label: "Wiki", type: NavigationItemType.Link, - label: "tempblade", }, ], }, { - title: "Legal", + title: "Rechtliches", items: [ { path: "/legal/imprint", - label: "Imprint", + label: "Impressum", + type: NavigationItemType.Link, + }, + { + path: "/legal/privacy", + label: "Datenschutzerklärung", + type: NavigationItemType.Link, + }, + ], + }, + { + title: "Soziales", + items: [ + { + path: "https://github.com/vspaceone", + label: "GitHub", + type: NavigationItemType.Link, + }, + { + path: "https://t.me/joinchat/DmNdswpnKgox_zzqENYXiA", + label: "Telegram", + type: NavigationItemType.Link, + }, + { + path: "https://matrix.to/#/#vspaceone-general:matrix.org", + label: "Matrix", type: NavigationItemType.Link, }, ], diff --git a/web/src/components/Layout/Header.astro b/web/src/components/Layout/Header.astro index 03f3579..828e933 100644 --- a/web/src/components/Layout/Header.astro +++ b/web/src/components/Layout/Header.astro @@ -1,17 +1,26 @@ --- import { button } from "../Button.astro"; -import Logo from "components/Logo/Logo.astro"; --- -
+ diff --git a/web/src/components/Logo/Logo.astro b/web/src/components/Logo/Logo.astro index 70ea964..23c1db2 100644 --- a/web/src/components/Logo/Logo.astro +++ b/web/src/components/Logo/Logo.astro @@ -1,5 +1,6 @@ +
+ + + diff --git a/web/src/components/VirtualTour.astro b/web/src/components/VirtualTour.astro new file mode 100644 index 0000000..fa02268 --- /dev/null +++ b/web/src/components/VirtualTour.astro @@ -0,0 +1,77 @@ +--- +import "@photo-sphere-viewer/core/index.css"; +--- + +
+
+
+ + diff --git a/web/src/content/config.ts b/web/src/content/config.ts index 89bb0ce..0e4b50e 100644 --- a/web/src/content/config.ts +++ b/web/src/content/config.ts @@ -1,13 +1,26 @@ import { z, defineCollection } from 'astro:content'; +export const Faq = z.object({ + title: z.string() +}) + const faqCollection = defineCollection({ type: 'content', - schema: z.object({ - title: z.string(), - }), + schema: Faq }); +export const Sponsor = z.object({ + name: z.string(), + logo: z.string() +}); + +const sponsorCollection = defineCollection({ + type: "content", + schema: Sponsor +}) + export const collections = { - faq: faqCollection + faq: faqCollection, + sponsors: sponsorCollection } \ No newline at end of file diff --git a/web/src/content/faq/was-macht-ihr.md b/web/src/content/faq/was-macht-ihr.md new file mode 100644 index 0000000..c5f97dd --- /dev/null +++ b/web/src/content/faq/was-macht-ihr.md @@ -0,0 +1,4 @@ +--- +title: Was macht ihr nun? +--- +Unser Ziel ist der Wissensaustausch sowie die Bildung aller interessierten in den Bereichen neuartiger computergestützter Technologien (wie zum Beispiel aber nicht ausschließlich 3D-­Druck, CNC, Internet der Dinge und Robotik), der Elektrotechnik und Elektronik sowie auf dem Gebiet der Reparatur und Wartung. Natürlich aber auch ganz im Sinne aller anderen Hacker- und Makerspaces das bieten einer Plattform, um seinen Interessen in diesen Gebieten nachzugehen. \ No newline at end of file diff --git a/web/src/content/faq/wo-finde-ich-euch.md b/web/src/content/faq/wo-finde-ich-euch.md new file mode 100644 index 0000000..aa56a1c --- /dev/null +++ b/web/src/content/faq/wo-finde-ich-euch.md @@ -0,0 +1,4 @@ +--- +title: Wo finde ich euch? +--- +Die Antwort auf diese Frage sollte [hier auf der Website immer aktuell sein]("/#standort"). \ No newline at end of file diff --git a/web/src/content/info-slides.ts b/web/src/content/info-slides.ts new file mode 100644 index 0000000..2ead236 --- /dev/null +++ b/web/src/content/info-slides.ts @@ -0,0 +1,38 @@ +type InfoSlide = { + title: string; + text: string; + imageSrc: string; +}; + +export const infoSlides: Array = [ + { + title: "Gemeinsam zum Ziel", + text: "Sich gegenseitig motivieren, inspirieren, helfen und voneinander lernen. Manches macht gemeinsam einfach mehr Spaß!", + imageSrc: "pic/vspaceone_gemeinschaft.jpg", + }, + { + title: "3D Druck", + text: "Unser neuer Prusa i3 MK3s liefert dank zahlreicher Voreinstellungen und ausgeklügelter Features selbst nach kurzen Einweisungen in schnellster Zeit zu Ergebnissen die sich sehen lassen können.", + imageSrc: "pic/vspaceone_prusa_mk3s_small.jpg", + }, + { + title: "Elektronik", + text: "Der Elektronikarbeitsplatz lädt zum Hacken ein. Stets zur Hand sind Lötkolben, Heißluftstation, Multimeter, Labornetzteile, digitales Oszilloskop sowie ein Haufen Zubehör und natürlich Kabel.", + imageSrc: "pic/vspaceone_big_psu_small.jpg", + }, + { + title: "Reparatur", + text: "Eine Wand voll mit sortierten Elektronikkomponenten bietet die Qual der Wahl von üblicherweise benötigen Bauteile wie Widerstände oder Kondensatoren.", + imageSrc: "pic/vspaceone_drawer_wall_small.jpg", + }, + { + title: "Holz und Metall", + text: "Unsere noch nicht allzu große, aber ständig wachsende, Ausstattung an Werkzeug und Maschinen steht jederzeit für große und kleine Projekte in unseren Räumen bereit.", + imageSrc: "pic/vspaceone_holzundmetall.jpg", + }, + { + title: "Ausstattung", + text: "Wir haben drei moderne Räume. In der Brücke stehen bequeme Sofas, ein Beamer und ein Kühlschrank. Im Maschinenraum, kann an dank unserer vieler Maschinen an größeren Projekten gearbeitet werden. Das Labor ist mit einem großzügigen Elektronikarbeitsplatz ausgestattet.", + imageSrc: "pic/vspaceone_maschinenraum.jpg", + }, +]; diff --git a/web/src/content/sponsors/netcup.md b/web/src/content/sponsors/netcup.md new file mode 100644 index 0000000..cf3d5c0 --- /dev/null +++ b/web/src/content/sponsors/netcup.md @@ -0,0 +1,6 @@ +--- +name: netcup +logo: /pic/sponsors/netcup_logo_RGB_color.svg +--- + +[netcup.de – Ihr Ansprechpartner für qualitatives Webhosting, Servermanagement, Colocation und weitere Internetdienstleistungen]("https://netcup.de") für einen erfolgreichen, zuverlässigen und sicheren Internetauftritt. diff --git a/web/src/layouts/MainLayout.astro b/web/src/layouts/MainLayout.astro new file mode 100644 index 0000000..8636dba --- /dev/null +++ b/web/src/layouts/MainLayout.astro @@ -0,0 +1,25 @@ +--- +const anim = { + old: { + name: "pageLeave", + duration: "0s", + easing: "ease-out", + fillMode: "backwards", + }, + new: { + name: "pageEnter", + duration: "0.7s", + easing: "cubic-bezier(0.23, 1, 0.32, 1)", + fillMode: "forwards", + }, +}; + +const slideAnimation = { + forwards: anim, + backwards: anim, +}; +--- + +
+ +
diff --git a/web/src/layouts/MarkdownLayout.astro b/web/src/layouts/MarkdownLayout.astro new file mode 100644 index 0000000..08b8a9b --- /dev/null +++ b/web/src/layouts/MarkdownLayout.astro @@ -0,0 +1,16 @@ +--- +import "@/styles/markdown.css"; +import Section from "@/components/Section.astro"; +import MainLayout from "./MainLayout.astro"; +import RootLayout from "./RootLayout.astro"; + +const { frontmatter } = Astro.props; +--- + + + +
+ +
+
+
diff --git a/web/src/layouts/RootLayout.astro b/web/src/layouts/RootLayout.astro index 5b77e42..3f309a1 100644 --- a/web/src/layouts/RootLayout.astro +++ b/web/src/layouts/RootLayout.astro @@ -2,6 +2,8 @@ import Footer from "@/components/Layout/Footer.astro"; import Header from "@/components/Layout/Header.astro"; import "@/styles/global.css"; +import "keen-slider/keen-slider.min.css"; +import { ViewTransitions } from "astro:transitions"; export interface Props { title: string; @@ -24,6 +26,7 @@ const { title } = Astro.props; src="https://analytics.unom.io/js/plausible.js"> {title} +
diff --git a/web/src/lib/events-api.ts b/web/src/lib/events-api.ts index d401386..58680fb 100644 --- a/web/src/lib/events-api.ts +++ b/web/src/lib/events-api.ts @@ -2,10 +2,10 @@ import ICal from "ical"; const CALENDAR_ICAL_URL = "https://hub.vspace.one/remote.php/dav/public-calendars/f6MfGLnsGScRqd4Y?export"; -const CALENDAR_URL = "https://hub.vspace.one/apps/calendar/p/f6MfGLnsGScRqd4Y"; +//const CALENDAR_URL = "https://hub.vspace.one/apps/calendar/p/f6MfGLnsGScRqd4Y"; // Only look at this much next occurences, to prevent infinite loop -const RECURRING_EVENT_LOOK_FORWARD = 5; +//const RECURRING_EVENT_LOOK_FORWARD = 5; const DESIGNATOR_LINK = "Link"; const DESIGNATOR_DOWNLOAD = "Download"; @@ -93,10 +93,12 @@ export async function getEvents() { const isRecurring = !!e.rrule; + // console.log(e.description); + if (e.description) { const lines = e.description.split("\n"); - for (let line in lines) { + for (let line of lines) { const designator = line.substring(0, line.search(":")); switch (designator) { diff --git a/web/src/pages/downloads.mdx b/web/src/pages/downloads.mdx new file mode 100644 index 0000000..47bc3d1 --- /dev/null +++ b/web/src/pages/downloads.mdx @@ -0,0 +1,14 @@ +--- +layout: ../layouts/MarkdownLayout.astro +title: Downloads +--- + +import Heading from "@/components/Heading.astro"; + +Downloads + +- [Satzung](download/satzung_2024.pdf) +- [Beitragsordnung](download/beitragsordnung_v1.2.pdf) +- [Raumordnung](download/raumordnung_2024.pdf) +- [Beitrittserklärung](download/beitrittserklaerung_v1.3.pdf) +- [Beitrittserklärung (interaktives pdf)](download/beitrittserklaerung_interactive_v1.3.pdf) diff --git a/web/src/pages/faq.astro b/web/src/pages/faq.astro index 3825ca4..7e661c3 100644 --- a/web/src/pages/faq.astro +++ b/web/src/pages/faq.astro @@ -1,5 +1,8 @@ --- +import CardFaq from "@/components/Cards/CardFaq.astro"; +import Heading from "@/components/Heading.astro"; import Section from "@/components/Section.astro"; +import MainLayout from "@/layouts/MainLayout.astro"; import RootLayout from "@/layouts/RootLayout.astro"; import { getCollection } from "astro:content"; @@ -9,19 +12,23 @@ const content = await Promise.all(faqs.map(async (e) => e.render())); --- -
+
- { - faqs.map((faq, index) => { - const { Content } = content[index]!; - return ( -
-

{faq.data.title}

- -
- ); - }) - } + Häufig gestellte Fragen
-
+
+
+ { + faqs.map((faq, index) => { + const { Content } = content[index]!; + return ( + + + + ); + }) + } +
+
+
diff --git a/web/src/pages/index.astro b/web/src/pages/index.astro index bb7476f..24dca06 100644 --- a/web/src/pages/index.astro +++ b/web/src/pages/index.astro @@ -6,13 +6,16 @@ import Introduction from "@/sections/Introduction.astro"; import SpaceState from "@/sections/SpaceState.astro"; import Participate from "@/sections/Participate.astro"; import Events from "@/sections/Events.astro"; +import Location from "@/sections/Location.astro"; +import MainLayout from "@/layouts/MainLayout.astro"; +import InfoSlideshow from "@/sections/InfoSlideshow.astro"; --- -
-
+ +
@@ -21,9 +24,17 @@ import Events from "@/sections/Events.astro";
+
+ +
- -
+
+ +
+
+ +
+
diff --git a/web/src/pages/legal/imprint.mdx b/web/src/pages/legal/imprint.mdx new file mode 100644 index 0000000..8a9ead2 --- /dev/null +++ b/web/src/pages/legal/imprint.mdx @@ -0,0 +1,36 @@ +--- +layout: ../../layouts/MarkdownLayout.astro +title: Impressum +--- +import Heading from "@/components/Heading.astro"; + +Impressum + +## Angaben gemäß § 5 TMG + +vspace.one e.V. +Am Krebsgraben 15 (Gebäude 8) +78048 Villingen + +## Vertreten durch + +Damian Jesionek, Linus Dold, Nikolai Müller, Moritz Klaiber + +## Kontakt + +Telefon: 07721 2968141 +E-Mail: vorstand [at] vspace.one + +## Datenschutzerklärung + +Es gilt die folgende [Datenschutzerklärung]("/legal/privacy") + +## Registereintrag + +Eintragung im Vereinsregister. +Registergericht: Amtsgericht Freiburg +Registernummer: VR 701636 + +Steuernummer: 22102/71153 + +Quelle: [eRecht24]("https://www.e-recht24.de") \ No newline at end of file diff --git a/web/src/pages/legal/privacy.mdx b/web/src/pages/legal/privacy.mdx new file mode 100644 index 0000000..eafe986 --- /dev/null +++ b/web/src/pages/legal/privacy.mdx @@ -0,0 +1,283 @@ +--- +layout: ../../layouts/MarkdownLayout.astro +title: Datenschutzerklärung +--- + +import Heading from "@/components/Heading.astro"; + +Datenschutzerklärung + +Wir freuen uns sehr über Ihr Interesse an unserem Unternehmen. Datenschutz hat einen besonders hohen Stellenwert für die Geschäftsleitung der vspace.one e.V.. Eine Nutzung der Internetseiten der vspace.one e.V. ist grundsätzlich ohne jede Angabe personenbezogener Daten möglich. Sofern eine betroffene Person besondere Services unseres Unternehmens über unsere Internetseite in Anspruch nehmen möchte, könnte jedoch eine Verarbeitung personenbezogener Daten erforderlich werden. Ist die Verarbeitung personenbezogener Daten erforderlich und besteht für eine solche Verarbeitung keine gesetzliche Grundlage, holen wir generell eine Einwilligung der betroffenen Person ein. + +Die Verarbeitung personenbezogener Daten, beispielsweise des Namens, der Anschrift, E-Mail-Adresse oder Telefonnummer einer betroffenen Person, erfolgt stets im Einklang mit der Datenschutz-Grundverordnung und in Übereinstimmung mit den für die vspace.one e.V. geltenden landesspezifischen Datenschutzbestimmungen. Mittels dieser Datenschutzerklärung möchte unser Unternehmen die Öffentlichkeit über Art, Umfang und Zweck der von uns erhobenen, genutzten und verarbeiteten personenbezogenen Daten informieren. Ferner werden betroffene Personen mittels dieser Datenschutzerklärung über die ihnen zustehenden Rechte aufgeklärt. + +Die vspace.one e.V. hat als für die Verarbeitung Verantwortlicher zahlreiche technische und organisatorische Maßnahmen umgesetzt, um einen möglichst lückenlosen Schutz der über diese Internetseite verarbeiteten personenbezogenen Daten sicherzustellen. Dennoch können Internetbasierte Datenübertragungen grundsätzlich Sicherheitslücken aufweisen, sodass ein absoluter Schutz nicht gewährleistet werden kann. Aus diesem Grund steht es jeder betroffenen Person frei, personenbezogene Daten auch auf alternativen Wegen, beispielsweise telefonisch, an uns zu übermitteln. + +## 1\. Begriffsbestimmungen + +Die Datenschutzerklärung der vspace.one e.V. beruht auf den Begrifflichkeiten, die durch den Europäischen Richtlinien- und Verordnungsgeber beim Erlass der Datenschutz-Grundverordnung (DS-GVO) verwendet wurden. Unsere Datenschutzerklärung soll sowohl für die Öffentlichkeit als auch für unsere Kunden und Geschäftspartner einfach lesbar und verständlich sein. Um dies zu gewährleisten, möchten wir vorab die verwendeten Begrifflichkeiten erläutern. + +Wir verwenden in dieser Datenschutzerklärung unter anderem die folgenden Begriffe: + +* ## a) personenbezogene Daten + + Personenbezogene Daten sind alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person (im Folgenden „betroffene Person“) beziehen. Als identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt, insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung oder zu einem oder mehreren besonderen Merkmalen, die Ausdruck der physischen, physiologischen, genetischen, psychischen, wirtschaftlichen, kulturellen oder sozialen Identität dieser natürlichen Person sind, identifiziert werden kann. + +* ## b) betroffene Person + + Betroffene Person ist jede identifizierte oder identifizierbare natürliche Person, deren personenbezogene Daten von dem für die Verarbeitung Verantwortlichen verarbeitet werden. + +* ## c) Verarbeitung + + Verarbeitung ist jeder mit oder ohne Hilfe automatisierter Verfahren ausgeführte Vorgang oder jede solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten wie das Erheben, das Erfassen, die Organisation, das Ordnen, die Speicherung, die Anpassung oder Veränderung, das Auslesen, das Abfragen, die Verwendung, die Offenlegung durch Übermittlung, Verbreitung oder eine andere Form der Bereitstellung, den Abgleich oder die Verknüpfung, die Einschränkung, das Löschen oder die Vernichtung. + +* ## d) Einschränkung der Verarbeitung + + Einschränkung der Verarbeitung ist die Markierung gespeicherter personenbezogener Daten mit dem Ziel, ihre künftige Verarbeitung einzuschränken. + +* ## e) Profiling + + Profiling ist jede Art der automatisierten Verarbeitung personenbezogener Daten, die darin besteht, dass diese personenbezogenen Daten verwendet werden, um bestimmte persönliche Aspekte, die sich auf eine natürliche Person beziehen, zu bewerten, insbesondere, um Aspekte bezüglich Arbeitsleistung, wirtschaftlicher Lage, Gesundheit, persönlicher Vorlieben, Interessen, Zuverlässigkeit, Verhalten, Aufenthaltsort oder Ortswechsel dieser natürlichen Person zu analysieren oder vorherzusagen. + +* ## f) Pseudonymisierung + + Pseudonymisierung ist die Verarbeitung personenbezogener Daten in einer Weise, auf welche die personenbezogenen Daten ohne Hinzuziehung zusätzlicher Informationen nicht mehr einer spezifischen betroffenen Person zugeordnet werden können, sofern diese zusätzlichen Informationen gesondert aufbewahrt werden und technischen und organisatorischen Maßnahmen unterliegen, die gewährleisten, dass die personenbezogenen Daten nicht einer identifizierten oder identifizierbaren natürlichen Person zugewiesen werden. + +* ## g) Verantwortlicher oder für die Verarbeitung Verantwortlicher + + Verantwortlicher oder für die Verarbeitung Verantwortlicher ist die natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten entscheidet. Sind die Zwecke und Mittel dieser Verarbeitung durch das Unionsrecht oder das Recht der Mitgliedstaaten vorgegeben, so kann der Verantwortliche beziehungsweise können die bestimmten Kriterien seiner Benennung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten vorgesehen werden. + +* ## h) Auftragsverarbeiter + + Auftragsverarbeiter ist eine natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, die personenbezogene Daten im Auftrag des Verantwortlichen verarbeitet. + +* ## i) Empfänger + + Empfänger ist eine natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, der personenbezogene Daten offengelegt werden, unabhängig davon, ob es sich bei ihr um einen Dritten handelt oder nicht. Behörden, die im Rahmen eines bestimmten Untersuchungsauftrags nach dem Unionsrecht oder dem Recht der Mitgliedstaaten möglicherweise personenbezogene Daten erhalten, gelten jedoch nicht als Empfänger. + +* ## j) Dritter + + Dritter ist eine natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle außer der betroffenen Person, dem Verantwortlichen, dem Auftragsverarbeiter und den Personen, die unter der unmittelbaren Verantwortung des Verantwortlichen oder des Auftragsverarbeiters befugt sind, die personenbezogenen Daten zu verarbeiten. + +* ## k) Einwilligung + + Einwilligung ist jede von der betroffenen Person freiwillig für den bestimmten Fall in informierter Weise und unmissverständlich abgegebene Willensbekundung in Form einer Erklärung oder einer sonstigen eindeutigen bestätigenden Handlung, mit der die betroffene Person zu verstehen gibt, dass sie mit der Verarbeitung der sie betreffenden personenbezogenen Daten einverstanden ist. + +## 2\. Name und Anschrift des für die Verarbeitung Verantwortlichen + +Verantwortlicher im Sinne der Datenschutz-Grundverordnung, sonstiger in den Mitgliedstaaten der Europäischen Union geltenden Datenschutzgesetze und anderer Bestimmungen mit datenschutzrechtlichem Charakter ist die: + +vspace.one e.V. + +Am Krebsgraben 15 + +78048 VS-Villingen + +Deutschland + +Tel.: 07721 2968141 + +E-Mail: info@vspace.one + +Website: vspace.one + +## 3\. Cookies + +Die Internetseiten der vspace.one e.V. verwenden Cookies. Cookies sind Textdateien, welche über einen Internetbrowser auf einem Computersystem abgelegt und gespeichert werden. + +Zahlreiche Internetseiten und Server verwenden Cookies. Viele Cookies enthalten eine sogenannte Cookie-ID. Eine Cookie-ID ist eine eindeutige Kennung des Cookies. Sie besteht aus einer Zeichenfolge, durch welche Internetseiten und Server dem konkreten Internetbrowser zugeordnet werden können, in dem das Cookie gespeichert wurde. Dies ermöglicht es den besuchten Internetseiten und Servern, den individuellen Browser der betroffenen Person von anderen Internetbrowsern, die andere Cookies enthalten, zu unterscheiden. Ein bestimmter Internetbrowser kann über die eindeutige Cookie-ID wiedererkannt und identifiziert werden. + +Durch den Einsatz von Cookies kann die vspace.one e.V. den Nutzern dieser Internetseite nutzerfreundlichere Services bereitstellen, die ohne die Cookie-Setzung nicht möglich wären. + +Mittels eines Cookies können die Informationen und Angebote auf unserer Internetseite im Sinne des Benutzers optimiert werden. Cookies ermöglichen uns, wie bereits erwähnt, die Benutzer unserer Internetseite wiederzuerkennen. Zweck dieser Wiedererkennung ist es, den Nutzern die Verwendung unserer Internetseite zu erleichtern. Der Benutzer einer Internetseite, die Cookies verwendet, muss beispielsweise nicht bei jedem Besuch der Internetseite erneut seine Zugangsdaten eingeben, weil dies von der Internetseite und dem auf dem Computersystem des Benutzers abgelegten Cookie übernommen wird. Ein weiteres Beispiel ist das Cookie eines Warenkorbes im Online-Shop. Der Online-Shop merkt sich die Artikel, die ein Kunde in den virtuellen Warenkorb gelegt hat, über ein Cookie. + +Die betroffene Person kann die Setzung von Cookies durch unsere Internetseite jederzeit mittels einer entsprechenden Einstellung des genutzten Internetbrowsers verhindern und damit der Setzung von Cookies dauerhaft widersprechen. Ferner können bereits gesetzte Cookies jederzeit über einen Internetbrowser oder andere Softwareprogramme gelöscht werden. Dies ist in allen gängigen Internetbrowsern möglich. Deaktiviert die betroffene Person die Setzung von Cookies in dem genutzten Internetbrowser, sind unter Umständen nicht alle Funktionen unserer Internetseite vollumfänglich nutzbar. + +## 4\. Erfassung von allgemeinen Daten und Informationen + +Die Internetseite der vspace.one e.V. erfasst mit jedem Aufruf der Internetseite durch eine betroffene Person oder ein automatisiertes System eine Reihe von allgemeinen Daten und Informationen. Diese allgemeinen Daten und Informationen werden in den Logfiles des Servers gespeichert. Erfasst werden können die (1) verwendeten Browsertypen und Versionen, (2) das vom zugreifenden System verwendete Betriebssystem, (3) die Internetseite, von welcher ein zugreifendes System auf unsere Internetseite gelangt (sogenannte Referrer), (4) die Unterwebseiten, welche über ein zugreifendes System auf unserer Internetseite angesteuert werden, (5) das Datum und die Uhrzeit eines Zugriffs auf die Internetseite, (6) eine Internet-Protokoll-Adresse (IP-Adresse), (7) der Internet-Service-Provider des zugreifenden Systems und (8) sonstige ähnliche Daten und Informationen, die der Gefahrenabwehr im Falle von Angriffen auf unsere informationstechnologischen Systeme dienen. + +Bei der Nutzung dieser allgemeinen Daten und Informationen zieht die vspace.one e.V. keine Rückschlüsse auf die betroffene Person. Diese Informationen werden vielmehr benötigt, um (1) die Inhalte unserer Internetseite korrekt auszuliefern, (2) die Inhalte unserer Internetseite sowie die Werbung für diese zu optimieren, (3) die dauerhafte Funktionsfähigkeit unserer informationstechnologischen Systeme und der Technik unserer Internetseite zu gewährleisten sowie (4) um Strafverfolgungsbehörden im Falle eines Cyberangriffes die zur Strafverfolgung notwendigen Informationen bereitzustellen. Diese anonym erhobenen Daten und Informationen werden durch die vspace.one e.V. daher einerseits statistisch und ferner mit dem Ziel ausgewertet, den Datenschutz und die Datensicherheit in unserem Unternehmen zu erhöhen, um letztlich ein optimales Schutzniveau für die von uns verarbeiteten personenbezogenen Daten sicherzustellen. Die anonymen Daten der Server-Logfiles werden getrennt von allen durch eine betroffene Person angegebenen personenbezogenen Daten gespeichert. + +## 5\. Registrierung auf unserer Internetseite + +Die betroffene Person hat die Möglichkeit, sich auf der Internetseite des für die Verarbeitung Verantwortlichen unter Angabe von personenbezogenen Daten zu registrieren. Welche personenbezogenen Daten dabei an den für die Verarbeitung Verantwortlichen übermittelt werden, ergibt sich aus der jeweiligen Eingabemaske, die für die Registrierung verwendet wird. Die von der betroffenen Person eingegebenen personenbezogenen Daten werden ausschließlich für die interne Verwendung bei dem für die Verarbeitung Verantwortlichen und für eigene Zwecke erhoben und gespeichert. Der für die Verarbeitung Verantwortliche kann die Weitergabe an einen oder mehrere Auftragsverarbeiter, beispielsweise einen Paketdienstleister, veranlassen, der die personenbezogenen Daten ebenfalls ausschließlich für eine interne Verwendung, die dem für die Verarbeitung Verantwortlichen zuzurechnen ist, nutzt. + +Durch eine Registrierung auf der Internetseite des für die Verarbeitung Verantwortlichen wird ferner die vom Internet-Service-Provider (ISP) der betroffenen Person vergebene IP-Adresse, das Datum sowie die Uhrzeit der Registrierung gespeichert. Die Speicherung dieser Daten erfolgt vor dem Hintergrund, dass nur so der Missbrauch unserer Dienste verhindert werden kann, und diese Daten im Bedarfsfall ermöglichen, begangene Straftaten aufzuklären. Insofern ist die Speicherung dieser Daten zur Absicherung des für die Verarbeitung Verantwortlichen erforderlich. Eine Weitergabe dieser Daten an Dritte erfolgt grundsätzlich nicht, sofern keine gesetzliche Pflicht zur Weitergabe besteht oder die Weitergabe der Strafverfolgung dient. + +Die Registrierung der betroffenen Person unter freiwilliger Angabe personenbezogener Daten dient dem für die Verarbeitung Verantwortlichen dazu, der betroffenen Person Inhalte oder Leistungen anzubieten, die aufgrund der Natur der Sache nur registrierten Benutzern angeboten werden können. Registrierten Personen steht die Möglichkeit frei, die bei der Registrierung angegebenen personenbezogenen Daten jederzeit abzuändern oder vollständig aus dem Datenbestand des für die Verarbeitung Verantwortlichen löschen zu lassen. + +Der für die Verarbeitung Verantwortliche erteilt jeder betroffenen Person jederzeit auf Anfrage Auskunft darüber, welche personenbezogenen Daten über die betroffene Person gespeichert sind. Ferner berichtigt oder löscht der für die Verarbeitung Verantwortliche personenbezogene Daten auf Wunsch oder Hinweis der betroffenen Person, soweit dem keine gesetzlichen Aufbewahrungspflichten entgegenstehen. Die Gesamtheit der Mitarbeiter des für die Verarbeitung Verantwortlichen stehen der betroffenen Person in diesem Zusammenhang als Ansprechpartner zur Verfügung. + +## 6\. Abonnement unseres Newsletters + +Auf der Internetseite der vspace.one e.V. wird den Benutzern die Möglichkeit eingeräumt, den Newsletter unseres Unternehmens zu abonnieren. Welche personenbezogenen Daten bei der Bestellung des Newsletters an den für die Verarbeitung Verantwortlichen übermittelt werden, ergibt sich aus der hierzu verwendeten Eingabemaske. + +Die vspace.one e.V. informiert ihre Kunden und Geschäftspartner in regelmäßigen Abständen im Wege eines Newsletters über Angebote des Unternehmens. Der Newsletter unseres Unternehmens kann von der betroffenen Person grundsätzlich nur dann empfangen werden, wenn (1) die betroffene Person über eine gültige E-Mail-Adresse verfügt und (2) die betroffene Person sich für den Newsletterversand registriert. An die von einer betroffenen Person erstmalig für den Newsletterversand eingetragene E-Mail-Adresse wird aus rechtlichen Gründen eine Bestätigungsmail im Double-Opt-In-Verfahren versendet. Diese Bestätigungsmail dient der Überprüfung, ob der Inhaber der E-Mail-Adresse als betroffene Person den Empfang des Newsletters autorisiert hat. + +Bei der Anmeldung zum Newsletter speichern wir ferner die vom Internet-Service-Provider (ISP) vergebene IP-Adresse des von der betroffenen Person zum Zeitpunkt der Anmeldung verwendeten Computersystems sowie das Datum und die Uhrzeit der Anmeldung. Die Erhebung dieser Daten ist erforderlich, um den(möglichen) Missbrauch der E-Mail-Adresse einer betroffenen Person zu einem späteren Zeitpunkt nachvollziehen zu können und dient deshalb der rechtlichen Absicherung des für die Verarbeitung Verantwortlichen. + +Die im Rahmen einer Anmeldung zum Newsletter erhobenen personenbezogenen Daten werden ausschließlich zum Versand unseres Newsletters verwendet. Ferner könnten Abonnenten des Newsletters per E-Mail informiert werden, sofern dies für den Betrieb des Newsletter-Dienstes oder eine diesbezügliche Registrierung erforderlich ist, wie dies im Falle von Änderungen am Newsletterangebot oder bei der Veränderung der technischen Gegebenheiten der Fall sein könnte. Es erfolgt keine Weitergabe der im Rahmen des Newsletter-Dienstes erhobenen personenbezogenen Daten an Dritte. Das Abonnement unseres Newsletters kann durch die betroffene Person jederzeit gekündigt werden. Die Einwilligung in die Speicherung personenbezogener Daten, die die betroffene Person uns für den Newsletterversand erteilt hat, kann jederzeit widerrufen werden. Zum Zwecke des Widerrufs der Einwilligung findet sich in jedem Newsletter ein entsprechender Link. Ferner besteht die Möglichkeit, sich jederzeit auch direkt auf der Internetseite des für die Verarbeitung Verantwortlichen vom Newsletterversand abzumelden oder dies dem für die Verarbeitung Verantwortlichen auf andere Weise mitzuteilen. + +## 7\. Newsletter-Tracking + +Die Newsletter der vspace.one e.V. enthalten sogenannte Zählpixel. Ein Zählpixel ist eine Miniaturgrafik, die in solche E-Mails eingebettet wird, welche im HTML-Format versendet werden, um eine Logdatei-Aufzeichnung und eine Logdatei-Analyse zu ermöglichen. Dadurch kann eine statistische Auswertung des Erfolges oder Misserfolges von Online-Marketing-Kampagnen durchgeführt werden. Anhand des eingebetteten Zählpixels kann die vspace.one e.V. erkennen, ob und wann eine E-Mail von einer betroffenen Person geöffnet wurde und welche in der E-Mail befindlichen Links von der betroffenen Person aufgerufen wurden. + +Solche über die in den Newslettern enthaltenen Zählpixel erhobenen personenbezogenen Daten, werden von dem für die Verarbeitung Verantwortlichen gespeichert und ausgewertet, um den Newsletterversand zu optimieren und den Inhalt zukünftiger Newsletter noch besser den Interessen der betroffenen Person anzupassen. Diese personenbezogenen Daten werden nicht an Dritte weitergegeben. Betroffene Personen sind jederzeit berechtigt, die diesbezügliche gesonderte, über das Double-Opt-In-Verfahren abgegebene Einwilligungserklärung zu widerrufen. Nach einem Widerruf werden diese personenbezogenen Daten von dem für die Verarbeitung Verantwortlichen gelöscht. Eine Abmeldung vom Erhalt des Newsletters deutet die vspace.one e.V. automatisch als Widerruf. + +## 8\. Abonnement von Kommentaren im Blog auf der Internetseite + +Die im Blog der vspace.one e.V. abgegebenen Kommentare können grundsätzlich von Dritten abonniert werden. Insbesondere besteht die Möglichkeit, dass ein Kommentator die seinem Kommentar nachfolgenden Kommentare zu einem bestimmten Blog-Beitrag abonniert. + +Sofern sich eine betroffene Person für die Option entscheidet, Kommentare zu abonnieren, versendet der für die Verarbeitung Verantwortliche eine automatische Bestätigungsmail, um im Double-Opt-In-Verfahren zu überprüfen, ob sich wirklich der Inhaber der angegebenen E-Mail-Adresse für diese Option entschieden hat. Die Option zum Abonnement von Kommentaren kann jederzeit beendet werden. + +## 9\. Routinemäßige Löschung und Sperrung von personenbezogenen Daten + +Der für die Verarbeitung Verantwortliche verarbeitet und speichert personenbezogene Daten der betroffenen Person nur für den Zeitraum, der zur Erreichung des Speicherungszwecks erforderlich ist oder sofern dies durch den Europäischen Richtlinien- und Verordnungsgeber oder einen anderen Gesetzgeber in Gesetzen oder Vorschriften, welchen der für die Verarbeitung Verantwortliche unterliegt, vorgesehen wurde. + +Entfällt der Speicherungszweck oder läuft eine vom Europäischen Richtlinien- und Verordnungsgeber oder einem anderen zuständigen Gesetzgeber vorgeschriebene Speicherfrist ab, werden die personenbezogenen Daten routinemäßig und entsprechend den gesetzlichen Vorschriften gesperrt oder gelöscht. + +## 10\. Rechte der betroffenen Person + +* ## a) Recht auf Bestätigung + + Jede betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber eingeräumte Recht, von dem für die Verarbeitung Verantwortlichen eine Bestätigung darüber zu verlangen, ob sie betreffende personenbezogene Daten verarbeitet werden. Möchte eine betroffene Person dieses Bestätigungsrecht in Anspruch nehmen, kann sie sich hierzu jederzeit an einen Mitarbeiter des für die Verarbeitung Verantwortlichen wenden. + +* ## b) Recht auf Auskunft + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, jederzeit von dem für die Verarbeitung Verantwortlichen unentgeltliche Auskunft über die zu seiner Person gespeicherten personenbezogenen Daten und eine Kopie dieser Auskunft zu erhalten. Ferner hat der Europäische Richtlinien- und Verordnungsgeber der betroffenen Person Auskunft über folgende Informationen zugestanden: + + * die Verarbeitungszwecke + * die Kategorien personenbezogener Daten, die verarbeitet werden + * die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt worden sind oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen Organisationen + * falls möglich die geplante Dauer, für die die personenbezogenen Daten gespeichert werden, oder, falls dies nicht möglich ist, die Kriterien für die Festlegung dieser Dauer + * das Bestehen eines Rechts auf Berichtigung oder Löschung der sie betreffenden personenbezogenen Daten oder auf Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung + * das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde + * wenn die personenbezogenen Daten nicht bei der betroffenen Person erhoben werden: Alle verfügbaren Informationen über die Herkunft der Daten + * das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling gemäß Artikel 22 Abs.1 und 4 DS-GVO und — zumindest in diesen Fällen — aussagekräftige Informationen über die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung für die betroffene Person + + Ferner steht der betroffenen Person ein Auskunftsrecht darüber zu, ob personenbezogene Daten an ein Drittland oder an eine internationale Organisation übermittelt wurden. Sofern dies der Fall ist, so steht der betroffenen Person im Übrigen das Recht zu, Auskunft über die geeigneten Garantien im Zusammenhang mit der Übermittlung zu erhalten. + + Möchte eine betroffene Person dieses Auskunftsrecht in Anspruch nehmen, kann sie sich hierzu jederzeit an einen Mitarbeiter des für die Verarbeitung Verantwortlichen wenden. + +* ## c) Recht auf Berichtigung + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, die unverzügliche Berichtigung sie betreffender unrichtiger personenbezogener Daten zu verlangen. Ferner steht der betroffenen Person das Recht zu, unter Berücksichtigung der Zwecke der Verarbeitung, die Vervollständigung unvollständiger personenbezogener Daten — auch mittels einer ergänzenden Erklärung — zu verlangen. + + Möchte eine betroffene Person dieses Berichtigungsrecht in Anspruch nehmen, kann sie sich hierzu jederzeit an einen Mitarbeiter des für die Verarbeitung Verantwortlichen wenden. + +* ## d) Recht auf Löschung (Recht auf Vergessen werden) + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, von dem Verantwortlichen zu verlangen, dass die sie betreffenden personenbezogenen Daten unverzüglich gelöscht werden, sofern einer der folgenden Gründe zutrifft und soweit die Verarbeitung nicht erforderlich ist: + + * Die personenbezogenen Daten wurden für solche Zwecke erhoben oder auf sonstige Weise verarbeitet, für welche sie nicht mehr notwendig sind. + * Die betroffene Person widerruft ihre Einwilligung, auf die sich die Verarbeitung gemäß Art. 6 Abs. 1 Buchstabe a DS-GVO oder Art. 9 Abs. 2 Buchstabe a DS-GVO stützte, und es fehlt an einer anderweitigen Rechtsgrundlage für die Verarbeitung. + * Die betroffene Person legt gemäß Art. 21 Abs. 1 DS-GVO Widerspruch gegen die Verarbeitung ein, und es liegen keine vorrangigen berechtigten Gründe für die Verarbeitung vor, oder die betroffene Person legt gemäß Art. 21 Abs. 2 DS-GVO Widerspruch gegen die Verarbeitung ein. + * Die personenbezogenen Daten wurden unrechtmäßig verarbeitet. + * Die Löschung der personenbezogenen Daten ist zur Erfüllung einer rechtlichen Verpflichtung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten erforderlich, dem der Verantwortliche unterliegt. + * Die personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemäß Art. 8 Abs. 1 DS-GVO erhoben. + + Sofern einer der oben genannten Gründe zutrifft und eine betroffene Person die Löschung von personenbezogenen Daten, die bei der vspace.one e.V. gespeichert sind, veranlassen möchte, kann sie sich hierzu jederzeit an einen Mitarbeiter des für die Verarbeitung Verantwortlichen wenden. Der Mitarbeiter der vspace.one e.V. wird veranlassen, dass dem Löschverlangen unverzüglich nachgekommen wird. + + Wurden die personenbezogenen Daten von der vspace.one e.V. öffentlich gemacht und ist unser Unternehmen als Verantwortlicher gemäß Art. 17 Abs. 1 DS-GVO zur Löschung der personenbezogenen Daten verpflichtet, so trifft die vspace.one e.V. unter Berücksichtigung der verfügbaren Technologie und der Implementierungskosten angemessene Maßnahmen, auch technischer Art, um andere für die Datenverarbeitung Verantwortliche, welche die veröffentlichten personenbezogenen Daten verarbeiten, darüber in Kenntnis zu setzen, dass die betroffene Person von diesen anderen für die Datenverarbeitung Verantwortlichen die Löschung sämtlicher Links zu diesen personenbezogenen Daten oder von Kopien oder Replikationen dieser personenbezogenen Daten verlangt hat, soweit die Verarbeitung nicht erforderlich ist. Der Mitarbeiter der vspace.one e.V. wird im Einzelfall das Notwendige veranlassen. + +* ## e) Recht auf Einschränkung der Verarbeitung + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, von dem Verantwortlichen die Einschränkung der Verarbeitung zu verlangen, wenn eine der folgenden Voraussetzungen gegeben ist: + + * Die Richtigkeit der personenbezogenen Daten wird von der betroffenen Person bestritten, und zwar für eine Dauer, die es dem Verantwortlichen ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen. + * Die Verarbeitung ist unrechtmäßig, die betroffene Person lehnt die Löschung der personenbezogenen Daten ab und verlangt stattdessen die Einschränkung der Nutzung der personenbezogenen Daten. + * Der Verantwortliche benötigt die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger, die betroffene Person benötigt sie jedoch zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. + * Die betroffene Person hat Widerspruch gegen die Verarbeitung gem. Art. 21 Abs. 1 DS-GVO eingelegt und es steht noch nicht fest, ob die berechtigten Gründe des Verantwortlichen gegenüber denen der betroffenen Person überwiegen. + + Sofern eine der oben genannten Voraussetzungen gegeben ist und eine betroffene Person die Einschränkung von personenbezogenen Daten, die bei der vspace.one e.V. gespeichert sind, verlangen möchte, kann sie sich hierzu jederzeit an einen Mitarbeiter des für die Verarbeitung Verantwortlichen wenden. Der Mitarbeiter der vspace.one e.V. wird die Einschränkung der Verarbeitung veranlassen. + +* ## f) Recht auf Datenübertragbarkeit + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, die sie betreffenden personenbezogenen Daten, welche durch die betroffene Person einem Verantwortlichen bereitgestellt wurden, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten. Sie hat außerdem das Recht, diese Daten einem anderen Verantwortlichen ohne Behinderung durch den Verantwortlichen, dem die personenbezogenen Daten bereitgestellt wurden, zu übermitteln, sofern die Verarbeitung auf der Einwilligung gemäß Art. 6 Abs. 1 Buchstabe a DS-GVO oder Art. 9 Abs. 2 Buchstabe a DS-GVO oder auf einem Vertrag gemäß Art. 6 Abs. 1 Buchstabe b DS-GVO beruht und die Verarbeitung mithilfe automatisierter Verfahren erfolgt, sofern die Verarbeitung nicht für die Wahrnehmung einer Aufgabe erforderlich ist, die im öffentlichen Interesse liegt oder in Ausübung öffentlicher Gewalt erfolgt, welche dem Verantwortlichen übertragen wurde. + + Ferner hat die betroffene Person bei der Ausübung ihres Rechts auf Datenübertragbarkeit gemäß Art. 20 Abs. 1 DS-GVO das Recht, zu erwirken, dass die personenbezogenen Daten direkt von einem Verantwortlichen an einen anderen Verantwortlichen übermittelt werden, soweit dies technisch machbar ist und sofern hiervon nicht die Rechte und Freiheiten anderer Personen beeinträchtigt werden. + + Zur Geltendmachung des Rechts auf Datenübertragbarkeit kann sich die betroffene Person jederzeit an einen Mitarbeiter der vspace.one e.V. wenden. + +* ## g) Recht auf Widerspruch + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, aus Gründen, die sich aus ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung sie betreffender personenbezogener Daten, die aufgrund von Art. 6 Abs. 1 Buchstaben e oder f DS-GVO erfolgt, Widerspruch einzulegen. Dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling. + + Die vspace.one e.V. verarbeitet die personenbezogenen Daten im Falle des Widerspruchs nicht mehr, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die den Interessen, Rechten und Freiheiten der betroffenen Person überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. + + Verarbeitet die vspace.one e.V. personenbezogene Daten, um Direktwerbung zu betreiben, so hat die betroffene Person das Recht, jederzeit Widerspruch gegen die Verarbeitung der personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen. Dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht. Widerspricht die betroffene Person gegenüber der vspace.one e.V. der Verarbeitung für Zwecke der Direktwerbung, so wird die vspace.one e.V. die personenbezogenen Daten nicht mehr für diese Zwecke verarbeiten. + + Zudem hat die betroffene Person das Recht, aus Gründen, die sich aus ihrer besonderen Situation ergeben, gegen die sie betreffende Verarbeitung personenbezogener Daten, die bei der vspace.one e.V. zu wissenschaftlichen oder historischen Forschungszwecken oder zu statistischen Zwecken gemäß Art. 89 Abs. 1 DS-GVO erfolgen, Widerspruch einzulegen, es sei denn, eine solche Verarbeitung ist zur Erfüllung einer im öffentlichen Interesse liegenden Aufgabe erforderlich. + + Zur Ausübung des Rechts auf Widerspruch kann sich die betroffene Person direkt an jeden Mitarbeiter der vspace.one e.V. oder einen anderen Mitarbeiter wenden. Der betroffenen Person steht es ferner frei, im Zusammenhang mit der Nutzung von Diensten der Informationsgesellschaft, ungeachtet der Richtlinie 2002/58/EG, ihr Widerspruchsrecht mittels automatisierter Verfahren auszuüben, bei denen technische Spezifikationen verwendet werden. + +* ## h) Automatisierte Entscheidungen im Einzelfall einschließlich Profiling + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, nicht einer ausschließlich auf einer automatisierten Verarbeitung — einschließlich Profiling — beruhenden Entscheidung unterworfen zu werden, die ihr gegenüber rechtliche Wirkung entfaltet oder sie in ähnlicher Weise erheblich beeinträchtigt, sofern die Entscheidung (1) nicht für den Abschluss oder die Erfüllung eines Vertrags zwischen der betroffenen Person und dem Verantwortlichen erforderlich ist, oder (2) aufgrund von Rechtsvorschriften der Union oder der Mitgliedstaaten, denen der Verantwortliche unterliegt, zulässig ist und diese Rechtsvorschriften angemessene Maßnahmen zur Wahrung der Rechte und Freiheiten sowie der berechtigten Interessen der betroffenen Person enthalten oder (3) mit ausdrücklicher Einwilligung der betroffenen Person erfolgt. + + Ist die Entscheidung (1) für den Abschluss oder die Erfüllung eines Vertrags zwischen der betroffenen Person und dem Verantwortlichen erforderlich oder (2) erfolgt sie mit ausdrücklicher Einwilligung der betroffenen Person, trifft die vspace.one e.V. angemessene Maßnahmen, um die Rechte und Freiheiten sowie die berechtigten Interessen der betroffenen Person zu wahren, wozu mindestens das Recht auf Erwirkung des Eingreifens einer Person seitens des Verantwortlichen, auf Darlegung des eigenen Standpunkts und auf Anfechtung der Entscheidung gehört. + + Möchte die betroffene Person Rechte mit Bezug auf automatisierte Entscheidungen geltend machen, kann sie sich hierzu jederzeit an einen Mitarbeiter des für die Verarbeitung Verantwortlichen wenden. + +* ## i) Recht auf Widerruf einer datenschutzrechtlichen Einwilligung + + Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das vom Europäischen Richtlinien- und Verordnungsgeber gewährte Recht, eine Einwilligung zur Verarbeitung personenbezogener Daten jederzeit zu widerrufen. + + Möchte die betroffene Person ihr Recht auf Widerruf einer Einwilligung geltend machen, kann sie sich hierzu jederzeit an einen Mitarbeiter des für die Verarbeitung Verantwortlichen wenden. + +## 11\. Datenschutzbestimmungen zu Einsatz und Verwendung von Matomo + +Der für die Verarbeitung Verantwortliche hat auf dieser Internetseite die Komponente Matomo integriert. Matomo ist ein Open-Source-Softwaretool zur Web-Analyse. Web-Analyse ist die Erhebung, Sammlung und Auswertung von Daten über das Verhalten von Besuchern von Internetseiten. Ein Web-Analyse-Tool erfasst unter anderem Daten darüber, von welcher Internetseite eine betroffene Person auf eine Internetseite gekommen ist (sogenannter Referrer), auf welche Unterseiten der Internetseite zugegriffen oder wie oft und für welche Verweildauer eine Unterseite betrachtet wurde. Eine Web-Analyse wird überwiegend zur Optimierung einer Internetseite und zur Kosten-Nutzen-Analyse von Internetwerbung eingesetzt. + +Die Software wird auf dem Server des für die Verarbeitung Verantwortlichen betrieben, die datenschutzrechtlich sensiblen Logdateien werden ausschließlich auf diesem Server gespeichert. + +Der Zweck der Matomo-Komponente ist die Analyse der Besucherströme auf unserer Internetseite. Der für die Verarbeitung Verantwortliche nutzt die gewonnenen Daten und Informationen unter anderem dazu, die Nutzung dieser Internetseite auszuwerten, um Online-Reports, welche die Aktivitäten auf unseren Internetseiten aufzeigen, zusammenzustellen. + +Matomo setzt ein Cookie auf dem informationstechnologischen System der betroffenen Person. Was Cookies sind, wurde oben bereits erläutert. Mit der Setzung des Cookies wird uns eine Analyse der Benutzung unserer Internetseite ermöglicht. Durch jeden Aufruf einer der Einzelseiten dieser Internetseite wird der Internetbrowser auf dem informationstechnologischen System der betroffenen Person automatisch durch die Matomo-Komponente veranlasst, Daten zum Zwecke der Online-Analyse an unseren Server zu übermitteln. Im Rahmen dieses technischen Verfahrens erhalten wir Kenntnis über personenbezogene Daten, wie der IP-Adresse der betroffenen Person, die uns unter anderem dazu dient, die Herkunft der Besucher und Klicks nachzuvollziehen. + +Mittels des Cookies werden personenbezogene Informationen, beispielsweise die Zugriffszeit, der Ort, von welchem ein Zugriff ausging und die Häufigkeit der Besuche auf unserer Internetseite gespeichert. Bei jedem Besuch unserer Internetseiten werden diese personenbezogenen Daten, einschließlich der IP-Adresse des von der betroffenen Person genutzten Internetanschlusses, an unseren Server übertragen. Diese personenbezogenen Daten werden durch uns gespeichert. Wir geben diese personenbezogenen Daten nicht an Dritte weiter. + +Die betroffene Person kann die Setzung von Cookies durch unsere Internetseite, wie oben bereits dargestellt, jederzeit mittels einer entsprechenden Einstellung des genutzten Internetbrowsers verhindern und damit der Setzung von Cookies dauerhaft widersprechen. Eine solche Einstellung des genutzten Internetbrowsers würde auch verhindern, dass Matomo ein Cookie auf dem informationstechnologischen System der betroffenen Person setzt. Zudem kann ein von Matomo bereits gesetzter Cookie jederzeit über einen Internetbrowser oder andere Softwareprogramme gelöscht werden. + +Ferner besteht für die betroffene Person die Möglichkeit, einer Erfassung der durch den Matomo erzeugten, auf eine Nutzung dieser Internetseite bezogenen Daten zu widersprechen und eine solche zu verhindern. Hierzu muss die betroffene Person in Ihrem Browser "Do Not Track" einstellen. + +Mit der Setzung des Opt-Out-Cookies besteht jedoch die Möglichkeit, dass die Internetseiten des für die Verarbeitung Verantwortlichen für die betroffene Person nicht mehr vollumfänglich nutzbar sind. + +Weitere Informationen und die geltenden Datenschutzbestimmungen von Matomo können unter https://matomo.org/privacy/ abgerufen werden. + +## 12\. Datenschutzbestimmungen zu Einsatz und Verwendung von Twitter + +Der für die Verarbeitung Verantwortliche hat auf dieser Internetseite Komponenten von Twitter integriert. Twitter ist ein multilingualer öffentlich zugänglicher Mikroblogging-Dienst, auf welchem die Nutzer sogenannte Tweets, also Kurznachrichten, die auf 280 Zeichen begrenzt sind, veröffentlichen und verbreiten können. Diese Kurznachrichten sind für jedermann, also auch für nicht bei Twitter angemeldete Personen abrufbar. Die Tweets werden aber auch den sogenannten Followern des jeweiligen Nutzers angezeigt. Follower sind andere Twitter-Nutzer, die den Tweets eines Nutzers folgen. Ferner ermöglicht Twitter über Hashtags, Verlinkungen oder Retweets die Ansprache eines breiten Publikums. + +Betreibergesellschaft von Twitter International Company, One Cumberland Place, Fenian Street Dublin 2, D02 AX07, Ireland. + +Durch jeden Aufruf einer der Einzelseiten dieser Internetseite, die durch den für die Verarbeitung Verantwortlichen betrieben wird und auf welcher eine Twitter-Komponente (Twitter-Button) integriert wurde, wird der Internetbrowser auf dem informationstechnologischen System der betroffenen Person automatisch durch die jeweilige Twitter-Komponente veranlasst, eine Darstellung der entsprechenden Twitter-Komponente von Twitter herunterzuladen. Weitere Informationen zu den Twitter-Buttons sind unter https://about.twitter.com/de/resources/buttons abrufbar. Im Rahmen dieses technischen Verfahrens erhält Twitter Kenntnis darüber, welche konkrete Unterseite unserer Internetseite durch die betroffene Person besucht wird. Zweck der Integration der Twitter-Komponente ist es, unseren Nutzern eine Weiterverbreitung der Inhalte diese Internetseite zu ermöglichen, diese Internetseite in der digitalen Welt bekannt zu machen und unsere Besucherzahlen zu erhöhen. + +Sofern die betroffene Person gleichzeitig bei Twitter eingeloggt ist, erkennt Twitter mit jedem Aufruf unserer Internetseite durch die betroffene Person und während der gesamten Dauer des jeweiligen Aufenthaltes auf unserer Internetseite, welche konkrete Unterseite unserer Internetseite die betroffene Person besucht. Diese Informationen werden durch die Twitter-Komponente gesammelt und durch Twitter dem jeweiligen Twitter-Account der betroffenen Person zugeordnet. Betätigt die betroffene Person einen der auf unserer Internetseite integrierten Twitter-Buttons, werden die damit übertragenen Daten und Informationen dem persönlichen Twitter-Benutzerkonto der betroffenen Person zugeordnet und von Twitter gespeichert und verarbeitet. + +Twitter erhält über die Twitter-Komponente immer dann eine Information darüber, dass die betroffene Person unsere Internetseite besucht hat, wenn die betroffene Person zum Zeitpunkt des Aufrufs unserer Internetseite gleichzeitig bei Twitter eingeloggt ist; dies findet unabhängig davon statt, ob die betroffene Person die Twitter-Komponente anklickt oder nicht. Ist eine derartige Übermittlung dieser Informationen an Twitter von der betroffenen Person nicht gewollt, kann diese die Übermittlung dadurch verhindern, dass sie sich vor einem Aufruf unserer Internetseite aus ihrem Twitter-Account ausloggt. + +Die geltenden Datenschutzbestimmungen von Twitter sind unter https://twitter.com/privacy?lang=de abrufbar. + +## 13\. Rechtsgrundlage der Verarbeitung + +Art. 6 I lit. a DS-GVO dient unserem Unternehmen als Rechtsgrundlage für Verarbeitungsvorgänge, bei denen wir eine Einwilligung für einen bestimmten Verarbeitungszweck einholen. Ist die Verarbeitung personenbezogener Daten zur Erfüllung eines Vertrags, dessen Vertragspartei die betroffene Person ist, erforderlich, wie dies beispielsweise bei Verarbeitungsvorgängen der Fall ist, die für eine Lieferung von Waren oder die Erbringung einer sonstigen Leistung oder Gegenleistung notwendig sind, so beruht die Verarbeitung auf Art. 6 I lit. b DS-GVO. Gleiches gilt für solche Verarbeitungsvorgänge die zur Durchführung vorvertraglicher Maßnahmen erforderlich sind, etwa in Fällen von Anfragen zur unseren Produkten oder Leistungen. Unterliegt unser Unternehmen einer rechtlichen Verpflichtung durch welche eine Verarbeitung von personenbezogenen Daten erforderlich wird, wie beispielsweise zur Erfüllung steuerlicher Pflichten, so basiert die Verarbeitung auf Art. 6 I lit. c DS-GVO. In seltenen Fällen könnte die Verarbeitung von personenbezogenen Daten erforderlich werden, um lebenswichtige Interessen der betroffenen Person oder einer anderen natürlichen Person zu schützen. Dies wäre beispielsweise der Fall, wenn ein Besucher in unserem Betrieb verletzt werden würde und daraufhin sein Name, sein Alter, seine Krankenkassendaten oder sonstige lebenswichtige Informationen an einen Arzt, ein Krankenhaus oder sonstige Dritte weitergegeben werden müssten. Dann würde die Verarbeitung auf Art. 6 I lit. d DS-GVO beruhen. Letztlich könnten Verarbeitungsvorgänge auf Art. 6 I lit. f DS-GVO beruhen. Auf dieser Rechtsgrundlage basieren Verarbeitungsvorgänge, die von keiner der vorgenannten Rechtsgrundlagen erfasst werden, wenn die Verarbeitung zur Wahrung eines berechtigten Interesses unseres Unternehmens oder eines Dritten erforderlich ist, sofern die Interessen, Grundrechte und Grundfreiheiten des Betroffenen nicht überwiegen. Solche Verarbeitungsvorgänge sind uns insbesondere deshalb gestattet, weil sie durch den Europäischen Gesetzgeber besonders erwähnt wurden. Er vertrat insoweit die Auffassung, dass ein berechtigtes Interesse anzunehmen sein könnte, wenn die betroffene Person ein Kunde des Verantwortlichen ist (Erwägungsgrund 47 Satz 2 DS-GVO). + +## 14\. Berechtigte Interessen an der Verarbeitung, die von dem Verantwortlichen oder einem Dritten verfolgt werden + +Basiert die Verarbeitung personenbezogener Daten auf Artikel 6 I lit. f DS-GVO ist unser berechtigtes Interesse die Durchführung unserer Geschäftstätigkeit zugunsten des Wohlergehens all unserer Mitarbeiter und unserer Anteilseigner. + +## 15\. Dauer, für die die personenbezogenen Daten gespeichert werden + +Das Kriterium für die Dauer der Speicherung von personenbezogenen Daten ist die jeweilige gesetzliche Aufbewahrungsfrist. Nach Ablauf der Frist werden die entsprechenden Daten routinemäßig gelöscht, sofern sie nicht mehr zur Vertragserfüllung oder Vertragsanbahnung erforderlich sind. + +## 16\. Gesetzliche oder vertragliche Vorschriften zur Bereitstellung der personenbezogenen Daten; Erforderlichkeit für den Vertragsabschluss; Verpflichtung der betroffenen Person, die personenbezogenen Daten bereitzustellen; mögliche Folgen der Nichtbereitstellung + +Wir klären Sie darüber auf, dass die Bereitstellung personenbezogener Daten zum Teil gesetzlich vorgeschrieben ist (z.B. Steuervorschriften) oder sich auch aus vertraglichen Regelungen (z.B. Angaben zum Vertragspartner) ergeben kann. Mitunter kann es zu einem Vertragsschluss erforderlich sein, dass eine betroffene Person uns personenbezogene Daten zur Verfügung stellt, die in der Folge durch uns verarbeitet werden müssen. Die betroffene Person ist beispielsweise verpflichtet uns personenbezogene Daten bereitzustellen, wenn unser Unternehmen mit ihr einen Vertrag abschließt. Eine Nichtbereitstellung der personenbezogenen Daten hätte zur Folge, dass der Vertrag mit dem Betroffenen nicht geschlossen werden könnte. Vor einer Bereitstellung personenbezogener Daten durch den Betroffenen muss sich der Betroffene an einen unserer Mitarbeiter wenden. Unser Mitarbeiter klärt den Betroffenen einzelfallbezogen darüber auf, ob die Bereitstellung der personenbezogenen Daten gesetzlich oder vertraglich vorgeschrieben oder für den Vertragsabschluss erforderlich ist, ob eine Verpflichtung besteht, die personenbezogenen Daten bereitzustellen, und welche Folgen die Nichtbereitstellung der personenbezogenen Daten hätte. + +## 17\. Bestehen einer automatisierten Entscheidungsfindung + +Als verantwortungsbewusstes Unternehmen verzichten wir auf eine automatische Entscheidungsfindung oder ein Profiling. + +Diese Datenschutzerklärung wurde durch den Datenschutzerklärungs-Generator der DGD Deutsche Gesellschaft für Datenschutz GmbH, die als [Externer Datenschutzbeauftragter Neu-Ulm](https://dg-datenschutz.de/datenschutz-dienstleistungen/externer-datenschutzbeauftragter/) tätig ist, in Kooperation mit dem [Anwalt für IT- und Datenschutzrecht](https://www.wbs-law.de/it-recht/datenschutzrecht/) Christian Solmecke erstellt. diff --git a/web/src/pages/support/donate.astro b/web/src/pages/support/donate.astro new file mode 100644 index 0000000..cca74f6 --- /dev/null +++ b/web/src/pages/support/donate.astro @@ -0,0 +1,60 @@ +--- +import Heading from "@/components/Heading.astro"; +import Section from "@/components/Section.astro"; +import MainLayout from "@/layouts/MainLayout.astro"; +import RootLayout from "@/layouts/RootLayout.astro"; +--- + + + +
+ Spenden +
+
+
+
+

+ Wir sind froh über jede Spende, die bei uns ankommt. Als + gemeinnütziger Verein können wir selbstverständlich auf Wunsch + Spendenbescheinigungen ausstellen. Melde Dich dazu nach erfolgter + Überweisung per E-Mail an vorstand@vspace.one und nenne uns Deine Kontaktdaten sowie die IBAN mit Betrag damit wir + die Spende zuordnen können. +
+ Dazu könnt Ihr uns einfach den gewählten Betrag mit dem Betreff "Spende" + überweisen. Zweckgebundene Spenden nimmt der Vorstand nach erfolgter + Absprache an, sofern der Zweck mit der Satzung kompatibel ist. +

+
+
+
+

QR-Code mit Kontodaten

+ +
+
+

Kontodaten zum Selbsteingeben

+ + + + + + + + + + + + + + + + + + + +
Inhabervspace.one e. V.
BankVolksbank eG - Die Gestalterbank
IBANDE76 6649 0000 0032 7297 03
BICGENODE61OG1
+
+
+
+
diff --git a/web/src/pages/support/join.astro b/web/src/pages/support/join.astro new file mode 100644 index 0000000..4b0b532 --- /dev/null +++ b/web/src/pages/support/join.astro @@ -0,0 +1,33 @@ +--- +import Heading from "@/components/Heading.astro"; +import Section from "@/components/Section.astro"; +import MainLayout from "@/layouts/MainLayout.astro"; +import RootLayout from "@/layouts/RootLayout.astro"; +--- + + + +
+ Werde Mitglied! +
+
+

+ Lade dir unter Downloads die Beitrittserklärung herunter, bring sie mit + in den Space und drücke sie einem der Vorstände in die Hände. Dafür + eignet sich beispielsweise das regelmäßig stattfindende Treffen am + Dienstagabend.
+ + Alternativ schicke sie an folgende Adresse:
+ + vspace.one e.V
+ Am Krebsgraben 15
+ 78048 Villingen
+ + Oder an folgende E-Mail Adresse:
+ + vorstand [at] vspace.one +
+

+
+
+
diff --git a/web/src/pages/support/sponsor.astro b/web/src/pages/support/sponsor.astro new file mode 100644 index 0000000..cc9a57b --- /dev/null +++ b/web/src/pages/support/sponsor.astro @@ -0,0 +1,46 @@ +--- +import Card from "@/components/Card.astro"; +import CardSponsor from "@/components/Cards/CardSponsor.astro"; +import Heading from "@/components/Heading.astro"; +import Section from "@/components/Section.astro"; +import MainLayout from "@/layouts/MainLayout.astro"; +import RootLayout from "@/layouts/RootLayout.astro"; +import { getCollection } from "astro:content"; + +const sponsors = await getCollection("sponsors"); + +const content = await Promise.all(sponsors.map(async (e) => e.render())); +--- + + + +
+ Unsere Sponsoren +
+
+
+ { + sponsors.map((sponsor, index) => { + const { Content } = content[index]!; + return ( + + + + ); + }) + } +
+
+
+ Sponsor werden + +

+ Interesse an einer Kooperation?
+ Dann kontaktiere uns über vorstand [at] vspace.one +

+
+
+
+
diff --git a/web/src/pages/tour.astro b/web/src/pages/tour.astro new file mode 100644 index 0000000..57957ae --- /dev/null +++ b/web/src/pages/tour.astro @@ -0,0 +1,14 @@ +--- +import Section from "@/components/Section.astro"; +import VirtualTour from "@/components/VirtualTour.astro"; +import MainLayout from "@/layouts/MainLayout.astro"; +import RootLayout from "@/layouts/RootLayout.astro"; +--- + + + +
+ +
+
+
diff --git a/web/src/sections/Contact.astro b/web/src/sections/Contact.astro new file mode 100644 index 0000000..e69de29 diff --git a/web/src/sections/Events.astro b/web/src/sections/Events.astro index dd774df..11ee085 100644 --- a/web/src/sections/Events.astro +++ b/web/src/sections/Events.astro @@ -1,4 +1,5 @@ --- +import Card from "@/components/Card.astro"; import Heading from "@/components/Heading.astro"; import { getEvents } from "@/lib/events-api"; @@ -6,13 +7,26 @@ const events = await getEvents(); --- Events -
+
{ events.map((e) => ( -
-

{e.start.toLocaleDateString()}

-

{e.title}

-
+ +
+
+ {e.start.toLocaleDateString("de-DE", { year: "numeric" })} +
+

+ {e.start.toLocaleDateString("de-DE", { + month: "long", + day: "numeric", + })} +

+
+
+

{e.title}

+ +
+
)) }
diff --git a/web/src/sections/InfoSlideshow.astro b/web/src/sections/InfoSlideshow.astro new file mode 100644 index 0000000..692ec9e --- /dev/null +++ b/web/src/sections/InfoSlideshow.astro @@ -0,0 +1,44 @@ +--- +import { infoSlides } from "@/content/info-slides"; +--- + +
+
+ { + infoSlides.map((e) => ( +
+
+
+ +
+
+

{e.title}

+

{e.text}

+
+
+
+ )) + } +
+
+ + diff --git a/web/src/sections/Introduction.astro b/web/src/sections/Introduction.astro index 50bbe3e..0ef2045 100644 --- a/web/src/sections/Introduction.astro +++ b/web/src/sections/Introduction.astro @@ -8,7 +8,7 @@ import Heading from "@/components/Heading.astro";

Unser Ziel ist der Wissensaustausch sowie die Bildung aller interessierten in den Bereichen neuartiger computergestützter Technologien (wie zum - Beispiel aber nicht ausschließlich 3D-­Druck, CNC, Internet der Dinge und + Beispiel aber nicht ausschließlich 3D-Druck, CNC, Internet der Dinge und Robotik), der Elektrotechnik und Elektronik sowie auch auf Gebieten der Reparatur und Wartung.
@@ -19,4 +19,5 @@ import Heading from "@/components/Heading.astro"; Dazu haben wir eine immer größer werdende offene Werkstatt, die für jeden zugänglich sein soll!

+ Mehr Fragen zu uns und was wir machen beantworten wir hier!
diff --git a/web/src/sections/LandingHeader.astro b/web/src/sections/LandingHeader.astro index 87469f3..4fef958 100644 --- a/web/src/sections/LandingHeader.astro +++ b/web/src/sections/LandingHeader.astro @@ -1,3 +1,15 @@ -
-

vspace.one

+--- + +--- + +
+
+

vspace.one

+

+ Ein Makerspace und Hackerspace.
+ Hier gehts zur virtuellen Space-Tour! +

+
diff --git a/web/src/sections/Location.astro b/web/src/sections/Location.astro new file mode 100644 index 0000000..8015496 --- /dev/null +++ b/web/src/sections/Location.astro @@ -0,0 +1,30 @@ +--- +import Card from "@/components/Card.astro"; +import Heading from "@/components/Heading.astro"; +import { getSpaceData } from "@/lib/space-api"; + +const data = await getSpaceData(); +--- + +Wo findest du uns? + +
+

Du findest uns in der Doppelstadt Villingen-Schwenningen.

+

+ {data.location.address} +

+

+ Finde uns über What3Words: + ///rotes.hörer.dorfplatz +

+
+
+ Eine Kartenansicht unseres Standorts. +
+
diff --git a/web/src/sections/Participate.astro b/web/src/sections/Participate.astro index 2ad158d..c6b2155 100644 --- a/web/src/sections/Participate.astro +++ b/web/src/sections/Participate.astro @@ -1,11 +1,12 @@ --- +import Card from "@/components/Card.astro"; import Heading from "@/components/Heading.astro"; ---
Mitmachen -
-
+
+

Vorbeischauen

Du möchtest uns und unsere Räumlichkeiten gerne persönlich kennenlernen? @@ -13,19 +14,17 @@ import Heading from "@/components/Heading.astro"; Villingen vorbei. Dienstags findet bei uns jede Woche der Chaostreff statt.

-
-
+ +

Mitglied werden

Bei uns kann Jeder und Jede mitmachen. Interessierte Schüler, Studenten und Erwachsene, die sich für kreativen Umgang mit Technik begeistern sind willkommen. Wenn euch gefällt was wir tun und ihr uns unterstützen - wollt findet ihr unser Beitrittsformular hier. + wollt findet ihr unser Beitrittsformular hier.

-
-
+ +

Telegram

Für die regelmäßige Kommunikation verwenden wir -

- +
diff --git a/web/src/sections/SpaceState.astro b/web/src/sections/SpaceState.astro index 4da3047..6307d0b 100644 --- a/web/src/sections/SpaceState.astro +++ b/web/src/sections/SpaceState.astro @@ -1,17 +1,28 @@ --- import { cn } from "@/lib/utils"; import { getSpaceData } from "@/lib/space-api"; +import Card from "@/components/Card.astro"; const spaceData = await getSpaceData(); --- -
-

- {spaceData.state.open ? "Offen" : "Geschlossen"} + +

Unser Space ist derzeit

+ +
+
+
+

+ {spaceData.state.open ? "Offen" : "Geschlossen"} +

+
+ +

+ Schaue bei unseren Terminen um herauszufinden wann
du vorbeikommen kannst!

-
+ diff --git a/web/src/styles/global.css b/web/src/styles/global.css index 2af1335..e1bf26c 100644 --- a/web/src/styles/global.css +++ b/web/src/styles/global.css @@ -6,7 +6,7 @@ :root { --color-main: 0 0% 0%; --color-main: 0 0% 10%; - --color-primary: 280 80% 50%; + --color-primary: 150 50% 40%; --color-neutral: 0 0% 100%; --color-neutral-accent: 0 0% 93%; --color-highlight: 264 100% 50%; @@ -79,12 +79,22 @@ h4 { @apply text-lg; } +a { + @apply underline; +} +a:hover { + @apply decoration-main text-main; +} [astro-icon] { fill: currentColor; } +td { + @apply px-3 py-1 border; +} + article { & h1, h2, h3, h4, h5 { @@ -99,6 +109,25 @@ article { p, li { - @apply max-w-[600px] whitespace-pre-line text-base text-secondary; + @apply max-w-[600px] text-base text-secondary; line-height: 1.5; +} + +@keyframes pageEnter { + from { + transform: translateY(40px); + opacity: 0; + } + to { + opacity: 1; + transform: translateY(0); + } +} +@keyframes pageLeave { + from { + opacity: 1; + } + to { + opacity: 0; + } } \ No newline at end of file diff --git a/web/src/styles/markdown.css b/web/src/styles/markdown.css new file mode 100644 index 0000000..a38c40b --- /dev/null +++ b/web/src/styles/markdown.css @@ -0,0 +1,23 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +h1 { + @apply !mb-4 !mt-8; +} + +h1, h2, h3,h4,h5 { + @apply !mb-4 !mt-6; +} + +p { + @apply !mb-2; +} + +ul { + @apply !ml-4; +} + +li { + @apply !ml-4; +} \ No newline at end of file diff --git a/web/tailwind.config.cjs b/web/tailwind.config.cjs index b43d158..b2ac864 100644 --- a/web/tailwind.config.cjs +++ b/web/tailwind.config.cjs @@ -58,6 +58,7 @@ module.exports = { }, }, plugins: [ + require("tailwindcss-animate"), plugin(function ({ addVariant }) { addVariant("hocus", ["&:hover", "&:focus"]); }), diff --git a/web/tsconfig.json b/web/tsconfig.json index bf21cde..d4d0ce0 100644 --- a/web/tsconfig.json +++ b/web/tsconfig.json @@ -6,6 +6,11 @@ "@/*": [ "./*" ] - } + }, + "plugins": [ + { + "name": "@astrojs/ts-plugin" + }, + ], } } \ No newline at end of file