added imprint and data privacy page
parent
fd1d16ccb7
commit
622f5a5ca9
|
@ -0,0 +1,7 @@
|
||||||
|
git add *
|
||||||
|
|
||||||
|
read -p "Commit message: " commit_message
|
||||||
|
|
||||||
|
git commit -m "$commit_message"
|
||||||
|
|
||||||
|
git push -u origin master
|
|
@ -2,27 +2,25 @@ npm run build
|
||||||
|
|
||||||
# create zip file of build folder
|
# create zip file of build folder
|
||||||
|
|
||||||
zip -r build.zip build
|
zip -r build.zip .next
|
||||||
|
|
||||||
# conncect to server to clear folder
|
# connect to server to clear folder
|
||||||
|
|
||||||
ssh root@93.177.67.38 << EOF
|
ssh root@93.177.67.38 << EOF
|
||||||
cd /var/www/html/navilearn-landingpage/
|
cd /home/navilearn-landingpage/
|
||||||
rm -rf *
|
rm -rf .next/
|
||||||
exit
|
exit
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# copy zip file to server
|
# copy zip file to server
|
||||||
|
|
||||||
scp build.zip root@93.177.67.38:/var/www/html/navilearn-landingpage/
|
scp build.zip root@93.177.67.38:/home/navilearn-landingpage/
|
||||||
|
|
||||||
# connect to server
|
# connect to server
|
||||||
|
|
||||||
ssh root@93.177.67.38 << EOF
|
ssh root@93.177.67.38 << EOF
|
||||||
cd /var/www/html/navilearn-landingpage/
|
cd /home/navilearn-landingpage/
|
||||||
unzip build.zip
|
unzip build.zip
|
||||||
mv /var/www/html/navilearn-landingpage/build/* /var/www/html/navilearn-landingpage/
|
|
||||||
rm -rf /var/www/html/navilearn-landingpage/build
|
|
||||||
rm build.zip
|
rm build.zip
|
||||||
exit
|
exit
|
||||||
EOF
|
EOF
|
||||||
|
@ -30,3 +28,7 @@ EOF
|
||||||
# remove zip file from local machine
|
# remove zip file from local machine
|
||||||
|
|
||||||
rm build.zip
|
rm build.zip
|
||||||
|
|
||||||
|
echo " "
|
||||||
|
echo " "
|
||||||
|
echo "Deployment Done. Dont forget to restart the service!"
|
|
@ -14,7 +14,7 @@ export default function Login() {
|
||||||
return (
|
return (
|
||||||
<SlimLayout>
|
<SlimLayout>
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
<Link href="/" aria-label="Home">
|
<Link href="/" aria-label="Startseite">
|
||||||
<Logo className="h-10 w-auto" />
|
<Logo className="h-10 w-auto" />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default function RegisterForm() {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
'https://navilearnapi.ex.umbach.dev/api/v1/organization',
|
`https://${process.env.NODE_ENV === 'production' ? window.location.host : 'navilearnapi.ex.umbach.dev'}/api/v1/organization`,
|
||||||
{
|
{
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
|
|
|
@ -6,13 +6,17 @@ import { SlimLayout } from '@/components/SlimLayout'
|
||||||
import RegisterForm from './form'
|
import RegisterForm from './form'
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Sign Up',
|
title: 'Registrierung',
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function Register() {
|
export default function Register() {
|
||||||
return (
|
return (
|
||||||
<SlimLayout>
|
<SlimLayout>
|
||||||
<Link href="/" aria-label="Home" className="flex items-center text-sm">
|
<Link
|
||||||
|
href="/"
|
||||||
|
aria-label="Startseite"
|
||||||
|
className="flex items-center text-sm"
|
||||||
|
>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
viewBox="0 0 20 20"
|
viewBox="0 0 20 20"
|
||||||
|
@ -30,7 +34,7 @@ export default function Register() {
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
<div className="mt-4 flex">
|
<div className="mt-4 flex">
|
||||||
<Link href="/" aria-label="Home">
|
<Link href="/" aria-label="Startseite">
|
||||||
<Logo className="h-10 w-auto" />
|
<Logo className="h-10 w-auto" />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
@ -38,7 +42,7 @@ export default function Register() {
|
||||||
Jetzt kostenlos registrieren
|
Jetzt kostenlos registrieren
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-2 text-sm text-gray-700">
|
<p className="mt-2 text-sm text-gray-700">
|
||||||
Testen Sie 30 Tage lang kostenlos NaviLearn.
|
Testen Sie NaviLearn kostenlos.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<RegisterForm />
|
<RegisterForm />
|
||||||
|
|
|
@ -0,0 +1,520 @@
|
||||||
|
import { Container } from '@/components/Container'
|
||||||
|
import {
|
||||||
|
Anchor,
|
||||||
|
BaseBoldText,
|
||||||
|
BoldText,
|
||||||
|
List,
|
||||||
|
ListItem,
|
||||||
|
Text,
|
||||||
|
} from '@/components/Typography'
|
||||||
|
|
||||||
|
export default function Datenschutz() {
|
||||||
|
return (
|
||||||
|
<Container className="pb-12">
|
||||||
|
<h1 className="text-xl font-bold text-gray-900 sm:text-3xl">
|
||||||
|
Datenschutzerklärung
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<BoldText>1. Datenschutz auf einen Blick</BoldText>
|
||||||
|
<BaseBoldText>Allgemeine Hinweise</BaseBoldText>
|
||||||
|
<Text>
|
||||||
|
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit
|
||||||
|
Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen.
|
||||||
|
Personenbezogene Daten sind alle Daten, mit denen Sie persönlich
|
||||||
|
identifiziert werden können. Ausführliche Informationen zum Thema
|
||||||
|
Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten
|
||||||
|
Datenschutzerklärung.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>Datenerfassung auf dieser Website</BoldText>
|
||||||
|
<BoldText>
|
||||||
|
Wer ist verantwortlich für die Datenerfassung auf dieser Website?
|
||||||
|
</BoldText>
|
||||||
|
<Text>
|
||||||
|
Die Datenverarbeitung auf dieser Website erfolgt durch den
|
||||||
|
Websitebetreiber. Dessen Kontaktdaten können Sie dem Abschnitt „Hinweis
|
||||||
|
zur Verantwortlichen Stelle“ in dieser Datenschutzerklärung entnehmen.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Wie erfassen wir Ihre Daten?</BoldText>
|
||||||
|
<Text>
|
||||||
|
Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese
|
||||||
|
mitteilen. Hierbei kann es sich z. B. um Daten handeln, die Sie in ein
|
||||||
|
Kontaktformular eingeben.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Andere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch
|
||||||
|
der Website durch unsere IT-Systeme erfasst. Das sind vor allem
|
||||||
|
technische Daten (z. B. Internetbrowser, Betriebssystem oder Uhrzeitdes
|
||||||
|
Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald
|
||||||
|
Sie diese Website betreten.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>Wofür nutzen wir Ihre Daten?</BoldText>
|
||||||
|
<Text>
|
||||||
|
Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der
|
||||||
|
Website zu gewährleisten. Andere Daten können zur Analyse Ihres
|
||||||
|
Nutzerverhaltens verwendet werden.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Welche Rechte haben Sie bezüglich Ihrer Daten?</BoldText>
|
||||||
|
<Text>
|
||||||
|
Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft,
|
||||||
|
Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu
|
||||||
|
erhalten. Sie haben außerdem ein Recht, die Berichtigung oder Löschung
|
||||||
|
dieser Daten zu verlangen. Wenn Sie eine Einwilligung zur
|
||||||
|
Datenverarbeitung erteilt haben, können Sie diese Einwilligung jederzeit
|
||||||
|
für die Zukunft widerrufen. Außerdem haben Sie das Recht, unter
|
||||||
|
bestimmten Umständen die Einschränkung der Verarbeitung Ihrer
|
||||||
|
personenbezogenen Daten zu verlangen. Des Weiteren steht Ihnen ein
|
||||||
|
Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Hierzu sowie zu
|
||||||
|
weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit an uns
|
||||||
|
wenden.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Analyse-Tools und Tools von Drittanbietern</BoldText>
|
||||||
|
<Text>
|
||||||
|
Beim Besuch dieser Website kann Ihr Surf-Verhalten statistisch
|
||||||
|
ausgewertet werden. Das geschieht vor allem mit sogenannten
|
||||||
|
Analyseprogrammen.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Detaillierte Informationen zu diesen Analyseprogrammen finden Sie in der
|
||||||
|
folgenden Datenschutzerklärung.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BaseBoldText>2. Hosting</BaseBoldText>
|
||||||
|
<Text>
|
||||||
|
Diese Website wird extern gehostet. Die personenbezogenen Daten, die auf
|
||||||
|
dieser Website erfasst werden, werden auf den Servern des Hosters / der
|
||||||
|
Hoster gespeichert. Hierbei kann es sich v. a. um IP-Adressen,
|
||||||
|
Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten,
|
||||||
|
Kontaktdaten, Namen, Websitezugriffe und sonstige Daten, die über eine
|
||||||
|
Website generiert werden, handeln.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Externes Hosting</BoldText>
|
||||||
|
<Text>
|
||||||
|
Diese Website wird extern gehostet. Die personenbezogenen Daten, die auf
|
||||||
|
dieser Website erfasst werden, werden auf den Servern des Hosters / der
|
||||||
|
Hoster gespeichert. Hierbei kann es sich v. a. um IP-Adressen,
|
||||||
|
Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten,
|
||||||
|
Kontaktdaten, Namen, Websitezugriffe und sonstige Daten, die über eine
|
||||||
|
Website generiert werden, handeln.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Das externe Hosting erfolgt zum Zwecke der Vertragserfüllung gegenüber
|
||||||
|
unseren potenziellen und bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO)
|
||||||
|
und im Interesse einer sicheren, schnellen und effizienten
|
||||||
|
Bereitstellung unseres Online-Angebots durch einen professionellen
|
||||||
|
Anbieter (Art. 6 Abs. 1 lit. f DSGVO). Sofern eine entsprechende
|
||||||
|
Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich
|
||||||
|
auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG,
|
||||||
|
soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf
|
||||||
|
Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im
|
||||||
|
Sinne des TTDSG umfasst. Die Einwilligung ist jederzeit widerrufbar.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Unser Hoster wird Ihre Daten nur insoweit verarbeiten, wie dies zur
|
||||||
|
Erfüllung seiner Leistungspflichten erforderlich ist und unsere
|
||||||
|
Weisungen in Bezug auf diese Daten befolgen.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">Wir setzen folgenden Hoster ein:</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
netcup GmbH
|
||||||
|
<br /> Daimlerstraße 25
|
||||||
|
<br />
|
||||||
|
76185 Karlsruhe
|
||||||
|
</Text>
|
||||||
|
<BaseBoldText>
|
||||||
|
3. Allgemeine Hinweise und Pflichtinformationen
|
||||||
|
</BaseBoldText>
|
||||||
|
<BoldText>Datenschutz</BoldText>
|
||||||
|
<Text>
|
||||||
|
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten
|
||||||
|
sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und
|
||||||
|
entsprechend den gesetzlichen Datenschutzvorschriften sowie dieser
|
||||||
|
Datenschutzerklärung.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Wenn Sie diese Website benutzen, werden verschiedene personenbezogene
|
||||||
|
Daten erhoben. Personenbezogene Daten sind Daten, mit denen Sie
|
||||||
|
persönlich identifiziert werden können. Die vorliegende
|
||||||
|
Datenschutzerklärung erläutert, welche Daten wir erheben und wofür wir
|
||||||
|
sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das geschieht.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Wir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei
|
||||||
|
der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein
|
||||||
|
lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht
|
||||||
|
möglich.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>Hinweis zur verantwortlichen Stelle</BoldText>
|
||||||
|
<Text>
|
||||||
|
Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website
|
||||||
|
ist:
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Jan Umbach
|
||||||
|
<br /> Tannenwäldchen 20
|
||||||
|
<br /> 34212 Melsungen
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text className="mt-4">
|
||||||
|
Telefon: <Anchor href="tel:+49 160 95040430">+49 160 95040430</Anchor>
|
||||||
|
<br /> E-Mail:{' '}
|
||||||
|
<Anchor href="mailto:navilearn@jannex.de">navilearn@jannex.de</Anchor>
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text className="mt-4">
|
||||||
|
Verantwortliche Stelle ist die natürliche oder juristische Person, die
|
||||||
|
allein oder gemeinsam mit anderen über die Zwecke und Mittel der
|
||||||
|
Verarbeitung von personenbezogenen Daten (z. B. Namen, E-Mail-Adressen
|
||||||
|
o. Ä.) entscheidet.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>Speicherdauer</BoldText>
|
||||||
|
<Text>
|
||||||
|
Soweit innerhalb dieser Datenschutzerklärung keine speziellere
|
||||||
|
Speicherdauer genannt wurde, verbleiben Ihre personenbezogenen Daten bei
|
||||||
|
uns, bis der Zweck für die Datenverarbeitung entfällt. Wenn Sie ein
|
||||||
|
berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur
|
||||||
|
Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir
|
||||||
|
keine anderen rechtlich zulässigen Gründe für die Speicherung Ihrer
|
||||||
|
personenbezogenen Daten haben (z. B. steuer- oder handelsrechtliche
|
||||||
|
Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach
|
||||||
|
Fortfall dieser Gründe.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>
|
||||||
|
Allgemeine Hinweise zu den Rechtsgrundlagen der Datenverarbeitung auf
|
||||||
|
dieser Website
|
||||||
|
</BoldText>
|
||||||
|
<Text>
|
||||||
|
Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir
|
||||||
|
Ihre personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a
|
||||||
|
DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien
|
||||||
|
nach Art. 9 Abs. 1 DSGVO verarbeitet werden. Im Falle einer
|
||||||
|
ausdrücklichen Einwilligung in die Übertragung personenbezogener Daten
|
||||||
|
in Drittstaaten erfolgt die Datenverarbeitung außerdem auf Grundlage von
|
||||||
|
Art. 49 Abs. 1 lit. a DSGVO. Sofern Sie in die Speicherung von Cookies
|
||||||
|
oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via
|
||||||
|
Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung
|
||||||
|
zusätzlich auf Grundlage von § 25 Abs. 1 TTDSG. Die Einwilligung ist
|
||||||
|
jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur
|
||||||
|
Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir
|
||||||
|
Ihre Daten auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO. Des Weiteren
|
||||||
|
verarbeiten wir Ihre Daten, sofern diese zur Erfüllung einer rechtlichen
|
||||||
|
Verpflichtung erforderlich sind auf Grundlage von Art. 6 Abs. 1 lit. c
|
||||||
|
DSGVO. Die Datenverarbeitung kann ferner auf Grundlage unseres
|
||||||
|
berechtigten Interesses nach Art. 6 Abs. 1 lit. f DSGVO erfolgen. Über
|
||||||
|
die jeweils im Einzelfall einschlägigen Rechtsgrundlagen wird in den
|
||||||
|
folgenden Absätzen dieser Datenschutzerklärung informiert.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>Empfänger von personenbezogenen Daten</BoldText>
|
||||||
|
<Text>
|
||||||
|
Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir
|
||||||
|
Ihre personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a
|
||||||
|
DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien
|
||||||
|
nach Art. 9 Abs. 1 DSGVO verarbeitet werden. Im Falle einer
|
||||||
|
ausdrücklichen Einwilligung in die Übertragung personenbezogener Daten
|
||||||
|
in Drittstaaten erfolgt die Datenverarbeitung außerdem auf Grundlage von
|
||||||
|
Art. 49 Abs. 1 lit. a DSGVO. Sofern Sie in die Speicherung von Cookies
|
||||||
|
oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via
|
||||||
|
Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung
|
||||||
|
zusätzlich auf Grundlage von § 25 Abs. 1 TTDSG. Die Einwilligung ist
|
||||||
|
jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur
|
||||||
|
Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir
|
||||||
|
IhrIm Rahmen unserer Geschäftstätigkeit arbeiten wir mit verschiedenen
|
||||||
|
externen Stellen zusammen. Dabei ist teilweise auch eine Übermittlung
|
||||||
|
von personenbezogenen Daten an diese externen Stellen erforderlich. Wir
|
||||||
|
geben personenbezogene Daten nur dann an externe Stellen weiter, wenn
|
||||||
|
dies im Rahmen einer Vertragserfüllung erforderlich ist, wenn wir
|
||||||
|
gesetzlich hierzu verpflichtet sind (z. B. Weitergabe von Daten an
|
||||||
|
Steuerbehörden), wenn wir ein berechtigtes Interesse nach Art. 6 Abs. 1
|
||||||
|
lit. f DSGVO an der Weitergabe haben oder wenn eine sonstige
|
||||||
|
Rechtsgrundlage die Datenweitergabe erlaubt. Beim Einsatz von
|
||||||
|
Auftragsverarbeitern geben wir personenbezogene Daten unserer Kunden nur
|
||||||
|
auf Grundlage eines gültigen Vertrags über Auftragsverarbeitung weiter.
|
||||||
|
Im Falle einer gemeinsamen Verarbeitung wird ein Vertrag über gemeinsame
|
||||||
|
Verarbeitung geschlossen.e Daten auf Grundlage des Art. 6 Abs. 1 lit. b
|
||||||
|
DSGVO. Des Weiteren verarbeiten wir Ihre Daten, sofern diese zur
|
||||||
|
Erfüllung einer rechtlichen Verpflichtung erforderlich sind auf
|
||||||
|
Grundlage von Art. 6 Abs. 1 lit. c DSGVO. Die Datenverarbeitung kann
|
||||||
|
ferner auf Grundlage unseres berechtigten Interesses nach Art. 6 Abs. 1
|
||||||
|
lit. f DSGVO erfolgen. Über die jeweils im Einzelfall einschlägigen
|
||||||
|
Rechtsgrundlagen wird in den folgenden Absätzen dieser
|
||||||
|
Datenschutzerklärung informiert.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Widerruf Ihrer Einwilligung zur Datenverarbeitung</BoldText>
|
||||||
|
<Text>
|
||||||
|
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen
|
||||||
|
Einwilligung möglich. Sie können eine bereits erteilte Einwilligung
|
||||||
|
jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten
|
||||||
|
Datenverarbeitung bleibt vom Widerruf unberührt.
|
||||||
|
</Text>
|
||||||
|
<BoldText>
|
||||||
|
Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie
|
||||||
|
gegen Direktwerbung (Art. 21 DSGVO)
|
||||||
|
</BoldText>
|
||||||
|
<Text>
|
||||||
|
WENN DIE DATENVERARBEITUNG AUF GRUNDLAGE VON ART. 6 ABS. 1 LIT. E ODER F
|
||||||
|
DSGVO ERFOLGT, HABEN SIE JEDERZEIT DAS RECHT, AUS GRÜNDEN, DIE SICH AUS
|
||||||
|
IHRER BESONDEREN SITUATION ERGEBEN, GEGEN DIE VERARBEITUNG IHRER
|
||||||
|
PERSONENBEZOGENEN DATEN WIDERSPRUCH EINZULEGEN; DIES GILT AUCH FÜR EIN
|
||||||
|
AUF DIESE BESTIMMUNGEN GESTÜTZTES PROFILING. DIE JEWEILIGE
|
||||||
|
RECHTSGRUNDLAGE, AUF DENEN EINE VERARBEITUNG BERUHT, ENTNEHMEN SIE
|
||||||
|
DIESER DATENSCHUTZERKLÄRUNG. WENN SIE WIDERSPRUCH EINLEGEN, WERDEN WIR
|
||||||
|
IHRE BETROFFENEN PERSONENBEZOGENEN DATEN NICHT MEHR VERARBEITEN, ES SEI
|
||||||
|
DENN, WIR KÖNNEN ZWINGENDE SCHUTZWÜRDIGE GRÜNDE FÜR DIE VERARBEITUNG
|
||||||
|
NACHWEISEN, DIE IHRE INTERESSEN, RECHTE UND FREIHEITEN ÜBERWIEGEN ODER
|
||||||
|
DIE VERARBEITUNG DIENT DER GELTENDMACHUNG, AUSÜBUNG ODER VERTEIDIGUNG
|
||||||
|
VON RECHTSANSPRÜCHEN (WIDERSPRUCH NACH ART. 21 ABS. 1 DSGVO).
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
WERDEN IHRE PERSONENBEZOGENEN DATEN VERARBEITET, UM DIREKTWERBUNG ZU
|
||||||
|
BETREIBEN, SO HABEN SIE DAS RECHT, JEDERZEIT WIDERSPRUCH GEGEN DIE
|
||||||
|
VERARBEITUNG SIE BETREFFENDER PERSONENBEZOGENER DATEN ZUM ZWECKE
|
||||||
|
DERARTIGER WERBUNG EINZULEGEN; DIES GILT AUCH FÜR DAS PROFILING, SOWEIT
|
||||||
|
ES MIT SOLCHER DIREKTWERBUNG IN VERBINDUNG STEHT. WENN SIE
|
||||||
|
WIDERSPRECHEN, WERDEN IHRE PERSONENBEZOGENEN DATEN ANSCHLIESSEND NICHT
|
||||||
|
MEHR ZUM ZWECKE DER DIREKTWERBUNG VERWENDET (WIDERSPRUCH NACH ART. 21
|
||||||
|
ABS. 2 DSGVO).
|
||||||
|
</Text>
|
||||||
|
<BoldText>Beschwerderecht bei der zuständigen Aufsichtsbehörde</BoldText>
|
||||||
|
<Text>
|
||||||
|
Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein
|
||||||
|
Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem
|
||||||
|
Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes oder
|
||||||
|
des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht
|
||||||
|
unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher
|
||||||
|
Rechtsbehelfe.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Recht auf Datenübertragbarkeit</BoldText>
|
||||||
|
<Text>
|
||||||
|
Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung
|
||||||
|
oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder
|
||||||
|
an einen Dritten in einem gängigen, maschinenlesbaren Format aushändigen
|
||||||
|
zu lassen. Sofern Sie die direkte Übertragung der Daten an einen anderen
|
||||||
|
Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch
|
||||||
|
machbar ist.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Auskunft, Berichtigung und Löschung</BoldText>
|
||||||
|
<Text>
|
||||||
|
Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit
|
||||||
|
das Recht auf unentgeltliche Auskunft über Ihre gespeicherten
|
||||||
|
personenbezogenen Daten, deren Herkunft und Empfänger und den Zweck der
|
||||||
|
Datenverarbeitung und ggf. ein Recht auf Berichtigung oder Löschung
|
||||||
|
dieser Daten. Hierzu sowiezu weiteren Fragen zum Thema personenbezogene
|
||||||
|
Daten können Sie sich jederzeit an uns wenden.
|
||||||
|
</Text>
|
||||||
|
<BoldText>Recht auf Einschränkung der Verarbeitung</BoldText>
|
||||||
|
<Text>
|
||||||
|
Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer
|
||||||
|
personenbezogenen Daten zu verlangen. Hierzu können Sie sich jederzeit
|
||||||
|
an uns wenden. Das Recht auf Einschränkung der Verarbeitung besteht in
|
||||||
|
folgenden Fällen:
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<List>
|
||||||
|
<ListItem>
|
||||||
|
Wenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen
|
||||||
|
Daten bestreiten, benötigen wir in der Regel Zeit, um dies zu
|
||||||
|
überprüfen. Für die Dauer der Prüfung haben Sie das Recht, die
|
||||||
|
Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
|
||||||
|
verlangen.
|
||||||
|
</ListItem>
|
||||||
|
<ListItem>
|
||||||
|
Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig
|
||||||
|
geschah/geschieht, können Sie statt der Löschung die Einschränkung der
|
||||||
|
Datenverarbeitung verlangen.
|
||||||
|
</ListItem>
|
||||||
|
<ListItem>
|
||||||
|
Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie
|
||||||
|
jedoch zur Ausübung, Verteidigung oder Geltendmachung von
|
||||||
|
Rechtsansprüchen benötigen, haben Sie das Recht, statt der Löschung
|
||||||
|
die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
|
||||||
|
verlangen.
|
||||||
|
</ListItem>
|
||||||
|
<ListItem>
|
||||||
|
Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben,
|
||||||
|
muss eine Abwägung zwischen Ihren und unseren Interessen vorgenommen
|
||||||
|
werden. Solange noch nicht feststeht, wessen Interessen überwiegen,
|
||||||
|
haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer
|
||||||
|
personenbezogenen Daten zu verlangen.
|
||||||
|
</ListItem>
|
||||||
|
</List>
|
||||||
|
|
||||||
|
<Text className="mt-4">
|
||||||
|
Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt
|
||||||
|
haben, dürfen diese Daten – von ihrer Speicherung abgesehen – nur mit
|
||||||
|
Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung
|
||||||
|
von Rechtsansprüchen oder zum Schutz der Rechte einer anderen
|
||||||
|
natürlichen oder juristischen Person oder aus Gründen eines wichtigen
|
||||||
|
öffentlichen Interesses der Europäischen Union oder eines Mitgliedstaats
|
||||||
|
verarbeitet werden.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>SSL- bzw. TLS-Verschlüsselung</BoldText>
|
||||||
|
<Text>
|
||||||
|
Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung
|
||||||
|
vertraulicher Inhalte, wie zumBeispiel Bestellungen oder Anfragen, die
|
||||||
|
Sie an uns als Seitenbetreiber senden, eine SSL- bzw. TLS-
|
||||||
|
Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass
|
||||||
|
die Adresszeile des Browsers von„http://“ auf „https://“ wechselt und an
|
||||||
|
dem Schloss-Symbol in Ihrer Browserzeile.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text className="mt-4">
|
||||||
|
Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die Daten,
|
||||||
|
die Sie an uns übermitteln, nicht von Dritten mitgelesen werden.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>4. Datenerfassung auf dieser Website</BoldText>
|
||||||
|
<BaseBoldText>Cookies</BaseBoldText>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Unsere Internetseiten verwenden so genannte „Cookies“. Cookies sind
|
||||||
|
kleine Datenpakete und richten auf Ihrem Endgerät keinen Schaden an. Sie
|
||||||
|
werden entweder vorübergehend für die Dauer einer Sitzung
|
||||||
|
(Session-Cookies) oder dauerhaft (permanente Cookies) auf Ihrem Endgerät
|
||||||
|
gespeichert. Session-Cookies werden nach Ende Ihres Besuchs automatisch
|
||||||
|
gelöscht. Permanente Cookies bleiben auf Ihrem Endgerät gespeichert, bis
|
||||||
|
Sie diese selbst löschen oder eine automatische Löschung durch Ihren
|
||||||
|
Webbrowser erfolgt.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Cookies können von uns (First-Party-Cookies) oder von Drittunternehmen
|
||||||
|
stammen (sog. Third-Party- Cookies). Third-Party-Cookies ermöglichen die
|
||||||
|
Einbindung bestimmter Dienstleistungen vonDrittunternehmen innerhalb von
|
||||||
|
Webseiten (z. B. Cookies zur Abwicklung von Zahlungsdienstleistungen).
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Cookies haben verschiedene Funktionen. Zahlreiche Cookies sind technisch
|
||||||
|
notwendig, da bestimmte Webseitenfunktionen ohne diese nicht
|
||||||
|
funktionieren würden (z. B. die Warenkorbfunktion oder die Anzeige von
|
||||||
|
Videos). Andere Cookies können zur Auswertung des Nutzerverhaltens oder
|
||||||
|
zu Werbezwecken verwendet werden.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Cookies, die zur Durchführung des elektronischen Kommunikationsvorgangs,
|
||||||
|
zur Bereitstellung bestimmter, von Ihnen erwünschter Funktionen (z. B.
|
||||||
|
für die Warenkorbfunktion) oder zur Optimierung der Website (z. B.
|
||||||
|
Cookies zur Messung des Webpublikums) erforderlich sind (notwendige
|
||||||
|
Cookies), werden auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO
|
||||||
|
gespeichert, sofern keine andere Rechtsgrundlage angegeben wird.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Der Websitebetreiber hat ein berechtigtes Interesse an der Speicherung
|
||||||
|
von notwendigen Cookies zur technisch fehlerfreien und optimierten
|
||||||
|
Bereitstellung seiner Dienste. Sofern eine Einwilligung zur Speicherung
|
||||||
|
von Cookies und vergleichbaren Wiedererkennungstechnologien abgefragt
|
||||||
|
wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage dieser
|
||||||
|
Einwilligung (Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG); die
|
||||||
|
Einwilligung ist jederzeit widerrufbar.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Sie können Ihren Browser so einstellen, dass Sie über das Setzen von
|
||||||
|
Cookies informiert werden und Cookies nur im Einzelfall erlauben, die
|
||||||
|
Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie
|
||||||
|
das automatische Löschen der Cookies beim Schließen des Browsers
|
||||||
|
aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität
|
||||||
|
dieser Website eingeschränkt sein.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Welche Cookies und Dienste auf dieser Website eingesetzt werden, können
|
||||||
|
Sie dieser Datenschutzerklärung entnehmen.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>5. Plugins und Tools</BoldText>
|
||||||
|
<BaseBoldText>Google Fonts</BaseBoldText>
|
||||||
|
<Text>
|
||||||
|
Diese Seite nutzt zur einheitlichen Darstellung von Schriftarten so
|
||||||
|
genannte Google Fonts, die von Google bereitgestellt werden. Beim Aufruf
|
||||||
|
einer Seite lädt Ihr Browser die benötigten Fonts in ihren Browsercache,
|
||||||
|
um Texte und Schriftarten korrekt anzuzeigen.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Zu diesem Zweck muss der von Ihnen verwendete Browser Verbindung zu den
|
||||||
|
Servern von Google aufnehmen. Hierdurch erlangt Google Kenntnis darüber,
|
||||||
|
dass über Ihre IP-Adresse diese Website aufgerufen wurde. Die Nutzung
|
||||||
|
von Google Fonts erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO.
|
||||||
|
Der Websitebetreiber hat ein berechtigtes Interesse an der einheitlichen
|
||||||
|
Darstellung des Schriftbildes auf seiner Website. Sofern eine
|
||||||
|
entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung
|
||||||
|
ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25
|
||||||
|
Abs. 1 TTDSG, soweit die Einwilligung die Speicherung von Cookies oder
|
||||||
|
den Zugriff auf Informationen im Endgerät des Nutzers (z. B.
|
||||||
|
Device-Fingerprinting) im Sinne des TTDSG umfasst. Die Einwilligung ist
|
||||||
|
jederzeit widerrufbar.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Wenn Ihr Browser Google Fonts nicht unterstützt, wird eine
|
||||||
|
Standardschrift von Ihrem Computer genutzt.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Weitere Informationen zu Google Fonts finden Sie unter
|
||||||
|
<br />
|
||||||
|
<Anchor href="https://developers.google.com/fonts/faq">
|
||||||
|
https://developers.google.com/fonts/faq
|
||||||
|
</Anchor>{' '}
|
||||||
|
und in der Datenschutzerklärung von Google: <br />
|
||||||
|
<Anchor href="https://policies.google.com/privacy">
|
||||||
|
https://policies.google.com/privacy
|
||||||
|
</Anchor>
|
||||||
|
.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Das Unternehmen verfügt über eine Zertifizierung nach dem „EU-US Data
|
||||||
|
Privacy Framework“ (DPF). Der DPF ist ein Übereinkommen zwischen der
|
||||||
|
Europäischen Union und den USA, der die Einhaltung europäischer
|
||||||
|
Datenschutzstandards bei Datenverarbeitungen in den USA gewährleisten
|
||||||
|
soll. Jedes nach dem DPF zertifizierte Unternehmen verpflichtet sich,
|
||||||
|
diese Datenschutzstandards einzuhalten. Weitere Informationen hierzu
|
||||||
|
erhalten Sie vom Anbieter unter folgendem Link:
|
||||||
|
</Text>
|
||||||
|
<Anchor href="https://www.dataprivacyframework.gov/s/participant-search/participant- detail?contact=true&id=a2zt000000001L5AAI&status=Active">
|
||||||
|
https://www.dataprivacyframework.gov/s/participant-search/participant-
|
||||||
|
detail?contact=true&id=a2zt000000001L5AAI&status=Active
|
||||||
|
</Anchor>
|
||||||
|
|
||||||
|
<BoldText>Microsoft Clarity</BoldText>
|
||||||
|
<Text>
|
||||||
|
Diese Website nutzt den Webanalysedienst des folgenden Anbieters:
|
||||||
|
Microsoft Corporation, One Microsoft Way, Redmond, WA 98052-6399 USA
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Mithilfe von Cookies und/oder vergleichbaren Technologien
|
||||||
|
(Tracking-Pixel, Web-Beacons, Algorithmen zum Auslesen von Endgeräte-
|
||||||
|
und Browserinformationen) erhebt und speichert der Dienst
|
||||||
|
pseudonymisierte Besucherdaten, darunter Informationen des verwendeten
|
||||||
|
Endgeräts wie die IP-Adresse und Browserinformationen, um sie für
|
||||||
|
statistische Analysen des Nutzungsverhaltens auf unserer Website
|
||||||
|
auszuwerten und pseudonymisierte Nutzungsprofile zu erstellen. Unter
|
||||||
|
anderem ist so die Auswertung von Bewegungsmustern (sog. Heatmaps)
|
||||||
|
möglich, welche die Dauer von Seitenbesuchen sowie Interaktionen mit
|
||||||
|
Seiteninhalten (z. B. Texteingaben, Scrollen, Klicks und Mouse-Overs)
|
||||||
|
aufzeigen. Die Pseudonymisierung schließt eine direkte
|
||||||
|
Personenbeziehbarkeit grundsätzlich aus. Eine Zusammenführung mit auf
|
||||||
|
andere Weise erhobenen Klardaten zu Ihrer Person findet nicht statt.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Alle oben beschriebenen Verarbeitungen, insbesondere das Auslesen oder
|
||||||
|
Speichern von Informationen auf dem verwendeten Endgerät, werden nur
|
||||||
|
dann vollzogen, wenn Sie uns gemäß Art. 6 Abs. 1 lit. a DSGVO dazu Ihre
|
||||||
|
ausdrückliche Einwilligung erteilt haben. Sie können Ihre erteilte
|
||||||
|
Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen, indem Sie
|
||||||
|
diesen Dienst in dem auf der Webseite bereitgestellten
|
||||||
|
„Cookie-Consent-Tool“ deaktivieren.
|
||||||
|
</Text>
|
||||||
|
<Text className="mt-4">
|
||||||
|
Für Datenübermittlungen in die USA hat sich der Anbieter dem
|
||||||
|
EU-US-Datenschutzrahmen (EU-US Data Privacy Framework) angeschlossen,
|
||||||
|
das auf Basis eines Angemessenheitsbeschlusses der Europäischen
|
||||||
|
Kommission die Einhaltung des europäischen Datenschutzniveaus
|
||||||
|
sicherstellt.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text className="mt-4">
|
||||||
|
Quelle: <Anchor href="https://www.e-recht24.de">eRecht24</Anchor>
|
||||||
|
</Text>
|
||||||
|
</Container>
|
||||||
|
)
|
||||||
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,50 @@
|
||||||
|
import { Container } from '@/components/Container'
|
||||||
|
import { Anchor, BoldText, Text } from '@/components/Typography'
|
||||||
|
|
||||||
|
export default function Impressum() {
|
||||||
|
return (
|
||||||
|
<Container className="pb-12">
|
||||||
|
<h1 className="text-xl font-bold text-gray-900 sm:text-3xl">IMPRESSUM</h1>
|
||||||
|
|
||||||
|
<BoldText>Angaben gemäß § 5 TMG</BoldText>
|
||||||
|
<Text>Jan Umbach</Text>
|
||||||
|
<Text>Tannenwäldchen 20</Text>
|
||||||
|
<Text>34212 Melsungen</Text>
|
||||||
|
|
||||||
|
<BoldText>Kontakt</BoldText>
|
||||||
|
<Text>
|
||||||
|
Telefon: <Anchor href="tel:+49 160 95040430">+49 160 95040430</Anchor>
|
||||||
|
</Text>
|
||||||
|
<Text>
|
||||||
|
E-Mail:{' '}
|
||||||
|
<Anchor href="mailto:navilearn@jannex.de">navilearn@jannex.de</Anchor>
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<BoldText>Umsatzsteuer-ID</BoldText>
|
||||||
|
<Text>USt. wird nicht ausgewiesen (Kleinunternehmerregelung)</Text>
|
||||||
|
|
||||||
|
<BoldText>EU-Streitschlichtung</BoldText>
|
||||||
|
<Text>
|
||||||
|
Die Europäische Kommission stellt eine Plattform zur
|
||||||
|
Online-Streitbeilegung (OS) bereit:
|
||||||
|
</Text>
|
||||||
|
<Anchor href="https://ec.europa.eu/consumers/odr/">
|
||||||
|
https://ec.europa.eu/consumers/odr/
|
||||||
|
</Anchor>
|
||||||
|
{'.'}
|
||||||
|
<Text>Unsere E-Mail-Adresse finden Sie oben im Impressum.</Text>
|
||||||
|
|
||||||
|
<BoldText>
|
||||||
|
Verbraucherstreitbeilegung/Universalschlichtungsstelle
|
||||||
|
</BoldText>
|
||||||
|
<Text>
|
||||||
|
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren
|
||||||
|
vor einer Verbraucherschlichtungsstelle teilzunehmen.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text className="mt-4">
|
||||||
|
Quelle: <Anchor href="https://www.e-recht24.de">eRecht24</Anchor>
|
||||||
|
</Text>
|
||||||
|
</Container>
|
||||||
|
)
|
||||||
|
}
|
|
@ -3,6 +3,8 @@ import { Inter, Lexend } from 'next/font/google'
|
||||||
import clsx from 'clsx'
|
import clsx from 'clsx'
|
||||||
|
|
||||||
import '@/styles/tailwind.css'
|
import '@/styles/tailwind.css'
|
||||||
|
import { Footer } from '@/components/Footer'
|
||||||
|
import { Header } from '@/components/Header'
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: {
|
title: {
|
||||||
|
@ -39,7 +41,12 @@ export default function RootLayout({
|
||||||
lexend.variable,
|
lexend.variable,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<body className="flex h-full flex-col">{children}</body>
|
<body className="flex h-full flex-col">
|
||||||
|
<Header />
|
||||||
|
{children}
|
||||||
|
|
||||||
|
<Footer />
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,19 +8,19 @@ export default function NotFound() {
|
||||||
return (
|
return (
|
||||||
<SlimLayout>
|
<SlimLayout>
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
<Link href="/" aria-label="Home">
|
<Link href="/" aria-label="Startseite">
|
||||||
<Logo className="h-10 w-auto" />
|
<Logo className="h-10 w-auto" />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<p className="mt-20 text-sm font-medium text-gray-700">404</p>
|
<p className="mt-20 text-sm font-medium text-gray-700">404</p>
|
||||||
<h1 className="mt-3 text-lg font-semibold text-gray-900">
|
<h1 className="mt-3 text-lg font-semibold text-gray-900">
|
||||||
Page not found
|
Seite nicht gefunden
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-3 text-sm text-gray-700">
|
<p className="mt-3 text-sm text-gray-700">
|
||||||
Sorry, we couldn’t find the page you’re looking for.
|
Wir konnten die Seite, die Sie suchen, nicht finden.
|
||||||
</p>
|
</p>
|
||||||
<Button href="/" className="mt-10">
|
<Button href="/" className="mt-10">
|
||||||
Go back home
|
Zurück zur Startseite
|
||||||
</Button>
|
</Button>
|
||||||
</SlimLayout>
|
</SlimLayout>
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,17 +1,36 @@
|
||||||
import { CallToAction } from '@/components/CallToAction'
|
import { CallToAction } from '@/components/CallToAction'
|
||||||
import { Faqs } from '@/components/Faqs'
|
import { Faqs } from '@/components/Faqs'
|
||||||
import { Footer } from '@/components/Footer'
|
|
||||||
import { Header } from '@/components/Header'
|
|
||||||
import { Hero } from '@/components/Hero'
|
import { Hero } from '@/components/Hero'
|
||||||
import { Pricing } from '@/components/Pricing'
|
import { Pricing } from '@/components/Pricing'
|
||||||
import { PrimaryFeatures } from '@/components/PrimaryFeatures'
|
import { PrimaryFeatures } from '@/components/PrimaryFeatures'
|
||||||
import { SecondaryFeatures } from '@/components/SecondaryFeatures'
|
import { SecondaryFeatures } from '@/components/SecondaryFeatures'
|
||||||
import { Testimonials } from '@/components/Testimonials'
|
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Header />
|
{process.env.NODE_ENV === 'production' && (
|
||||||
|
<>
|
||||||
|
<script
|
||||||
|
defer
|
||||||
|
data-domain="navilearn.io"
|
||||||
|
src="https://anal.jannex.de/js/script.js"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: `
|
||||||
|
(function(c,l,a,r,i,t,y){
|
||||||
|
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
|
||||||
|
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
|
||||||
|
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
|
||||||
|
})(window, document, "clarity", "script", "${process.env.CLARITY_ID}");
|
||||||
|
`,
|
||||||
|
}}
|
||||||
|
></script>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
<Hero />
|
<Hero />
|
||||||
<PrimaryFeatures />
|
<PrimaryFeatures />
|
||||||
|
@ -21,7 +40,6 @@ export default function Home() {
|
||||||
<Faqs />
|
<Faqs />
|
||||||
<CallToAction />
|
<CallToAction />
|
||||||
</main>
|
</main>
|
||||||
<Footer />
|
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Buffer } from 'buffer'
|
import { Buffer } from 'buffer'
|
||||||
|
|
||||||
export const Constants = {
|
export const Constants = {
|
||||||
API_URL: '.ex.umbach.dev',
|
API_URL: process.env.NEXT_PUBLIC_API_URL,
|
||||||
ROUTES: {
|
ROUTES: {
|
||||||
REGISTER: '/register',
|
REGISTER: '/register',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
import { Container } from '@/components/Container'
|
import { Container } from '@/components/Container'
|
||||||
import { Logo } from '@/components/Logo'
|
import { Logo } from '@/components/Logo'
|
||||||
import { NavLink } from '@/components/NavLink'
|
import { NavLink } from '@/components/NavLink'
|
||||||
|
import Link from 'next/link'
|
||||||
|
|
||||||
export function Footer() {
|
export function Footer() {
|
||||||
return (
|
return (
|
||||||
<footer className="bg-slate-50">
|
<footer className="bg-slate-50">
|
||||||
<Container>
|
<Container>
|
||||||
<div className="py-16">
|
<div className="py-16">
|
||||||
|
<Link href="/" aria-label="Startseite">
|
||||||
<Logo className="mx-auto h-10 w-auto" />
|
<Logo className="mx-auto h-10 w-auto" />
|
||||||
|
</Link>
|
||||||
<nav className="mt-10 text-center text-sm" aria-label="quick links">
|
<nav className="mt-10 text-center text-sm" aria-label="quick links">
|
||||||
<div className="-my-1 flex flex-col justify-center gap-x-6 sm:flex-row">
|
<div className="-my-1 flex flex-col justify-center gap-x-6 sm:flex-row">
|
||||||
<NavLink href="#features">Funktionen</NavLink>
|
<NavLink href="#features">Funktionen</NavLink>
|
||||||
|
@ -15,9 +18,18 @@ export function Footer() {
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col items-center border-t border-slate-400/10 py-10">
|
<div className="flex flex-col items-center border-t border-slate-400/10 pt-10">
|
||||||
<p className="mt-6 text-sm text-slate-500 sm:mt-0">NaviLearn</p>
|
<p className="mt-6 text-sm text-slate-500 sm:mt-0">NaviLearn</p>
|
||||||
</div>
|
</div>
|
||||||
|
<nav
|
||||||
|
className="pb-10 pt-2 text-center text-sm"
|
||||||
|
aria-label="quick links"
|
||||||
|
>
|
||||||
|
<div className="-my-1 flex flex-col justify-center gap-x-6 sm:flex-row">
|
||||||
|
<NavLink href="/impressum">Impressum</NavLink>
|
||||||
|
<NavLink href="/datenschutz">Datenschutzerklärung</NavLink>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
</Container>
|
</Container>
|
||||||
</footer>
|
</footer>
|
||||||
)
|
)
|
||||||
|
|
|
@ -91,12 +91,12 @@ export function Header() {
|
||||||
<Container>
|
<Container>
|
||||||
<nav className="relative z-50 flex justify-between">
|
<nav className="relative z-50 flex justify-between">
|
||||||
<div className="flex items-center md:gap-x-12">
|
<div className="flex items-center md:gap-x-12">
|
||||||
<Link href="#" aria-label="Home">
|
<Link href="/" aria-label="Startseite">
|
||||||
<Logo className="h-5 w-auto sm:h-10" />
|
<Logo className="h-5 w-auto sm:h-10" />
|
||||||
</Link>
|
</Link>
|
||||||
<div className="hidden md:flex md:gap-x-6">
|
<div className="hidden md:flex md:gap-x-6">
|
||||||
<NavLink href="#features">Funktionen</NavLink>
|
<NavLink href="/#features">Funktionen</NavLink>
|
||||||
<NavLink href="#pricing">Preise</NavLink>
|
<NavLink href="/#pricing">Preise</NavLink>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-x-5 md:gap-x-8">
|
<div className="flex items-center gap-x-5 md:gap-x-8">
|
||||||
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
import { ReactNode } from 'react'
|
||||||
|
import { clsx } from 'clsx'
|
||||||
|
|
||||||
|
interface TextProps {
|
||||||
|
children: ReactNode
|
||||||
|
className?: string
|
||||||
|
href?: string
|
||||||
|
type?: 'p' | 'span'
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Text: React.FC<TextProps> = ({
|
||||||
|
children,
|
||||||
|
className = '',
|
||||||
|
type = 'p',
|
||||||
|
}) => {
|
||||||
|
const Component = type === 'p' ? 'p' : 'span'
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Component className={`text-gray-600 ${className}`}>{children}</Component>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const BoldText: React.FC<TextProps> = ({ children, className = '' }) => (
|
||||||
|
<p className={`mt-5 pb-2 text-lg font-bold text-gray-600 ${className}`}>
|
||||||
|
{children}
|
||||||
|
</p>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const BaseBoldText: React.FC<TextProps> = ({
|
||||||
|
children,
|
||||||
|
className = '',
|
||||||
|
}) => (
|
||||||
|
<p className={`mt-5 pb-2 font-bold text-gray-600 ${className}`}>{children}</p>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const Anchor: React.FC<TextProps> = ({
|
||||||
|
children,
|
||||||
|
className = '',
|
||||||
|
href = '',
|
||||||
|
}) => (
|
||||||
|
<a
|
||||||
|
className={`text-gray-600 hover:underline ${className} break-all`}
|
||||||
|
href={href}
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</a>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const List: React.FC<TextProps> = ({ children, className = '' }) => (
|
||||||
|
<ul className={`ml-4 list-outside list-disc ${className}`}>{children}</ul>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const ListItem: React.FC<TextProps> = ({ children, className = '' }) => (
|
||||||
|
<li className={`text-gray-600 ${className}`}>{children}</li>
|
||||||
|
)
|
||||||
|
|
||||||
|
type HeadingProps = {
|
||||||
|
as?: 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'
|
||||||
|
dark?: boolean
|
||||||
|
} & React.ComponentPropsWithoutRef<
|
||||||
|
'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'
|
||||||
|
>
|
||||||
|
|
||||||
|
export function Heading({
|
||||||
|
className,
|
||||||
|
as: Element = 'h2',
|
||||||
|
dark = false,
|
||||||
|
...props
|
||||||
|
}: HeadingProps) {
|
||||||
|
return (
|
||||||
|
<Element
|
||||||
|
{...props}
|
||||||
|
data-dark={dark ? 'true' : undefined}
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
'text-pretty text-4xl font-medium tracking-tighter text-gray-950 data-[dark]:text-white sm:text-6xl',
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function Subheading({
|
||||||
|
className,
|
||||||
|
as: Element = 'h2',
|
||||||
|
dark = false,
|
||||||
|
...props
|
||||||
|
}: HeadingProps) {
|
||||||
|
return (
|
||||||
|
<Element
|
||||||
|
{...props}
|
||||||
|
data-dark={dark ? 'true' : undefined}
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
'font-mono text-xs/5 font-semibold uppercase tracking-widest text-gray-500 data-[dark]:text-gray-400',
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
Loading…
Reference in New Issue