D branch 1 (#10)

* fix: update Umami script source to use HTTPS

Change the Umami script source from HTTP to HTTPS to enhance 
security and ensure that the script is loaded securely. This 
improves the overall integrity of the application by preventing 
mixed content issues.

* feat: add legal notice page and update footer component

Creates a new legal notice page with necessary content and links. 
Updates the Footer_Back component for improved formatting and 
consistency. These changes ensure compliance with legal 
requirements and enhance user experience.
This commit is contained in:
Denshooter
2025-02-11 01:37:57 +01:00
committed by GitHub
parent f9f9097991
commit 433a3c6d58
4 changed files with 433 additions and 154 deletions

View File

@@ -1,58 +1,80 @@
import Link from "next/link"; import Link from "next/link";
import {useEffect, useState} from "react"; import { useEffect, useState } from "react";
export default function Footer() { export default function Footer() {
const [isVisible, setIsVisible] = useState(false); const [isVisible, setIsVisible] = useState(false);
useEffect(() => { useEffect(() => {
setTimeout(() => { setTimeout(() => {
setIsVisible(true); setIsVisible(true);
}, 450); // Delay to start the animation }, 450); // Delay to start the animation
}, []); }, []);
const scrollToSection = (id: string) => { const scrollToSection = (id: string) => {
const element = document.getElementById(id); const element = document.getElementById(id);
if (element) { if (element) {
element.scrollIntoView({behavior: "smooth"}); element.scrollIntoView({ behavior: "smooth" });
} }
}; };
return ( return (
<footer <footer
className={`p-3 bg-gradient-to-br from-white/60 to-white/30 backdrop-blur-lg rounded-2xl shadow-xl text-center text-gray-800 ${isVisible ? 'animate-fly-in' : 'opacity-0'}`}> className={`sticky- bottom-0 p-3 bg-gradient-to-br from-white/60 to-white/30 backdrop-blur-lg rounded-2xl shadow-xl text-center text-gray-800 ${isVisible ? "animate-fly-in" : "opacity-0"}`}
<div className={`flex flex-col md:flex-row items-center justify-between`}> >
<div className={`flex-col items-center`}> <div className={`flex flex-col md:flex-row items-center justify-between`}>
<h1 className="md:text-xl font-bold">Thank You for Visiting</h1> <div className={`flex-col items-center`}>
<p className="md:mt-1 text-lg">Connect with me on social platforms:</p> <h1 className="md:text-xl font-bold">Thank You for Visiting</h1>
<div className="flex justify-center items-center space-x-4 mt-4"> <p className="md:mt-1 text-lg">
<Link href="https://github.com/Denshooter" target="_blank"> Connect with me on social platforms:
<svg className="w-10 h-10" fill="currentColor" viewBox="0 0 24 24"> </p>
<path <div className="flex justify-center items-center space-x-4 mt-4">
d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.387.6.11.82-.26.82-.577v-2.17c-3.338.726-4.042-1.61-4.042-1.61-.546-1.387-1.333-1.757-1.333-1.757-1.09-.746.083-.73.083-.73 1.205.084 1.84 1.237 1.84 1.237 1.07 1.835 2.807 1.305 3.492.997.108-.774.42-1.305.763-1.605-2.665-.305-5.466-1.332-5.466-5.93 0-1.31.467-2.38 1.235-3.22-.123-.303-.535-1.527.117-3.18 0 0 1.008-.322 3.3 1.23.957-.266 1.98-.4 3-.405 1.02.005 2.043.14 3 .405 2.29-1.552 3.297-1.23 3.297-1.23.653 1.653.24 2.877.118 3.18.77.84 1.233 1.91 1.233 3.22 0 4.61-2.803 5.62-5.475 5.92.43.37.823 1.1.823 2.22v3.293c0 .32.218.694.825.577C20.565 21.8 24 17.3 24 12c0-6.63-5.37-12-12-12z"/> <Link href="https://github.com/Denshooter" target="_blank">
</svg> <svg
</Link> className="w-10 h-10"
<Link href="https://linkedin.com/in/dkonkol" target="_blank"> fill="currentColor"
<svg className="w-10 h-10" fill="currentColor" viewBox="0 0 24 24"> viewBox="0 0 24 24"
<path >
d="M19 0h-14c-2.76 0-5 2.24-5 5v14c0 2.76 2.24 5 5 5h14c2.76 0 5-2.24 5-5v-14c0-2.76-2.24-5-5-5zm-11 19h-3v-10h3v10zm-1.5-11.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5 11.5h-3v-5.5c0-1.38-1.12-2.5-2.5-2.5s-2.5 1.12-2.5 2.5v5.5h-3v-10h3v1.5c.83-1.17 2.17-1.5 3.5-1.5 2.48 0 4.5 2.02 4.5 4.5v5.5z"/> <path d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.387.6.11.82-.26.82-.577v-2.17c-3.338.726-4.042-1.61-4.042-1.61-.546-1.387-1.333-1.757-1.333-1.757-1.09-.746.083-.73.083-.73 1.205.084 1.84 1.237 1.84 1.237 1.07 1.835 2.807 1.305 3.492.997.108-.774.42-1.305.763-1.605-2.665-.305-5.466-1.332-5.466-5.93 0-1.31.467-2.38 1.235-3.22-.123-.303-.535-1.527.117-3.18 0 0 1.008-.322 3.3 1.23.957-.266 1.98-.4 3-.405 1.02.005 2.043.14 3 .405 2.29-1.552 3.297-1.23 3.297-1.23.653 1.653.24 2.877.118 3.18.77.84 1.233 1.91 1.233 3.22 0 4.61-2.803 5.62-5.475 5.92.43.37.823 1.1.823 2.22v3.293c0 .32.218.694.825.577C20.565 21.8 24 17.3 24 12c0-6.63-5.37-12-12-12z" />
</svg> </svg>
</Link> </Link>
</div> <Link href="https://linkedin.com/in/dkonkol" target="_blank">
</div> <svg
<div className="mt-4 md:absolute md:left-1/2 md:transform md:-translate-x-1/2"> className="w-10 h-10"
<button onClick={() => scrollToSection("about")} fill="currentColor"
className="p-4 mt-4 md:px-4 md:my-6 text-white bg-gradient-to-r from-blue-500 to-purple-500 rounded-2xl hover:from-blue-600 hover:to-purple-600 transition"> viewBox="0 0 24 24"
Back to Top >
</button> <path d="M19 0h-14c-2.76 0-5 2.24-5 5v14c0 2.76 2.24 5 5 5h14c2.76 0 5-2.24 5-5v-14c0-2.76-2.24-5-5-5zm-11 19h-3v-10h3v10zm-1.5-11.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5 11.5h-3v-5.5c0-1.38-1.12-2.5-2.5-2.5s-2.5 1.12-2.5 2.5v5.5h-3v-10h3v1.5c.83-1.17 2.17-1.5 3.5-1.5 2.48 0 4.5 2.02 4.5 4.5v5.5z" />
</div> </svg>
<div className="flex-col"> </Link>
<div className="mt-4"> </div>
<Link href="/privacy-policy" className="text-blue-800 transition-underline">Privacy </div>
Policy</Link> <div className="mt-4 md:absolute md:left-1/2 md:transform md:-translate-x-1/2">
</div> <button
<p className="md:mt-4">© Dennis Konkol 2025</p> onClick={() => scrollToSection("about")}
</div> className="p-4 mt-4 md:px-4 md:my-6 text-white bg-gradient-to-r from-blue-500 to-purple-500 rounded-2xl hover:from-blue-600 hover:to-purple-600 transition"
</div> >
</footer> Back to Top
); </button>
} </div>
<div className="flex-col">
<div className="mt-4">
<Link
href="/privacy-policy"
className="text-blue-800 transition-underline"
>
Privacy Policy
</Link>
<Link
href="/legal-notice"
className="ml-4 text-blue-800 transition-underline"
>
Legal Notice
</Link>
</div>
<p className="md:mt-4">© Dennis Konkol 2025</p>
</div>
</div>
</footer>
);
}

View File

@@ -1,50 +1,71 @@
import Link from "next/link"; import Link from "next/link";
import {useEffect, useState} from "react"; import { useEffect, useState } from "react";
export default function Footer_Back() { export default function Footer_Back() {
const [isVisible, setIsVisible] = useState(false); const [isVisible, setIsVisible] = useState(false);
useEffect(() => { useEffect(() => {
setTimeout(() => { setTimeout(() => {
setIsVisible(true); setIsVisible(true);
}, 450); // Delay to start the animation }, 450); // Delay to start the animation
}, []); }, []);
return ( return (
<footer <footer
className={`p-3 bg-gradient-to-br from-white/60 to-white/30 backdrop-blur-lg rounded-2xl shadow-xl text-center text-gray-800 ${isVisible ? 'animate-fly-in' : 'opacity-0'}`}> className={`p-3 bg-gradient-to-br from-white/60 to-white/30 backdrop-blur-lg rounded-2xl shadow-xl text-center text-gray-800 ${isVisible ? "animate-fly-in" : "opacity-0"}`}
<div className={`flex flex-col md:flex-row items-center justify-between`}> >
<div className={`flex-col items-center`}> <div className={`flex flex-col md:flex-row items-center justify-between`}>
<p className="md:mt-1 text-lg">Connect with me on social platforms:</p> <div className={`flex-col items-center`}>
<div className="flex justify-center items-center space-x-4 mt-4"> <p className="md:mt-1 text-lg">
<Link href="https://github.com/Denshooter" target="_blank"> Connect with me on social platforms:
<svg className="w-10 h-10" fill="currentColor" viewBox="0 0 24 24"> </p>
<path <div className="flex justify-center items-center space-x-4 mt-4">
d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.387.6.11.82-.26.82-.577v-2.17c-3.338.726-4.042-1.61-4.042-1.61-.546-1.387-1.333-1.757-1.333-1.757-1.09-.746.083-.73.083-.73 1.205.084 1.84 1.237 1.84 1.237 1.07 1.835 2.807 1.305 3.492.997.108-.774.42-1.305.763-1.605-2.665-.305-5.466-1.332-5.466-5.93 0-1.31.467-2.38 1.235-3.22-.123-.303-.535-1.527.117-3.18 0 0 1.008-.322 3.3 1.23.957-.266 1.98-.4 3-.405 1.02.005 2.043.14 3 .405 2.29-1.552 3.297-1.23 3.297-1.23.653 1.653.24 2.877.118 3.18.77.84 1.233 1.91 1.233 3.22 0 4.61-2.803 5.62-5.475 5.92.43.37.823 1.1.823 2.22v3.293c0 .32.218.694.825.577C20.565 21.8 24 17.3 24 12c0-6.63-5.37-12-12-12z"/> <Link href="https://github.com/Denshooter" target="_blank">
</svg> <svg
</Link> className="w-10 h-10"
<Link href="https://linkedin.com/in/dkonkol" target="_blank"> fill="currentColor"
<svg className="w-10 h-10" fill="currentColor" viewBox="0 0 24 24"> viewBox="0 0 24 24"
<path >
d="M19 0h-14c-2.76 0-5 2.24-5 5v14c0 2.76 2.24 5 5 5h14c2.76 0 5-2.24 5-5v-14c0-2.76-2.24-5-5-5zm-11 19h-3v-10h3v10zm-1.5-11.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5 11.5h-3v-5.5c0-1.38-1.12-2.5-2.5-2.5s-2.5 1.12-2.5 2.5v5.5h-3v-10h3v1.5c.83-1.17 2.17-1.5 3.5-1.5 2.48 0 4.5 2.02 4.5 4.5v5.5z"/> <path d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.387.6.11.82-.26.82-.577v-2.17c-3.338.726-4.042-1.61-4.042-1.61-.546-1.387-1.333-1.757-1.333-1.757-1.09-.746.083-.73.083-.73 1.205.084 1.84 1.237 1.84 1.237 1.07 1.835 2.807 1.305 3.492.997.108-.774.42-1.305.763-1.605-2.665-.305-5.466-1.332-5.466-5.93 0-1.31.467-2.38 1.235-3.22-.123-.303-.535-1.527.117-3.18 0 0 1.008-.322 3.3 1.23.957-.266 1.98-.4 3-.405 1.02.005 2.043.14 3 .405 2.29-1.552 3.297-1.23 3.297-1.23.653 1.653.24 2.877.118 3.18.77.84 1.233 1.91 1.233 3.22 0 4.61-2.803 5.62-5.475 5.92.43.37.823 1.1.823 2.22v3.293c0 .32.218.694.825.577C20.565 21.8 24 17.3 24 12c0-6.63-5.37-12-12-12z" />
</svg> </svg>
</Link> </Link>
</div> <Link href="https://linkedin.com/in/dkonkol" target="_blank">
</div> <svg
<div className="mt-4 md:absolute md:left-1/2 md:transform md:-translate-x-1/2"> className="w-10 h-10"
<Link href={"/"} fill="currentColor"
className="p-4 mt-4 md:px-4 md:my-6 text-white bg-gradient-to-r from-blue-500 to-purple-500 rounded-2xl hover:from-blue-600 hover:to-purple-600 transition"> viewBox="0 0 24 24"
Back to main page >
</Link> <path d="M19 0h-14c-2.76 0-5 2.24-5 5v14c0 2.76 2.24 5 5 5h14c2.76 0 5-2.24 5-5v-14c0-2.76-2.24-5-5-5zm-11 19h-3v-10h3v10zm-1.5-11.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5 11.5h-3v-5.5c0-1.38-1.12-2.5-2.5-2.5s-2.5 1.12-2.5 2.5v5.5h-3v-10h3v1.5c.83-1.17 2.17-1.5 3.5-1.5 2.48 0 4.5 2.02 4.5 4.5v5.5z" />
</div> </svg>
<div className="flex-col"> </Link>
<div className="mt-4"> </div>
<Link href="/privacy-policy" className="text-blue-800 transition-underline">Privacy </div>
Policy</Link> <div className="mt-4 md:absolute md:left-1/2 md:transform md:-translate-x-1/2">
</div> <Link
<p className="md:mt-4">© Dennis Konkol 2025</p> href={"/"}
</div> className="p-4 mt-4 md:px-4 md:my-6 text-white bg-gradient-to-r from-blue-500 to-purple-500 rounded-2xl hover:from-blue-600 hover:to-purple-600 transition"
</div> >
</footer> Back to main page
); </Link>
} </div>
<div className="flex-col">
<div className="mt-4">
<Link
href="/privacy-policy"
className="text-blue-800 transition-underline"
>
Privacy Policy
</Link>
<Link
href="/legal-notice"
className="ml-4 text-blue-800 transition-underline"
>
Legal Notice
</Link>
</div>
<p className="md:mt-4">© Dennis Konkol 2025</p>
</div>
</div>
</footer>
);
}

68
app/legal-notice/page.tsx Normal file
View File

@@ -0,0 +1,68 @@
"use client";
import React from "react";
import Header from "../components/Header";
import Footer_Back from "../components/Footer_Back";
import Link from "next/link";
export default function LegalNotice() {
return (
<div className="min-h-screen flex flex-col bg-radiant-animated">
<Header />
<div className="h-10"></div>
<main className="flex-grow p-10">
<h1 className="text-3xl font-bold">Impressum</h1>
<p className="mt-4">
<strong>
Verantwortlicher für die Inhalte dieser Website (auch Redaktionell):{" "}
<br />
</strong>
<strong>Name:</strong> Dennis Konkol
<br />
<strong>Adresse:</strong> Auf dem Ziegenbrink 2B, 49082 Osnabrück,
Deutschland
<br />
<strong>E-Mail:</strong>{" "}
<Link href={"mailto:info@dki.one"} className="transition-underline">
info@dki.one
</Link>{" "}
<br />
<strong>Telefon:</strong>{" "}
<Link href={"tel:+4917612669990"} className="transition-underline">
+49 176 12669990
</Link>
<br />
<strong>Website:</strong>{" "}
<Link href={"https://www.dki.one"} className="transition-underline">
{" "}
dki.one{" "}
</Link>
</p>
<h2 className="text-2xl font-semibold mt-6">Haftung für Links</h2>
<p className="mt-2">
Meine Website enthält Links auf externe Websites. Ich habe keinen
Einfluss auf die Inhalte dieser Websites und kann daher keine Gewähr
übernehmen. Für die Inhalte der verlinkten Seiten ist stets der
Betreiber oder Anbieter der Seiten verantwortlich.
</p>
<h2 className="text-2xl font-semibold mt-6">Urheberrecht</h2>
<p className="mt-2">
Alle Inhalte dieser Website, einschließlich Texte, Fotos und Designs,
stehen unter Urheberrechtsschutz. Jegliche Nutzung ohne vorherige
schriftliche Zustimmung des Urhebers ist verboten.
</p>
<h2 className="text-2xl font-semibold mt-6">Gewährleistung</h2>
<p className="mt-2">
Die Nutzung der Inhalte dieser Website erfolgt auf eigene Gefahr. Als
Diensteanbieter kann ich keine Gewähr übernehmen für Schäden, die
entstehen können, durch den Zugriff oder die Nutzung dieser Website.
</p>
<p className="font-semibold mt-6">Letzte Aktualisierung: 11.02.2025</p>
</main>
<Footer_Back />
</div>
);
}

View File

@@ -1,66 +1,234 @@
'use client'; "use client";
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import Header from "../components/Header"; import Header from "../components/Header";
import Footer_Back from "../components/Footer_Back"; import Footer_Back from "../components/Footer_Back";
import Link from "next/link";
export default function PrivacyPolicy() { export default function PrivacyPolicy() {
const [isVisible, setIsVisible] = useState(false); const [isVisible, setIsVisible] = useState(false);
useEffect(() => { useEffect(() => {
setTimeout(() => { setTimeout(() => {
setIsVisible(true); setIsVisible(true);
}, 350); }, 350);
}, []); }, []);
return ( return (
<div className={`min-h-screen flex flex-col bg-radiant-animated ${isVisible ? 'animate-fly-in' : 'opacity-0'}`}> <div
<Header /> className={`min-h-screen flex flex-col bg-radiant-animated ${isVisible ? "animate-fly-in" : "opacity-0"}`}
<div className="h-10"></div> >
<main className="flex-grow p-10"> <Header />
<h1 className="text-3xl font-bold">Privacy Policy</h1> <div className="h-10"></div>
<p className="mt-4"> <main className="flex-grow p-10">
This Privacy Policy explains how I collect, use, and protect your information when you use my <h1 className="text-3xl font-bold">Datenschutzerklärung</h1>
website. <p className="mt-4">
</p> Der Schutz Ihrer persönlichen Daten ist mir wichtig. In dieser
<h2 className="text-2xl font-semibold mt-6">Information We Collect</h2> Datenschutzerklärung informiere ich Sie über die Verarbeitung
<p className="mt-2"> personenbezogener Daten im Rahmen meines Internet-Angebots.
I use Umami Web Analytics to collect anonymized data about the usage of my website. This includes </p>
information such as page views, time spent on pages, and general interaction metrics. No personally <h2 className="text-2xl font-semibold mt-6">
identifiable information is stored or processed. Verantwortlicher für die Datenverarbeitung
</p> </h2>
<h2 className="text-2xl font-semibold mt-6">How I Use Your Information</h2> <p className="mt-2">
<p className="mt-2"> <strong>Name:</strong> Dennis Konkol <br />
The collected data is used solely to improve the performance, usability, and user experience of my <strong>Adresse:</strong> Auf dem Ziegenbrink 2B, 49082 Osnabrück,
website. Since all data is anonymized, it cannot be linked back to any individual. Deutschland <br />
</p> <strong>E-Mail:</strong>{" "}
<h2 className="text-2xl font-semibold mt-6">Third-Party Services</h2> <Link className="transition-underline" href={"mailto:info@dki.one"}>
<p className="mt-2"> info@dki.one
Umami is a privacy-focused analytics tool that does not use cookies or track users across different </Link>{" "}
sites. More information can be found on the official Umami website. <br />
</p> <strong>Telefon:</strong>{" "}
<h2 className="text-2xl font-semibold mt-6">Contact Form</h2> <Link className="transition-underline" href={"tel:+4917612669990"}>
<p className="mt-2"> +49 176 12669990
If you use the contact form on my website, the submitted information will be sent to me via email. </Link>
This data is not stored or shared with third parties and is used solely to respond to your inquiry. <br />
</p> <strong>Website:</strong>{" "}
<h2 className="text-2xl font-semibold mt-6">Social Media Links</h2> <Link className="transition-underline" href={"https://www.dki.one"}>
<p className="mt-2"> {" "}
My website contains links to GitHub and LinkedIn. Clicking on these links may result in data dki.one{" "}
collection by the respective platforms, subject to their own privacy policies. </Link>{" "}
</p> <br />
<h2 className="text-2xl font-semibold mt-6">Your Rights</h2> <br />
<p className="mt-2"> Diese Datenschutzerklärung gilt für die Verarbeitung personenbezogener
Since the collected data is fully anonymized, individual deletion requests are not applicable. Daten durch den oben genannten Verantwortlichen.
However, if you have any concerns, you can contact me. </p>
</p> <h2 className="text-2xl font-semibold mt-6">
<h2 className="text-2xl font-semibold mt-6">Contact Us</h2> Erfassung allgemeiner Informationen beim Besuch meiner Website
<p className="mt-2"> </h2>
If you have any questions about this Privacy Policy, please contact me at info@dki.one or use the <p className="mt-2">
contact form. Beim Zugriff auf meiner Website werden automatisch Informationen
</p> allgemeiner Natur erfasst. Diese beinhalten unter anderem:
</main> <ul className="list-disc list-inside mt-2">
<Footer_Back /> <li>IP-Adresse (in anonymisierter Form)</li>
</div> <li>Uhrzeit</li>
); <li>Browsertyp</li>
<li>Verwendetes Betriebssystem</li>
<li>Referrer-URL (die zuvor besuchte Seite)</li>
</ul>
<br />
Diese Informationen werden anonymisiert erfasst und dienen
ausschließlich statistischen Auswertungen. Rückschlüsse auf Ihre
Person sind nicht möglich. Diese Daten werden verarbeitet, um:
<ul className="list-disc list-inside mt-2">
<li>die Inhalte meiner Website korrekt auszuliefern,</li>
<li>die Inhalte meiner Website zu optimieren,</li>
<li>die Systemsicherheit und -stabilität zu analysiern.</li>
</ul>
</p>
<h2 className="text-2xl font-semibold mt-6">Cookies</h2>
<p className="mt-2">
Meine Website verwendet keine Cookies. Daher ist kein
Cookie-Consent-Banner erforderlich.
</p>
<h2 className="text-2xl font-semibold mt-6">
Analyse- und Tracking-Tools
</h2>
<p className="mt-2">
Die nachfolgend beschriebene Analyse- und Tracking-Methode (im
Folgenden Maßnahme genannt) basiert auf Art. 6 Abs. 1 S. 1 lit. f
DSGVO. Durch diese Maßnahme möchten ich eine benutzerfreundliche
Gestaltung sowie eine kontinuierliche Verbesserung meiner Website
sicherstellen. Diese Interessen sind im Sinne der genannten Vorschrift
als berechtigt anzusehen.
<br />
<br />
Rechtsgrundlage: Art. 6 Abs. 1 S. 1 lit. f DSGVO (berechtigtes
Interesse an der Analyse und Optimierung unserer Website).
<br />
<br />
Detaillierte Informationen zu den erhobenen Daten und deren
Verarbeitung finden Sie in den nachfolgenden Abschnitten.
<br />
<br />
Zur Analyse der Nutzung meiner Website setze ich Umami ein. Umami
speichert keine IP-Adressen oder Cookies. Alle erfassten Daten sind
anonymisiert. Da ich Umami auf meinem eigenen Server betreibe, erfolgt
keine Weitergabe an Dritte. Weitere Informationen finden Sie unter{" "}
<Link
className="text-blue-700 transition-underline"
href={"https://umami.is"}
>
Umami
</Link>
.
</p>
<h2 className="text-2xl font-semibold mt-6">Kontaktformular</h2>
<p className="mt-2">
Wenn Sie das Kontaktformular nutzen, werden Ihre Angaben zur
Bearbeitung Ihrer Anfrage gespeichert. Diese Daten werden nicht an
Dritte weitergegeben und nach Erfüllung des Zwecks gelöscht. <br />
<br />
Rechtsgrundlage: Art. 6 Abs. 1 S. 1 lit. a DSGVO (Einwilligung).
</p>
<h2 className="text-2xl font-semibold mt-6">Social Media Links</h2>
<p className="mt-2">
Unsere Website enthält Links zu GitHub und LinkedIn. Durch das
Anklicken dieser Links gelten die Datenschutzbestimmungen der
jeweiligen Anbieter.
</p>
<h2 className="text-2xl font-semibold mt-6">Weitergabe von Daten</h2>
<p className="mt-2">
Eine Weitergabe Ihrer personenbezogenen Daten erfolgt nur, wenn:
<ul className="list-disc list-inside mt-2">
<li>
Sie nach Art. 6 Abs. 1 S. 1 lit. a DSGVO ausdrücklich eingewilligt
haben,
</li>
<li>
dies zur Vertragserfüllung gemäß Art. 6 Abs. 1 S. 1 lit. b DSGVO
erforderlich ist,
</li>
<li>
eine gesetzliche Verpflichtung zur Weitergabe nach Art. 6 Abs. 1
S. 1 lit. c DSGVO besteht oder
</li>
<li>
die Verarbeitung nach Art. 6 Abs. 1 S. 1 lit. f DSGVO zur Wahrung
berechtigter Interessen erforderlich ist.
</li>
</ul>
</p>
<h2 className="text-2xl font-semibold mt-6">
Speicherdauer und Löschung
</h2>
<p className="mt-2">
Ihre Daten werden nur solange gespeichert, wie dies für die Erfüllung
des Verarbeitungszwecks erforderlich ist. Nach Erfüllung des Zwecks
werden Ihre Daten gelöscht.
</p>
<h2 className="text-2xl font-semibold mt-6">Ihre Rechte</h2>
<p className="mt-2">
Sie haben gemäß DSGVO folgende Rechte:
<ul className="list-disc list-inside mt-2">
<li>
Art. 15 DSGVO: Auskunftsrecht über Ihre von mir gespeicherten
Daten
</li>
<li>
Art. 16 DSGVO: Recht auf Berichtigung unrichtiger oder
unvollständiger Daten
</li>
<li>
Art. 17 DSGVO: Recht auf Löschung Ihrer bei mir gespeicherten
Daten (soweit keine gesetzlichen Aufbewahrungspflichten
entgegenstehen)
</li>
<li>
Art. 18 DSGVO: Recht auf Einschränkung der Verarbeitung Ihrer
Daten
</li>
<li>Art. 20 DSGVO: Recht auf Datenübertragbarkeit</li>
<li>
Art. 21 DSGVO: Widerspruchsrecht gegen die Verarbeitung Ihrer
Daten
</li>
</ul>
<br />
Falls Sie eine Einwilligung erklärt haben, können Sie diese jederzeit
widerrufen.
<br />
Beschwerden können Sie an die zuständige Datenschutzaufsichtsbehörde
richten. Eine Liste der Datenschutzbeauftragten sowie deren
Kontaktdaten finden Sie unter:{" "}
<Link
className="text-blue-700 transition-underline"
href={"https://www.bfdi.bund.de/"}
>
https://www.bfdi.bund.de/
</Link>
</p>
<h2 className="text-2xl font-semibold mt-6">Datensicherheit</h2>
<p className="mt-2">
Ich setze technische und organisatorische Maßnahmen ein, um Ihre Daten
zu schützen. Dazu gehören unter anderem die SSL-Verschlüsselung. Diese
Verschlüsselung erkennen Sie an dem Schloss-Symbol in der Adresszeile
Ihres Browsers und an der URL, die mit &#34;https://&#34; beginnt.
</p>
<h2 className="text-2xl font-semibold mt-6">Kontakt</h2>
<p className="mt-2">
Bei Fragen zur Datenschutzerklärung kontaktieren Sie mich unter{" "}
<Link
href="mailto:info@dki.one"
className="text-blue-700 transition-underline"
>
info@dki.one
</Link>{" "}
oder nutzen Sie das Kontaktformular auf meiner Website.
</p>
<h2 className="text-2xl font-semibold mt-6">
Änderungen der Datenschutzerklärung
</h2>
<p className="mt-2">
Diese Datenschutzerklärung wird regelmäßig aktualisiert, um den
gesetzlichen Anforderungen zu entsprechen und neue Entwicklungen zu
berücksichtigen. Die jeweils aktuelle Datenschutzerklärung finden Sie
auf meiner Website.
</p>
<p className="mt-6 font-bold">Letzte Aktualisierung: 11.02.2025</p>
</main>
<Footer_Back />
</div>
);
} }