First commit - add essential files

This commit is contained in:
simonaltschaffl@gmail.com 2025-04-27 20:24:30 +02:00
commit 00041a5d83
21 changed files with 18763 additions and 0 deletions

23
.gitignore vendored Normal file
View File

@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

70
README.md Normal file
View File

@ -0,0 +1,70 @@
# Getting Started with Create React App
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `npm start`
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
The page will reload when you make changes.\
You may also see any lint errors in the console.
### `npm test`
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `npm run build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `npm run eject`
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).
### Code Splitting
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
### Analyzing the Bundle Size
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
### Making a Progressive Web App
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
### Advanced Configuration
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
### Deployment
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
### `npm run build` fails to minify
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)

17869
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

42
package.json Normal file
View File

@ -0,0 +1,42 @@
{
"name": "homepage",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^13.5.0",
"bootstrap": "^5.3.5",
"react": "^19.1.0",
"react-bootstrap": "^2.10.9",
"react-dom": "^19.1.0",
"react-router-dom": "^7.5.2",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

43
public/index.html Normal file
View File

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

BIN
public/logo192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
public/logo512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

25
public/manifest.json Normal file
View File

@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

3
public/robots.txt Normal file
View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

51
src/components/about.jsx Normal file
View File

@ -0,0 +1,51 @@
import React, { Component } from 'react';
function AboutPage() {
return (
<section>
<div className='center-titles'>
<h1>Über mich</h1>
<div className='space'>
<p>
<b>Auf dieser Seite möchte ich Ihnen einen Einblick in meine Reise in die faszinierende Welt der Informatik geben. Als 20-jähriger Schüler für Wirtschaftsinformatik an der EDV-Schule Plattling ist meine Begeisterung für das Programmieren und die Möglichkeiten der Datenanalyse stetig gewachsen.</b>
</p>
<h2 className='space'>Motivation und Leidenschaft für die Informatik</h2>
<h3>Wie ich zur Informatik gekommen bin</h3>
<p>
Den Weg der Informatik habe ich vor wenigen Jahren gefunden nachdem ich das erste mal programmiert habe und sofort den Erfolg verspüren konnte der mich bis heute noch antreibt weiter zu machen. Ich bin zwar schon seit viele Jahren sehr stark von
Computern begeistert jedoch war ich mir bis dahin nicht so sicher was ich mit dieser Begeisterung anfangen sollte, daher habe ich mich dann entschieden das Programmieren auszuprobieren.
</p>
<h3>Wieso Data Science</h3>
<p>
Das Interesse an Data Science ist entstanden während ich CS50X (Online Kurs der Harvard Universität) gemacht habe. Dort war eine Woche die den Datenbanken gewidmet war wo ich eine gewisse Verbindung mit den Daten verspürt habe,
im anschluss habe ich mehrere Tage nichts anderes gemacht als SQL Querys zu schreiben und Datenbanken zu konzeptieren. Durch den IBM Data Science Kurs wurde mein Interesse an Data Science nochmal verstärkt wie ich
das erste mal gelernt habe, wie man Daten nutzen kann um ein Model anzupassen, dass es neue Informationen in Form von Daten schafft.
</p>
<h3>Sonstige Interessen in der Informatik</h3>
<p>
Neben Data Science bin ich auch sehr begeistert von Server Adminstration was auch ein Grund war wieso ich mich entschieden habe diese Website aufzubauen. Dieses Interesse habe ich vorallem in der EDV-Schule gefunden wie
wir unsere ersten eigenen Server in der Praxis aufgesetzt haben. Dort habe ich gesehen wie intressant es ist was man alles bei einem Server beachten muss wie z.B. Sicherheit und Wartbarkeit.
</p>
</div>
<div>
<h2 className='space'>Meine Lernbereitschaft und Engagement</h2>
<h3>Mein Weg zum Wissen</h3>
<p>
Der Großteil meines Wissens kommt durch die Schule und durch Online Kurse welche ich während meiner Zeit als Großhandelskaufmann neben der Arbeit in meiner Freizeit absolivert habe. Die wichtigsten Kurse (länger als eine Woche) sind vorallem
CS50X (Computer Science) und IBM Data Science. In diesen beiden Kursen habe ich sowohl die Grundlagen in der Informatik als auch in Data Science erhalten, außerdem habe mir diese beiden Kurse sehr stark bei der Entscheidungsfinden für mein Fachbereich geholgen.
Die EDV-Schule ergänzt dieses Wissen und erweitert es mit vielen neuen Dingen vorallem wenn es darum geht das Wissen mit der Wirtschaft zu verknüpfen.
</p>
<h3>Wie verstärke ich mein Wissen in der Zukunft</h3>
<p>
Einerseitz bin ich noch über ein Jahr Schüler an der EDV-Schule bei welcher ich noch an viel Wissen erhalten werden. Andererseit habe ich vor in naher Zukunft verstärkt auf Projekte zu setzen zu dem zählt auch diese Website. In meinen nächsten Projekte will ich vorallem dann in den
bereich von Data Science und AI gehen um eine "Headstart" für ein (Duales-)Studium im Bereich Data Science zu bekommen.
</p>
</div>
</div>
</section>
);
}
export default AboutPage

75
src/components/app.jsx Normal file
View File

@ -0,0 +1,75 @@
import React, { Component } from "react";
import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom";
import Navigation from "./navigation";
import FooterSection from "./footerSection";
import ImpressumSide from "./impressum";
import PrivacyPage from "./privacy";
import HomePage from "./home";
import AboutPage from "./about";
import GoalsPage from "./goals";
import ContactPage from "./contact";
// Deine Komponenten für die verschiedenen Seiten
function Home() {
return <HomePage />;
}
function About() {
return <AboutPage />;
}
function Goals() {
return <GoalsPage />;
}
function Contact() {
return <ContactPage />;
}
function Impressum() {
return <ImpressumSide />;
}
function Privacy(){
return <PrivacyPage />;
}
{
/* For the Projects */
}
function LanguageStudy() {
return <h2>Sprachstudie</h2>;
}
function Server() {
return <h2>Server</h2>;
}
function App() {
return (
<Router>
<Navigation />
<div className="content">
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about-me" element={<About />} />
<Route path="/goals" element={<Goals />} />
<Route path="/contact" element={<Contact />} />
<Route path="/impressum" element={<Impressum />} />
<Route path="/privacy" element={<Privacy />} />
{/* For the Projects */}
<Route path="/projects/languagestudy" element={<LanguageStudy />} />
<Route path="/projects/server" element={<Server />} />
</Routes>
</div>
<FooterSection />
</Router>
);
}
export default App;

View File

@ -0,0 +1,26 @@
import React, { Component } from "react";
function ContactPage() {
return (
<section className="centered">
<h1>Kontakt</h1>
<div>
<p>
Sie erreichen mich am besten per E-Mail unter{" "}
<a href="mailto:simonaltschaffl@gmail.com">
simonaltschaffl@gmail.com
</a>{" "}
<br /> oder per Telefon unter{" "}
<a href="tel:+4915157852478">+49 1515 7852478</a>. <br />
</p>
<p className="space">
Bitte beachten Sie, dass es während meiner Schulzeiten zu <br />
Verzögerungen bei der Beantwortung kommen kann. Ich bemühe mich <br />
jedoch, Ihre Anfrage so schnell wie möglich zu beantworten.
</p>
</div>
</section>
);
}
export default ContactPage;

View File

@ -0,0 +1,15 @@
import React, { Component } from "react";
function FooterSection() {
return (
<footer >
<nav>
<a href="/impressum" className="foot-links">Impressum</a>
<br />
<a href="/privacy" className="foot-links">Datenschutzerkl&auml;rungen</a>
</nav>
</footer>
);
}
export default FooterSection;

55
src/components/goals.jsx Normal file
View File

@ -0,0 +1,55 @@
import React, { Component } from "react";
function GoalsPage() {
return (
<section className="center-titles">
<h1>Meine Ziele</h1>
<div>
<h2 className="space">Derzeitige Ziele</h2>
<div className="centered-list-container">
<ul className="centered-list">
<li>
Meinen Fokus auf die Schule richten, um dem Pensum der Schule
gerecht zu werden
</li>
<li>
Vertiefung meiner Kenntnisse in Python für Data Science (z.B.
Pandas, TensorFlow, NumPy, Scikit-learn)
</li>
<li>
Entwicklung von Data Science Projekten mit Fokus auf vollständige
Applikationen (Frontend: React; Backend Flask, FastAPI; Forschung:
JupyterNotebook)
</li>
</ul>
</div>
</div>
<div>
<h2 className="space">Ziele der nächsten Jahre</h2>
<p>
Für meine Ziele in den nächsten Jahren strebe ich einen guten
Abschluss an meiner derzeitigen Schule zum Staatlich geprüften
Wirtschaftsinformatiker und anschließend ein (duales) Studium im
Bereich Data Science an. Durch diese Ziele habe ich vor, ein Fundament
aufzubauen, welches mir helfen wird, die auf mich zukommenden
Schwierigkeiten zu bewältigen.
</p>
</div>
<div>
<h2 className="space">Langfristige Ziele</h2>
<p>
Langfristig plane ich, meine Kenntnisse immer weiter auszubauen und
diese auch an die Welt und deren Anforderungen, vor allem in dieser
sich schnell entwickelnden Zeit, anzupassen. Ich würde derzeit auch
ein weiteres Studium zum Master nicht ausschließen. Meine
langfristigen Ziele sind aber nicht nur rein auf den IT-Bereich
beschränkt, sondern auch um die Bereiche darum, wie z.B.
Sprachkenntnisse, Soziale Komptenzen oder auch Projektmanagement,
immer weiter zu verbessern.
</p>
</div>
</section>
);
}
export default GoalsPage;

35
src/components/home.jsx Normal file
View File

@ -0,0 +1,35 @@
import React, { Component } from "react";
function HomePage() {
return (
<section className="centered">
<div>
<h1>Startseite</h1>
<p className="space">
<b>
Hallo und danke fürs Daraufklicken! Ich bin Simon Altschäffl, 20
Jahre alt und derzeit Schüler für Wirtschaftsinformatik an der EDV-Schule
Plattling.
</b>
<br />
</p>
<p>
Willkommen auf meiner Website! Hier stelle ich mich detailliert vor,
präsentiere meine Projekte und teile meine Erfahrung in der
Informatik.
</p>
<p>
Entdecken Sie gerne meine Projekte, die bereits abgeschlossen sind oder derzeit noch in Entwicklung sind. Erfahren Sie auch mehr über mich und meine Ziele, außerdem können Sie gerne mit mir Kontakt aufnehmen.
</p>
<p>
Diese Seite ist derzeit auch noch im Aufbau, daher bin ich für das Melden von Fehlern sehr dankbar.
</p>
</div>
</section>
);
}
export default HomePage;

View File

@ -0,0 +1,30 @@
import React, { Component } from "react";
function ImpressumSide() {
return (
<section className="centered">
<h1>Impressum nach § 5 TMG</h1>
<div>
<h2 className="space">Betreiber und Administrator</h2>
<p>
<b>Simon Altsch&auml;ffl</b> <br />
Sammern 6b <br />
94554 Moos
</p>
</div>
<div>
<h2>Kontakt</h2>
<p>
<b>Telefon:&nbsp;</b>
<a href="tel:+4915157852478">+49 1515 7852478</a>
<br />
<b>Email:</b>
<a href="mailto:simonaltschaffl+impressum@gmail.com">simonaltschaffl@gmail.com</a>
</p>
</div>
</section>
);
}
export default ImpressumSide;

View File

@ -0,0 +1,37 @@
import React, { Component } from "react";
import { Navbar, Nav, NavDropdown } from "react-bootstrap";
function Navigation() {
return (
<div className="navigation">
<Navbar bg="light" expand="lg">
<Navbar.Brand className="my-name">Simon Altsch&auml;ffl</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse
id="basic-navbar-nav"
className="justify-content-between"
>
<Nav className="mr-auto">
<Nav.Link href="/">Startseite</Nav.Link>
<Nav.Link href="/about-me">Über mich</Nav.Link>
<Nav.Link href="/goals">Ziele</Nav.Link>
<Nav.Link href="/contact">Kontakt</Nav.Link>
<NavDropdown title="Projekte" id="basic-nav-dropdown">
<NavDropdown.ItemText>Fertige Projekte</NavDropdown.ItemText>
<NavDropdown.Item href="/projects/languagestudy">
Sprachstudie Wikipedia
</NavDropdown.Item>
<NavDropdown.Divider />
<NavDropdown.ItemText>In Arbeit</NavDropdown.ItemText>
<NavDropdown.Item href="/projects/server">
Server Architektur
</NavDropdown.Item>
</NavDropdown>
</Nav>
</Navbar.Collapse>
</Navbar>
</div>
);
}
export default Navigation;

284
src/components/privacy.jsx Normal file
View File

@ -0,0 +1,284 @@
import React, { Component } from "react";
function PrivacyPage() {
return (
<div>
<h1>Datenschutzerklärung</h1>
<p>Stand: 26. April 2025</p>
<h2>Inhaltsübersicht</h2>
<ul className="index">
<li>
<a className="index-link" href="#m3">
Verantwortlicher
</a>
</li>
<li>
<a className="index-link" href="#mOverview">
Übersicht der Verarbeitungen
</a>
</li>
<li>
<a className="index-link" href="#m2427">
Maßgebliche Rechtsgrundlagen
</a>
</li>
<li>
<a className="index-link" href="#m27">
Sicherheitsmaßnahmen
</a>
</li>
<li>
<a className="index-link" href="#m25">
Übermittlung von personenbezogenen Daten
</a>
</li>
<li>
<a className="index-link" href="#m328">
Plug-ins und eingebettete Funktionen sowie Inhalte
</a>
</li>
<li>
<a className="index-link" href="#mRights">
Ihre Rechte als betroffene Person
</a>
</li>
</ul>
<h2 id="m3">Verantwortlicher</h2>
<p>
Simon Altschäffl
<br />
Sammern 6b <br />
94554 Moos
</p>
<p>
E-Mail-Adresse:{" "}
<a href="mailto:simonaltschaffl@gmail.com">simonaltschaffl@gmail.com</a>
</p>
<h2 id="mOverview">Übersicht der Verarbeitungen</h2>
<p>
Die nachfolgende Übersicht fasst die Arten der verarbeiteten Daten und
die Zwecke ihrer Verarbeitung zusammen und verweist auf die betroffenen
Personen.
</p>
<h3>Arten der verarbeiteten Daten</h3>
<ul>
<li>IP-Adressen.</li>
<li>
Kontaktdaten (E-Mail-Adresse, ggf. Name, Telefonnummer), die Sie mir
per E-Mail senden.
</li>
</ul>
<h3>Kategorien betroffener Personen</h3>
<ul>
<li>Nutzer.</li>
</ul>
<h3>Zwecke der Verarbeitung</h3>
<ul>
<li>Server logging.</li>
<li>
Bearbeitung von Kontaktanfragen, die Sie per E-Mail an mir richten.
</li>
</ul>
<h2 id="m2427">Maßgebliche Rechtsgrundlagen</h2>
<p>
<strong>Maßgebliche Rechtsgrundlagen nach der DSGVO: </strong>Im
Folgenden erhalten Sie eine Übersicht der Rechtsgrundlagen der DSGVO,
auf deren Basis wir personenbezogene Daten verarbeiten. Bitte nehmen Sie
zur Kenntnis, dass neben den Regelungen der DSGVO nationale
Datenschutzvorgaben in Ihrem bzw. unserem Wohn- oder Sitzland gelten
können. Sollten ferner im Einzelfall speziellere Rechtsgrundlagen
maßgeblich sein, teilen wir Ihnen diese in der Datenschutzerklärung mit.
</p>
<ul>
<li>
<strong>Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO)</strong> - Die
betroffene Person hat ihre Einwilligung in die Verarbeitung der sie
betreffenden personenbezogenen Daten für einen spezifischen Zweck oder
mehrere bestimmte Zwecke gegeben.
</li>
<li>
<strong>
Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO)
</strong>{" "}
- die Verarbeitung ist zur Wahrung der berechtigten Interessen des
Verantwortlichen oder eines Dritten notwendig, vorausgesetzt, dass die
Interessen, Grundrechte und Grundfreiheiten der betroffenen Person,
die den Schutz personenbezogener Daten verlangen, nicht überwiegen.
</li>
<li>
<strong>
Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO)
</strong>{" "}
- Die Verarbeitung ist zur Wahrung unserer berechtigten Interessen an
der Bearbeitung Ihrer Anfragen und der Kommunikation mit Ihnen
erforderlich.
</li>
</ul>
<p>
<strong>Nationale Datenschutzregelungen in Deutschland: </strong>
Zusätzlich zu den Datenschutzregelungen der DSGVO gelten nationale
Regelungen zum Datenschutz in Deutschland. Hierzu gehört insbesondere
das Gesetz zum Schutz vor Missbrauch personenbezogener Daten bei der
Datenverarbeitung (Bundesdatenschutzgesetz BDSG). Das BDSG enthält
insbesondere Spezialregelungen zum Recht auf Auskunft, zum Recht auf
Löschung, zum Widerspruchsrecht, zur Verarbeitung besonderer Kategorien
personenbezogener Daten, zur Verarbeitung für andere Zwecke und zur
Übermittlung sowie automatisierten Entscheidungsfindung im Einzelfall
einschließlich Profiling. Ferner können Landesdatenschutzgesetze der
einzelnen Bundesländer zur Anwendung gelangen.
</p>
<p>
<strong>Hinweis auf Geltung DSGVO und Schweizer DSG: </strong>Diese
Datenschutzhinweise dienen sowohl der Informationserteilung nach dem
Schweizer DSG als auch nach der Datenschutzgrundverordnung (DSGVO). Aus
diesem Grund bitten wir Sie zu beachten, dass aufgrund der breiteren
räumlichen Anwendung und Verständlichkeit die Begriffe der DSGVO
verwendet werden. Insbesondere statt der im Schweizer DSG verwendeten
Begriffe Bearbeitung" von „Personendaten", überwiegendes Interesse"
und besonders schützenswerte Personendaten" werden die in der DSGVO
verwendeten Begriffe Verarbeitung" von „personenbezogenen Daten" sowie
berechtigtes Interesse" und „besondere Kategorien von Daten" verwendet.
Die gesetzliche Bedeutung der Begriffe wird jedoch im Rahmen der Geltung
des Schweizer DSG weiterhin nach dem Schweizer DSG bestimmt.
</p>
<h2 id="m27">Sicherheitsmaßnahmen</h2>
<p>
Sicherung von Online-Verbindungen durch
TLS-/SSL-Verschlüsselungstechnologie (HTTPS): Um die Daten der Nutzer,
die über unsere Online-Dienste übertragen werden, vor unerlaubten
Zugriffen zu schützen, setzen wir auf die
TLS-/SSL-Verschlüsselungstechnologie. Secure Sockets Layer (SSL) und
Transport Layer Security (TLS) sind die Eckpfeiler der sicheren
Datenübertragung im Internet. Diese Technologien verschlüsseln die
Informationen, die zwischen der Website oder App und dem Browser des
Nutzers (oder zwischen zwei Servern) übertragen werden, wodurch die
Daten vor unbefugtem Zugriff geschützt sind. TLS, als die
weiterentwickelte und sicherere Version von SSL, gewährleistet, dass
alle Datenübertragungen den höchsten Sicherheitsstandards entsprechen.
Wenn eine Website durch ein SSL-/TLS-Zertifikat gesichert ist, wird dies
durch die Anzeige von HTTPS in der URL signalisiert. Dies dient als ein
Indikator für die Nutzer, dass ihre Daten sicher und verschlüsselt
übertragen werden.
</p>
<h2 id="m25">Übermittlung von personenbezogenen Daten</h2>
<p>
Im Rahmen unserer Verarbeitung von personenbezogenen Daten kommt es vor,
dass diese an andere Stellen, Unternehmen, rechtlich selbstständige
Organisationseinheiten oder Personen übermittelt beziehungsweise ihnen
gegenüber offengelegt werden. Zu den Empfängern dieser Daten können z.
B. mit IT-Aufgaben beauftragte Dienstleister gehören oder Anbieter von
Diensten und Inhalten, die in eine Website eingebunden sind. In solchen
Fällen beachten wir die gesetzlichen Vorgaben und schließen insbesondere
entsprechende Verträge bzw. Vereinbarungen, die dem Schutz Ihrer Daten
dienen, mit den Empfängern Ihrer Daten ab.
</p>
<h2 id="m328">Plug-ins und eingebettete Funktionen sowie Inhalte</h2>
<p>
Wir binden Funktions- und Inhaltselemente in unser Onlineangebot ein,
die von den Servern ihrer jeweiligen Anbieter (nachfolgend als
Drittanbieter bezeichnet) bezogen werden. Dabei kann es sich zum
Beispiel um Grafiken, Videos oder Stadtpläne handeln (nachfolgend
einheitlich als Inhalte bezeichnet).
</p>
<p>
Die Einbindung setzt immer voraus, dass die Drittanbieter dieser Inhalte
die IP-Adresse der Nutzer verarbeiten, da sie ohne IP-Adresse die
Inhalte nicht an deren Browser senden könnten. Die IP-Adresse ist damit
für die Darstellung dieser Inhalte oder Funktionen erforderlich. Wir
bemühen uns, nur solche Inhalte zu verwenden, deren jeweilige Anbieter
die IP-Adresse lediglich zur Auslieferung der Inhalte anzuwenden.
Drittanbieter können ferner sogenannte Pixel-Tags (unsichtbare Grafiken,
auch als Web Beacons bezeichnet) für statistische oder Marketingzwecke
einsetzen. Durch die Pixel-Tags können Informationen, wie etwa der
Besucherverkehr auf den Seiten dieser Website, ausgewertet werden. Die
pseudonymen Informationen können darüber hinaus in Cookies auf dem Gerät
der Nutzer gespeichert werden und unter anderem technische Auskünfte zum
Browser und zum Betriebssystem, zu verweisenden Websites, zur
Besuchszeit sowie weitere Angaben zur Nutzung unseres Onlineangebots
enthalten, aber auch mit solchen Informationen aus anderen Quellen
verbunden werden.
</p>
<p>
<strong>Hinweise zu Rechtsgrundlagen:</strong> Sofern wir die Nutzer um
ihre Einwilligung in den Einsatz der Drittanbieter bitten, stellt die
Rechtsgrundlage der Datenverarbeitung die Erlaubnis dar. Ansonsten
werden die Nutzerdaten auf Grundlage unserer berechtigten Interessen (d.
h. Interesse an effizienten, wirtschaftlichen und empfängerfreundlichen
Leistungen) verarbeitet. In diesem Zusammenhang möchten wir Sie auch auf
die Informationen zur Verwendung von Cookies in dieser
Datenschutzerklärung hinweisen.
</p>
<ul className="m-elements">
<li>
<strong>Verarbeitete Datenarten:</strong> Nutzungsdaten (z. B.
Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und
-frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen
mit Inhalten und Funktionen). Meta-, Kommunikations- und
Verfahrensdaten (z. B. IP-Adressen, Zeitangaben,
Identifikationsnummern, beteiligte Personen).
</li>
<li>
<strong>Betroffene Personen:</strong> Nutzer (z. B. Webseitenbesucher,
Nutzer von Onlinediensten).
</li>
<li>
<strong>Zwecke der Verarbeitung:</strong> Bereitstellung unseres
Onlineangebotes und Nutzerfreundlichkeit.
</li>
<li>
<strong>Aufbewahrung und Löschung:</strong> Löschung entsprechend
Angaben im Abschnitt "Allgemeine Informationen zur Datenspeicherung
und Löschung". Speicherung von Cookies von bis zu 2 Jahren (Sofern
nicht anders angegeben, können Cookies und ähnliche Speichermethoden
für einen Zeitraum von zwei Jahren auf den Geräten der Nutzer
gespeichert werden.).
</li>
<li className="">
<strong>Rechtsgrundlagen:</strong> Einwilligung (Art. 6 Abs. 1 S. 1
lit. a) DSGVO). Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f)
DSGVO).
</li>
</ul>
<h2 id="mRights">Ihre Rechte als betroffene Person</h2>
<p>
Sie haben das Recht auf Auskunft über die Verarbeitung Ihrer
personenbezogenen Daten durch uns (Art. 15 DSGVO), das Recht auf
Berichtigung unrichtiger Daten (Art. 16 DSGVO), das Recht auf Löschung
Ihrer Daten (Art. 17 DSGVO), das Recht auf Einschränkung der
Verarbeitung (Art. 18 DSGVO), das Recht auf Datenübertragbarkeit (Art.
20 DSGVO) sowie das Recht, Widerspruch gegen die Verarbeitung Ihrer
Daten einzulegen (Art. 21 DSGVO) und das Recht auf Beschwerde bei einer
Aufsichtsbehörde (Art. 77 DSGVO).
</p>
<p>
Bitte beachten Sie bezüglich der Server-Logfiles, dass wir in der Regel
keinen direkten Zugriff auf alle durch unseren Hosting-Anbieter
gespeicherten Protokolle haben. Die uns zugänglichen Informationen
beschränken sich auf die über Nginx und das Linux-System
bereitgestellten Logdaten. Anfragen auf Auskunft oder Löschung, die über
diese zugänglichen Daten hinausgehen, können wir daher möglicherweise
nicht direkt erfüllen. In solchen Fällen empfehlen wir Ihnen, sich
direkt an unseren Hosting-Anbieter zu wenden. Die Kontaktdaten unseres
Hosting-Anbieters können Sie auf Anfrage erhalten.
</p>
<p className="seal">
<a
href="https://datenschutz-generator.de/"
title="Rechtstext von Dr. Schwenke - für weitere Informationen bitte anklicken."
target="_blank"
rel="noopener noreferrer nofollow"
>
Erstellt mit kostenlosem Datenschutz-Generator.de von Dr. Thomas
Schwenke
</a>
</p>
<h2>Verwendung von Cookies</h2>
<p>Diese Website verwendet keine Cookies.</p>
</div>
);
}
export default PrivacyPage;

14
src/index.js Normal file
View File

@ -0,0 +1,14 @@
import React from "react";
import ReactDOM from "react-dom/client";
import "bootstrap/dist/css/bootstrap.min.css";
import './styles/styles.css';
import App from "./components/app";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<div className="app-container"> {/* Das ist entscheidend! */}
<App />
</div>
</React.StrictMode>
);

66
src/styles/styles.css Normal file
View File

@ -0,0 +1,66 @@
.navigation{
display: flex;
justify-content: center;
}
.dropdown-item-text {
font-weight: bold;
color: #495057;
padding: 0.25rem 1.5rem;
}
.my-name {
color: #28a745;
font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif ;
}
.my-name:hover{
color: #28a745 !important;
}
footer {
min-height: 100px;
background-color: rgb(214, 214, 214);
display: flex;
justify-content: center;
align-items: center;
}
section {
margin-top: 50px;
}
.centered{
text-align: center;
}
.foot-links{
text-decoration: none;
}
.space {
margin-top: 30px;
}
.content {
flex-grow: 1;
}
.app-container {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.center-titles h1, .center-titles h2, .center-titles h3{
text-align: center;
}
.centered-list-container {
text-align: center;
}
.centered-list {
display: inline-block;
text-align: left; /* Text innerhalb der Liste links ausrichten */
}