1
0

Compare commits

..

12 Commits

Author SHA1 Message Date
46204cd8d3 public/impressum.html aktualisiert 2025-04-23 13:15:57 +00:00
51d9d2898e LICENSE hinzugefügt 2025-04-23 13:08:40 +00:00
8c4b2ad17c Update Corporate Identity 2024-03-26 16:53:38 +01:00
1282cde58d Update link from blog to math 2023-10-31 21:08:35 +01:00
a95416518b Update npm packages 2023-07-09 22:04:57 +02:00
6a553e315a Update dependencies 2023-03-28 13:22:14 +02:00
a7a12999fe Add meta description 2023-03-07 18:24:57 +01:00
17170b52c5 Change title of impressum 2023-01-10 14:45:51 +01:00
646f4b0e87 Change title of impressum 2023-01-10 14:37:01 +01:00
7d025bb4bf Move mastodon rel link to header 2022-11-16 13:25:23 +01:00
3af5905eac Add Mastodon me link 2022-11-15 16:09:44 +01:00
b651fb7a91 Add actions to cards (and button) and two more props 2022-09-17 15:52:52 +02:00
9 changed files with 8837 additions and 8249 deletions

7
LICENSE Normal file
View File

@ -0,0 +1,7 @@
Copyright (C) 2025 Niklas Birk
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, Version 3, die mit diesem Programm ausgeliefert wird, weiterverbreiten und/oder modifizieren.
Dieses Programm wird in der Hoffnung, dass es Ihnen nützlich sein wird, aber ohne jegliche Garantie, sogar ohne die implizite Garantie der Marktfähigkeit oder der Eignung für einen bestimmten Zweck, weitergegeben.
Sie sollten eine Kopie der Lizenz zusammen mit diesem Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>.

16835
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,14 +3,14 @@
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@nextui-org/react": "^1.0.0-beta.9", "@nextui-org/react": "^1.0.0-beta.13",
"@testing-library/jest-dom": "^5.16.4", "@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.3.0", "@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^13.5.0", "@testing-library/user-event": "^14.4.3",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-scripts": "5.0.1", "react-scripts": "^5.0.1",
"web-vitals": "^2.1.4" "web-vitals": "^3.3.2"
}, },
"scripts": { "scripts": {
"start": "react-scripts start", "start": "react-scripts start",

View File

@ -1,66 +1,117 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="de">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Impressum und Datenschutz</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
font-family: 'Fira Code', monospace;
background-color: #282a36;
color: #f8f8f2;
max-width: 900px;
margin: 0 auto;
padding: 2rem;
}
h1, h2 {
color: #bd93f9;
border-bottom: 1px solid #44475a;
padding-bottom: 0.3em;
}
h3 {
color: #50fa7b;
margin-top: 1.2em;
}
a {
color: #8be9fd;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
code {
background: #44475a;
color: #f1fa8c;
padding: 0.2em 0.4em;
border-radius: 4px;
}
ol {
padding-left: 1.2rem;
}
footer {
margin-top: 3rem;
border-top: 1px solid #44475a;
padding-top: 1rem;
color: #6272a4;
font-size: 0.9rem;
}
</style>
</head> </head>
<body> <body>
<div class='impressum'>
<h1>Impressum</h1> <h1 id="impressum">Impressum</h1>
<p>Angaben gemäß § 5 TMG</p>
<p> <p>
Niklas Birk <br> Angaben gemäß § 5 TMG:<br>
Agricolastraße 16<br> <strong>Niklas Birk</strong><br>
09599 Freiberg <br> Wiesertsweiler 26<br>
88069 Tettnang<br>
E-Mail: <a href="mailto:me@niklas-birk.de">me@niklas-birk.de</a>
</p> </p>
<p> <p>
<strong>Kontakt:</strong> <br> Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:<br>
Telefon: 0173-5147078<br> <strong>Niklas Birk</strong> (Anschrift wie oben)
E-Mail: <a href='mailto:niklas.birk@niklas-birk.de'>niklas.birk@niklas-birk.de</a>
</p> </p>
<p>
<strong>Haftungsausschluss: </strong> <h2>Datenschutzerklärung</h2>
<br><br> <ol>
<strong>Haftung für Inhalte</strong> <li>
<br><br> <h3>Allgemeines</h3>
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. <p>Diese Website verarbeitet keine personenbezogenen Daten über das technisch notwendige Maß hinaus. Kein Tracking, keine Logfiles.</p>
Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. </li>
Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen <li>
Gesetzen verantwortlich. <h3>Verantwortlicher</h3>
Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte <p>siehe <a href="#impressum">Impressum</a>.</p>
fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit </li>
hinweisen. <li>
Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben <h3>Cookies</h3>
hiervon unberührt. <p>Es werden nur essentielle Cookies gesetzt:</p>
Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung <ul>
möglich. <li><code>i_like_gitea</code> Sitzungs-Cookie von Gitea</li>
Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen. <li><code>_csrf</code> Schutz vor Cross-Site Request Forgery</li>
<br><br> </ul>
<strong>Haftung für Links</strong> </li>
<br><br> <li>
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. <h3>Hosting</h3>
Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. <p>Die Website wird auf einem virtuellen Server der STRATO AG, Pascalstraße 10, 10587 Berlin, betrieben. Der Server wird ausschließlich von mir administriert. STRATO kann jedoch im Rahmen der technischen Infrastruktur automatisch Meta-Daten wie IP-Adressen kurzzeitig verarbeiten (z.B. zur Gefahrenabwehr). Eine darüber hinausgehende Verarbeitung personenbezogener Daten erfolgt meinerseits nicht.</p>
Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. </li>
Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. <li>
Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. <h3>Keine Server-Logs</h3>
Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer <p>Der Webserver speichert keine IP-Adressen oder Zeitstempel.</p>
Rechtsverletzung nicht zumutbar. </li>
Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen. <li>
<br><br> <h3>Deine Rechte</h3>
<strong>Datenschutz</strong> <p>Da keine Daten gespeichert werden, sind Auskunft, Berichtigung oder Löschung in der Praxis nicht erforderlich.</p>
<br><br> </li>
Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. </ol>
Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben
werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. <h2>Haftungsausschluss</h2>
Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben. <br> <ol>
Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) <li>
Sicherheitslücken aufweisen kann. <h3>Inhalte</h3>
Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. <br> <p>Ich übernehme keine Gewähr für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte.</p>
Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von </li>
nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. <li>
Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von <h3>Links</h3>
Werbeinformationen, etwa durch Spam-Mails, vor.<br> <p>Externe Links führen zu Inhalten Dritter, für die ich keine Haftung übernehme.</p>
</p> </li>
</div> </ol>
<h2>Urheberrecht und Lizenz</h2>
<p>Alle Inhalte dieser Website und die zugehörigen Software-Projekte sind lizenziert unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html" target="_blank">GNU General Public License, Version 3 (GPL v3)</a>.</p>
<footer>
<p>Letzte Aktualisierung: April 2025 • Dracula Vibes</p>
</footer>
</body> </body>
</html> </html>

View File

@ -10,7 +10,12 @@
name="Niklas Birk" name="Niklas Birk"
/> />
<link href="%PUBLIC_URL%/manifest.json" rel="manifest"/> <link href="%PUBLIC_URL%/manifest.json" rel="manifest"/>
<link href="https://mathstodon.xyz/@SirNik" rel="me">
<title>Niklas Birk</title> <title>Niklas Birk</title>
<meta name="description"
content="Das ist die Website von Niklas Birk, B.Sc. und angehender Diplom-Mathematiker.
Hier findest du Links zu meinem eigenen Git-Repository und meinen Inhalten zur Mathematik.">
</head> </head>
<body> <body>
<noscript>You need to enable JavaScript to run this app.</noscript> <noscript>You need to enable JavaScript to run this app.</noscript>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
src/assets/niklas-birk-logo.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -1,53 +1,51 @@
import {Card, Col, Text} from "@nextui-org/react"; import {Button, Card, Col, Row, Text} from "@nextui-org/react";
function ServiceCard(props) { function ServiceCard(props) {
return ( return (
<Card isPressable> <Card isPressable isHoverable onClick={() => window.open(props.url)}>
<Card.Header css={{ position: "absolute", zIndex: 1, top: 5}}> <Card.Header css={{ position: "absolute", zIndex: 1, top: 5 }}>
<Col> <Col>
<Text size={12} weight="bold" transform="uppercase"> <Text color='$draculaCyan' size={12} weight="bold" transform="uppercase">
{props.introText} {props.introText}
</Text> </Text>
<Text h3> <Text color='$draculaCyan' h3>
{props.serviceText} {props.serviceText}
</Text> </Text>
<Text size={12} weight="bold" transform="uppercase"> <Text color='$draculaCyan' size={12} weight="bold" transform="uppercase">
{props.vendorText} {props.vendorText}
</Text> </Text>
</Col> </Col>
</Card.Header> </Card.Header>
<Card.Body css={{ p: 0 }}> <Card.Body>
<Card.Image <Card.Image
src={props.logo} src={props.logo}
// width="50%"
// height="50%"
objectFit="fill" objectFit="fill"
alt="Card example background" alt="Card example background"
/> />
</Card.Body> </Card.Body>
{/*<Card.Footer*/} <Card.Footer
{/* isBlurred*/} isBlurred
{/* css={{*/} css={{
{/* position: "absolute",*/} position: "absolute",
{/* bgBlur: "$draculaCurrentLine",*/} bgBlur: "$draculaCurrentLineAlpha",
{/* borderTop: "$borderWeights$light solid rgba(255, 255, 255, 0.2)",*/} borderTop: "$borderWeights$light solid rgba(248, 248, 248, 0.5)",
{/* bottom: 0,*/} bottom: 0,
{/* zIndex: 1,*/} zIndex: 1
{/* }}>*/} }}>
{/* <Row justify="center">*/} <Row justify="center">
{/* <Button flat auto rounded color="primary">*/} <Button auto rounded color="primary" onClick={() => window.open(props.url)}>
{/* <Text*/} <Text
{/* css={{*/} css={{
{/* color: "inherit"*/} color: "inherit"
{/* }}*/} }}
{/* size={12}*/} size={12}
{/* weight="bold"*/} weight="bold"
{/* transform="uppercase">*/} transform="uppercase">
{/* Zu den Repositories*/} {props.buttonText}
{/* </Text>*/} </Text>
{/* </Button>*/} </Button>
{/* </Row>*/} </Row>
{/*</Card.Footer>*/} </Card.Footer>
</Card> </Card>
// <div id="niklas-birk-root"> // <div id="niklas-birk-root">

View File

@ -6,39 +6,25 @@ import blogLogo from "../assets/blog_logo.png";
function Services() { function Services() {
return ( return (
<Grid.Container gap={2} justify="center"> <Grid.Container gap={2} justify="center">
<Grid xs={3}> <Grid>
<ServiceCard <ServiceCard
introText="Meine self-hosted" introText="Meine self-hosted"
serviceText="git Repositories" serviceText="git Repositories"
vendorText="mit Gitea" vendorText="mit Gitea"
logo={gitLogo} /> logo={gitLogo}
buttonText="Zu den Repositories"
url='https://git.niklas-birk.de' />
</Grid> </Grid>
<Grid xs={3}> <Grid>
<ServiceCard <ServiceCard
introText="Mein self-hosted" introText="Mein self-hosted"
serviceText="Blog" serviceText="Blog"
vendorText="über Mathematik" vendorText="über Mathematik"
logo={blogLogo} /> logo={blogLogo}
buttonText="Zum Blog"
url='https://math.niklas-birk.de' />
</Grid> </Grid>
</Grid.Container> </Grid.Container>
// <div id="niklas-birk-root">
// <img id="logo" alt="Ein Logo von Niklas Birk" src={logo}/>
// <div>
// <h1>Work in Progress</h1>
// Das ist eine Seite im Aufbau.
// <br/><br/>
// Wichtige links:
// <ul>
// <li> Mail an <a href="mailto://niklas.birk@niklas-birk.de"> niklas.birk@niklas-birk.de </a></li>
// <li> Meine self-hosted git repositories bei <a href="https://git.niklas-birk.de">Gitea</a></li>
// <li> Mein self-hosted <a href="https://blog.niklas-birk.de">Blog</a></li>
// <li> Meine self-hosted <a href="https://survey.niklas-birk.de">Umfragen</a></li>
// <li> ...</li>
// </ul>
// </div>
// <a href={process.env.PUBLIC_URL + 'impressum.html'}>Impressum und Datenschutz</a>
// </div>
); );
} }