commit b22bfcf15b9a6a5ca6114d647b014bcef27af423 Author: LupiNexMedia Date: Mon Apr 27 19:17:22 2026 +0200 initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100755 index 0000000..6f1d5f3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.php linguist-language=PHP diff --git a/README.md b/README.md new file mode 100755 index 0000000..a2af448 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Portfolio Website 1 (PHP) + +This is my first never-completed portfolio project, first posted online on May 13, 2024. It’s a multilingual PHP website featuring a homepage, About Me, Impressum, and two additional unfinished pages. The site includes automatic language redirection based on the user’s system language. The background is animated, with minimal use of JavaScript. + +This project served as an introduction to web development and digital content creation. + + +**Usage Notice**: +This project is intended as a template for creating your own projects. The content must be fundamentally changed. If you use this project as a basis, please credit me by name (Andreas R.) and link to my [GitHub account](https://github.com/LNMedia) or [website](https://areimann.de). diff --git a/assets/components/animated_triplet_element_darkgray_red.php b/assets/components/animated_triplet_element_darkgray_red.php new file mode 100755 index 0000000..318c017 --- /dev/null +++ b/assets/components/animated_triplet_element_darkgray_red.php @@ -0,0 +1,80 @@ + + + + + + Background + + + + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/assets/components/footerDE.php b/assets/components/footerDE.php new file mode 100755 index 0000000..a76bba9 --- /dev/null +++ b/assets/components/footerDE.php @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/components/footerEN.php b/assets/components/footerEN.php new file mode 100755 index 0000000..79a9ae6 --- /dev/null +++ b/assets/components/footerEN.php @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/components/headerDE.php b/assets/components/headerDE.php new file mode 100755 index 0000000..0eda6e0 --- /dev/null +++ b/assets/components/headerDE.php @@ -0,0 +1,52 @@ + + + + + + + + + + + + +
+ +

|

+ + + Dieses Bild kann nicht angezeigt werden +

|

+
+ Nicht verfügbar + Nicht verfügbar + Nicht verfügbar + Nicht verfügbar +
+

|

+ +
+ + + + \ No newline at end of file diff --git a/assets/components/headerEN.php b/assets/components/headerEN.php new file mode 100755 index 0000000..1b09f1e --- /dev/null +++ b/assets/components/headerEN.php @@ -0,0 +1,52 @@ + + + + + + + + + + + + +
+ +

|

+ + + Dieses Bild kann nicht angezeigt werden +

|

+
+ Nicht verfügbar + Nicht verfügbar + Nicht verfügbar + Nicht verfügbar +
+

|

+ Language Switch +
+ + + + \ No newline at end of file diff --git a/assets/img/Thumbs.db b/assets/img/Thumbs.db new file mode 100755 index 0000000..3095a8b Binary files /dev/null and b/assets/img/Thumbs.db differ diff --git a/assets/img/big_pictures/mainBanner.png b/assets/img/big_pictures/mainBanner.png new file mode 100755 index 0000000..4df4c7b Binary files /dev/null and b/assets/img/big_pictures/mainBanner.png differ diff --git a/assets/img/favicon.png b/assets/img/favicon.png new file mode 100755 index 0000000..09349d0 Binary files /dev/null and b/assets/img/favicon.png differ diff --git a/assets/img/flags/Thumbs.db b/assets/img/flags/Thumbs.db new file mode 100755 index 0000000..dfb4004 Binary files /dev/null and b/assets/img/flags/Thumbs.db differ diff --git a/assets/img/flags/de.png b/assets/img/flags/de.png new file mode 100755 index 0000000..4af2b3d Binary files /dev/null and b/assets/img/flags/de.png differ diff --git a/assets/img/flags/en.png b/assets/img/flags/en.png new file mode 100755 index 0000000..a0ae120 Binary files /dev/null and b/assets/img/flags/en.png differ diff --git a/assets/img/icons/Thumbs.db b/assets/img/icons/Thumbs.db new file mode 100755 index 0000000..bd622a2 Binary files /dev/null and b/assets/img/icons/Thumbs.db differ diff --git a/assets/img/icons/logos/Thumbs.db b/assets/img/icons/logos/Thumbs.db new file mode 100755 index 0000000..ef40f4f Binary files /dev/null and b/assets/img/icons/logos/Thumbs.db differ diff --git a/assets/img/icons/logos/youtube.png b/assets/img/icons/logos/youtube.png new file mode 100755 index 0000000..d8ca995 Binary files /dev/null and b/assets/img/icons/logos/youtube.png differ diff --git a/assets/img/icons/skills/Thumbs.db b/assets/img/icons/skills/Thumbs.db new file mode 100755 index 0000000..e846b24 Binary files /dev/null and b/assets/img/icons/skills/Thumbs.db differ diff --git a/assets/img/icons/skills/development.png b/assets/img/icons/skills/development.png new file mode 100755 index 0000000..2939720 Binary files /dev/null and b/assets/img/icons/skills/development.png differ diff --git a/assets/img/icons/skills/editing.png b/assets/img/icons/skills/editing.png new file mode 100755 index 0000000..77ca1a8 Binary files /dev/null and b/assets/img/icons/skills/editing.png differ diff --git a/assets/img/icons/skills/electrician.png b/assets/img/icons/skills/electrician.png new file mode 100755 index 0000000..9d682dd Binary files /dev/null and b/assets/img/icons/skills/electrician.png differ diff --git a/assets/img/icons/skills/movie.png b/assets/img/icons/skills/movie.png new file mode 100755 index 0000000..3eb33f9 Binary files /dev/null and b/assets/img/icons/skills/movie.png differ diff --git a/assets/img/icons/skills/music.png b/assets/img/icons/skills/music.png new file mode 100755 index 0000000..482336c Binary files /dev/null and b/assets/img/icons/skills/music.png differ diff --git a/assets/img/icons/skills/podcast.png b/assets/img/icons/skills/podcast.png new file mode 100755 index 0000000..a798169 Binary files /dev/null and b/assets/img/icons/skills/podcast.png differ diff --git a/assets/img/icons/skills/streaming.png b/assets/img/icons/skills/streaming.png new file mode 100755 index 0000000..ad62a32 Binary files /dev/null and b/assets/img/icons/skills/streaming.png differ diff --git a/assets/img/icons/socials/Thumbs.db b/assets/img/icons/socials/Thumbs.db new file mode 100755 index 0000000..fcd3ab9 Binary files /dev/null and b/assets/img/icons/socials/Thumbs.db differ diff --git a/assets/img/icons/socials/spotify.png b/assets/img/icons/socials/spotify.png new file mode 100755 index 0000000..160d799 Binary files /dev/null and b/assets/img/icons/socials/spotify.png differ diff --git a/assets/img/icons/socials/telegram.png b/assets/img/icons/socials/telegram.png new file mode 100755 index 0000000..9ddfa5b Binary files /dev/null and b/assets/img/icons/socials/telegram.png differ diff --git a/assets/img/icons/socials/tiktok.png b/assets/img/icons/socials/tiktok.png new file mode 100755 index 0000000..735d3b5 Binary files /dev/null and b/assets/img/icons/socials/tiktok.png differ diff --git a/assets/img/icons/socials/youtube.png b/assets/img/icons/socials/youtube.png new file mode 100755 index 0000000..9a9837d Binary files /dev/null and b/assets/img/icons/socials/youtube.png differ diff --git a/assets/img/logofiles/complete_logo.png b/assets/img/logofiles/complete_logo.png new file mode 100755 index 0000000..e522172 Binary files /dev/null and b/assets/img/logofiles/complete_logo.png differ diff --git a/assets/img/logofiles/linktree/telegram.png b/assets/img/logofiles/linktree/telegram.png new file mode 100755 index 0000000..8c18c73 Binary files /dev/null and b/assets/img/logofiles/linktree/telegram.png differ diff --git a/assets/img/logofiles/linktree/tiktok.png b/assets/img/logofiles/linktree/tiktok.png new file mode 100755 index 0000000..05a163e Binary files /dev/null and b/assets/img/logofiles/linktree/tiktok.png differ diff --git a/assets/img/logofiles/linktree/youtube.png b/assets/img/logofiles/linktree/youtube.png new file mode 100755 index 0000000..12baf4d Binary files /dev/null and b/assets/img/logofiles/linktree/youtube.png differ diff --git a/assets/img/overview/aboutme.png b/assets/img/overview/aboutme.png new file mode 100755 index 0000000..7b8307d Binary files /dev/null and b/assets/img/overview/aboutme.png differ diff --git a/assets/img/overview/contact.png b/assets/img/overview/contact.png new file mode 100755 index 0000000..ae4f3e9 Binary files /dev/null and b/assets/img/overview/contact.png differ diff --git a/assets/img/overview/cv.png b/assets/img/overview/cv.png new file mode 100755 index 0000000..75886de Binary files /dev/null and b/assets/img/overview/cv.png differ diff --git a/assets/img/overview/projects.png b/assets/img/overview/projects.png new file mode 100755 index 0000000..b6ee147 Binary files /dev/null and b/assets/img/overview/projects.png differ diff --git a/assets/img/overview/skills.png b/assets/img/overview/skills.png new file mode 100755 index 0000000..a8e7049 Binary files /dev/null and b/assets/img/overview/skills.png differ diff --git a/assets/img/self_pictures/Thumbs.db b/assets/img/self_pictures/Thumbs.db new file mode 100755 index 0000000..9929618 Binary files /dev/null and b/assets/img/self_pictures/Thumbs.db differ diff --git a/assets/img/self_pictures/front_1.png b/assets/img/self_pictures/front_1.png new file mode 100755 index 0000000..96ed0a9 Binary files /dev/null and b/assets/img/self_pictures/front_1.png differ diff --git a/assets/img/self_pictures/front_1_transparent.png b/assets/img/self_pictures/front_1_transparent.png new file mode 100755 index 0000000..464aa8f Binary files /dev/null and b/assets/img/self_pictures/front_1_transparent.png differ diff --git a/assets/scripts/components/header.js b/assets/scripts/components/header.js new file mode 100755 index 0000000..7310739 --- /dev/null +++ b/assets/scripts/components/header.js @@ -0,0 +1,51 @@ +//Context-Menü deaktivieren +//Deactivate Context-Menu +document.addEventListener('contextmenu', function(event) { + event.preventDefault(); +}); +const langbutton = document.getElementById("lang"); +//langbutton.addEventListener("click", function() { +// window.location.href = "/lang/en/"; +//}) + +function toggleMenu() { + const navButtonMobile = document.getElementById("navbutton_mobile"); + const navMobile = document.getElementById("mobile_nav"); + + navMobile.classList.toggle('open'); // Menü umschalten + navButtonMobile.classList.toggle('openButton'); // Button-Animation umschalten +} + +document.addEventListener('click', function(event) { + const navButtonMobile = document.getElementById("navbutton_mobile"); + const navMobile = document.getElementById("mobile_nav"); + + // Prüfen, ob das Ziel des Klicks nicht das Menü oder der Button ist + if (!navMobile.contains(event.target) && !navButtonMobile.contains(event.target)) { + navMobile.classList.remove('open'); // Menü schließen + navButtonMobile.classList.remove('openButton'); // Button zurücksetzen + } +}); + +document.addEventListener("DOMContentLoaded", function() { + var langLink = document.getElementById("lang"); + + // Eventlistener für das Klicken auf das Bild + langLink.addEventListener("click", function(event) { + event.preventDefault(); // Verhindert das Standardverhalten des Links + + // Die aktuelle URL abrufen + var currentUrl = window.location.href; + + // Wenn die URL "/de/" enthält, ersetze es durch "/en/" + if (currentUrl.includes("/de/")) { + var newUrl = currentUrl.replace("/de/", "/en/"); + window.location.href = newUrl; + } + // Wenn die URL "/en/" enthält, ersetze es durch "/de/" (optional, falls du einen Umschalter möchtest) + else if (currentUrl.includes("/en/")) { + var newUrl = currentUrl.replace("/en/", "/de/"); + window.location.href = newUrl; // Neue URL aufrufen + } + }); +}); \ No newline at end of file diff --git a/assets/scripts/langRedirect/langRedirect.js b/assets/scripts/langRedirect/langRedirect.js new file mode 100755 index 0000000..217d6e6 --- /dev/null +++ b/assets/scripts/langRedirect/langRedirect.js @@ -0,0 +1,19 @@ +//Context-Menü deaktivieren +//Deactivate Context-Menu +document.addEventListener('contextmenu', function(event) { + event.preventDefault(); +}); + +function langRedirect() { + var systemsprache = navigator.language || navigator.userLanguage; + var sprache; + + if (systemsprache.startsWith('de')) { + sprache = 'de'; + } else { + sprache = 'en'; + } + window.location.href = 'lang/' + sprache; + } + +langRedirect() \ No newline at end of file diff --git a/assets/scripts/pages/homepageDE.js b/assets/scripts/pages/homepageDE.js new file mode 100755 index 0000000..f05f9f0 --- /dev/null +++ b/assets/scripts/pages/homepageDE.js @@ -0,0 +1,133 @@ +const animatedText = document.querySelector('.main1_animatedText'); + +const texts = [ + "angehender Webentwickler (Frontend)", + "Video Editor und Content Creator", + "LIVE Streamer", + "angehender Filmemacher", + "Musiker und Produzent", + "angehender Podcaster", + "gelernter Elektroniker" +]; + +let currentIndex = 0; +let currentText = ''; +let isDeleting = false; +let speed = 60; +let delay = 1000; + +function type() { + const fullText = texts[currentIndex]; + + // Schreib- oder Löschprozess + if (isDeleting) { + currentText = fullText.substring(0, currentText.length - 1); // Löschen + } else { + currentText = fullText.substring(0, currentText.length + 1); // Schreiben + } + + // Text mit Cursor anzeigen + animatedText.textContent = '> ' + currentText + '_'; + + // Überprüfe, ob der vollständige Text geschrieben wurde + if (!isDeleting && currentText === fullText) { + // Warte, bevor das Löschen beginnt + setTimeout(() => { + isDeleting = true; + type(); // Fortsetzen nach dem Delay + }, delay); + return; + } + + // Überprüfe, ob der vollständige Text gelöscht wurde + if (isDeleting && currentText === '') { + // Starte den nächsten Text, wenn der aktuelle gelöscht ist + isDeleting = false; + currentIndex = (currentIndex + 1) % texts.length; // Nächster Text + } + + // Bestimme die Geschwindigkeit je nachdem, ob gelöscht oder geschrieben wird + const typingSpeed = isDeleting ? speed / 2 : speed; + setTimeout(type, typingSpeed); // Timer für das Schreiben/Löschen +} + +// Animation automatisch beim Laden der Seite starten +document.addEventListener('DOMContentLoaded', type); + + + +function smoothScrollTo(targetId) { + const target = document.getElementById(targetId); + if (!target) return; + + const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - 100; // 100px vom oberen Bildschirmrand abziehen + const startPosition = window.pageYOffset; + const distance = targetPosition - startPosition; + const duration = 1000; // Dauer der Animation in Millisekunden + let startTime = null; + + function animation(currentTime) { + if (startTime === null) startTime = currentTime; + const timeElapsed = currentTime - startTime; + const progress = Math.min(timeElapsed / duration, 1); // Normalisierung des Fortschritts + + // Quadratische Ease-In-Out-Kurve + const ease = progress < 0.5 + ? 2 * progress * progress + : -1 + (4 - 2 * progress) * progress; + + window.scrollTo(0, startPosition + distance * ease); + + if (timeElapsed < duration) { + requestAnimationFrame(animation); // Animation fortsetzen + } + } + + requestAnimationFrame(animation); // Animation starten +} + +function navigateToPage(page) { + window.location.href = page; // Wechselt zur angegebenen Datei +} + + +const projects = [ + { + title: "Ein kleines Browser-Minigame - Light Logic Game", + description: "Hier habe ich versucht ein kleines Browsergame zu programmieren, bei dem es darauf ankommt sein Geschick zu beweisen. (Durch einige Änderungen an den Dateipfaden kann es zu Fehlern kommen. Diese werden in Zukunft noch behoben)", + link: "#", // Link zum Projekt + image: "#" // Bild des Projekts + }, + { + title: "Aktiver YouTube Kanal", + description: "Ich würde dies als Projekt mit aufnehmen, da ich hier meine Videoschnitt Skills aufbessere und mit neuen Funktionen versuche meine Fähigkeiten im Schnitt zu verbessern.", + link: "#", + image: "#" + }, + // Weitere Projekte können hier hinzugefügt werden +]; + +// Funktion zum Rendern der Projekte +function renderProjects() { + const container = document.getElementById('projects-container'); + container.innerHTML = ''; // Vorherige Inhalte löschen + + projects.forEach(project => { + const projectDiv = document.createElement('div'); + projectDiv.classList.add('project'); + + projectDiv.innerHTML = ` +
+ ${project.title} +
+

${project.title}

+

${project.description}

+ Mehr erfahren +
+
+ `; + + container.appendChild(projectDiv); + }); +} +document.addEventListener('DOMContentLoaded', renderProjects); \ No newline at end of file diff --git a/assets/scripts/pages/homepageEN.js b/assets/scripts/pages/homepageEN.js new file mode 100755 index 0000000..3ee3f5f --- /dev/null +++ b/assets/scripts/pages/homepageEN.js @@ -0,0 +1,133 @@ +const animatedText = document.querySelector('.main1_animatedText'); + +const texts = [ + "Aspiring Web Developer (Frontend)", + "Video Editor and Content Creator", + "LIVE Streamer", + "Aspiring Filmmaker", + "Musician and Producer", + "Aspiring Podcaster", + "Trained Electronics Technician" +]; + +let currentIndex = 0; +let currentText = ''; +let isDeleting = false; +let speed = 60; +let delay = 1000; + +function type() { + const fullText = texts[currentIndex]; + + // Schreib- oder Löschprozess + if (isDeleting) { + currentText = fullText.substring(0, currentText.length - 1); // Löschen + } else { + currentText = fullText.substring(0, currentText.length + 1); // Schreiben + } + + // Text mit Cursor anzeigen + animatedText.textContent = '> ' + currentText + '_'; + + // Überprüfe, ob der vollständige Text geschrieben wurde + if (!isDeleting && currentText === fullText) { + // Warte, bevor das Löschen beginnt + setTimeout(() => { + isDeleting = true; + type(); // Fortsetzen nach dem Delay + }, delay); + return; + } + + // Überprüfe, ob der vollständige Text gelöscht wurde + if (isDeleting && currentText === '') { + // Starte den nächsten Text, wenn der aktuelle gelöscht ist + isDeleting = false; + currentIndex = (currentIndex + 1) % texts.length; // Nächster Text + } + + // Bestimme die Geschwindigkeit je nachdem, ob gelöscht oder geschrieben wird + const typingSpeed = isDeleting ? speed / 2 : speed; + setTimeout(type, typingSpeed); // Timer für das Schreiben/Löschen +} + +// Animation automatisch beim Laden der Seite starten +document.addEventListener('DOMContentLoaded', type); + + + +function smoothScrollTo(targetId) { + const target = document.getElementById(targetId); + if (!target) return; + + const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - 100; // 100px vom oberen Bildschirmrand abziehen + const startPosition = window.pageYOffset; + const distance = targetPosition - startPosition; + const duration = 1000; // Dauer der Animation in Millisekunden + let startTime = null; + + function animation(currentTime) { + if (startTime === null) startTime = currentTime; + const timeElapsed = currentTime - startTime; + const progress = Math.min(timeElapsed / duration, 1); // Normalisierung des Fortschritts + + // Quadratische Ease-In-Out-Kurve + const ease = progress < 0.5 + ? 2 * progress * progress + : -1 + (4 - 2 * progress) * progress; + + window.scrollTo(0, startPosition + distance * ease); + + if (timeElapsed < duration) { + requestAnimationFrame(animation); // Animation fortsetzen + } + } + + requestAnimationFrame(animation); // Animation starten +} + +function navigateToPage(page) { + window.location.href = page; // Wechselt zur angegebenen Datei +} + + +const projects = [ + { + title: "Small Browser-Minigame - Light Logic Game", + description: "I've been working on a small browser game where the goal is to test your skills. (Due to some changes in the file paths, there may be errors. These will be fixed in the future.)", + link: "#", // Link zum Projekt + image: "#" // Bild des Projekts + }, + { + title: "Active YouTube Kanal", + description: "I’m including this as a project because it allows me to enhance my video editing skills. I’m using this opportunity to explore new features and improve my editing techniques.", + link: "#", + image: "#" + }, + // Weitere Projekte können hier hinzugefügt werden +]; + +// Funktion zum Rendern der Projekte +function renderProjects() { + const container = document.getElementById('projects-container'); + container.innerHTML = ''; // Vorherige Inhalte löschen + + projects.forEach(project => { + const projectDiv = document.createElement('div'); + projectDiv.classList.add('project'); + + projectDiv.innerHTML = ` +
+ ${project.title} +
+

${project.title}

+

${project.description}

+ Mehr erfahren +
+
+ `; + + container.appendChild(projectDiv); + }); +} +document.addEventListener('DOMContentLoaded', renderProjects); \ No newline at end of file diff --git a/assets/stylesheets/components/footer.css b/assets/stylesheets/components/footer.css new file mode 100755 index 0000000..0bbc683 --- /dev/null +++ b/assets/stylesheets/components/footer.css @@ -0,0 +1,115 @@ +/* Footer-Container */ +footer { + position: relative; + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + max-width: 1140px; + margin: 0 auto; + padding: 0px; + top: 125px; + background-color: rgba(25,25,25,0.8); + color: white; + position: relative; + font-family: 'Nanum Gothic Coding'; + box-shadow: 0 0 50px white; + border-radius: 25px 25px 0 0; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; +} + +/* Logos */ +.footerLogoLeft, .footerLogoRight { + width: 50px; + height: 50px; + padding: 25px; + object-fit: contain; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; +} + +/* Vertikale Trennlinien */ +.footerLogoLeft::after, .footerLogoRight::before { + content: ""; + display: block; + position: absolute; + width: 2px; + height: 95px; + background-color: white; +} + +.footerLogoLeft::after { + right: 60px; +} + +.footerLogoRight::before { + left: 60px; +} + +/* Navigation im Footer */ +footer nav { + display: flex; + justify-content: center; + flex-wrap: wrap; + gap: 20px; +} + +footer nav a { + text-decoration: none; + color: white; + font-weight: bold; + font-size: 18px; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; +} +footer nav a:hover { + color: rgba(200,0,0,0.7); + scale: 1.1; +} +footer nav a:active { + color: rgba(150,0,0,0.8); + scale: 0.9; +} + +/* Copyright-Text */ +footer .copyright { + display: block; + text-align: center; + margin-top: 10px; + font-size: 12px; + width: 100%; + color: rgba(125,125,125,0.7); +} + +/* Mobile Ansicht */ +@media (max-width: 768px) { + footer { + flex-direction: column; + align-items: center; + } + + .footerLogoLeft, .footerLogoRight { + margin-bottom: 10px; + padding: 10px; + } + .footerLogoRight { + display: none; + } + + footer nav { + justify-content: center; + } +} diff --git a/assets/stylesheets/components/header.css b/assets/stylesheets/components/header.css new file mode 100755 index 0000000..d25ea34 --- /dev/null +++ b/assets/stylesheets/components/header.css @@ -0,0 +1,438 @@ +header { + width: 100%; + height: 75px; + background-color: rgba(0, 0, 0, .9); + position: fixed; + border-bottom: solid 1px rgba(200, 0, 0, 0.5); + z-index: 100; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; + box-shadow: 0 0 50px white; +} +@keyframes shadow { + 0% { + box-shadow: 5px 0 50px rgba(0, 0, 0, 0.5); + } + 50% { + box-shadow: 5px 5px 100px rgba(255, 255, 255); + } + 100% { + box-shadow: 5px 5px 50px rgba(255, 0, 0); + } +} + +#lang{ + position: absolute; + width: 35px; + color: white; + top: 50%; + transform: translate(0,-50%); + right: 15px; + border-radius: 15px; + padding: 5px; +} +#lang:hover{ + background-color: rgba(0,0,0,0.5); + cursor: pointer; + scale: 1.1; + rotate: 5deg; +} +#lang:active{ + background-color: rgba(100,0,0,0.5); + scale: 0.9; +} + + +.logofile { + position: absolute; + top: 50%; + left: 25px; + transform: translate(0,-50%); + -webkit-user-drag: none; + width: 250px; + pointer-events: none; +} +.seperator1 { + position: absolute; + font-size: 45px; + color: white; + left: 300px; + top: 50%; + transform: translate(0,-140%); + z-index: 2; +} +.seperator2 { + position: absolute; + font-size: 45px; + color: white; + right: 70px; + top: 50%; + transform: translate(0,-140%); +} +.seperator3 { + position: absolute; + font-size: 45px; + color: white; + right: 300px; + top: 50%; + transform: translate(0,-140%); +} +.sidebarsocialicons { + position: absolute; + display: block; + width: 280px; + right: 60px; + top: 50%; + transform: translate(0,-50%); + height: 75px; + padding-bottom: 0px; + -webkit-user-drag: none; + text-align: center; + filter: invert(1); +} +.sidebarsocialicons a { + -webkit-user-drag: none; +} +.sidebarsocialicons img { + position: relative; + width: 35px; + height: 35px; + padding: 2px; + margin-left: 1px; + left: 10px; + top: 50%; + transform: translate(0, -50%); + -webkit-user-drag: none; +} +.sidebarsocialicons img:hover { + position: relative; + width: 42px; + height: 42px; + padding: 1px; + left: 2px; + top: 50%; + transform: translate(0, -50%) rotate(-15deg); +} +#desktop_nav { + display: block; + position: relative; + width: 48%; + height: 45px; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + background-color: rgba(25, 25, 25, 0.5); + text-align: center; + border-radius: 25px; + padding: 0 10px; +} +#desktop_nav_main { + list-style: none; + padding: 0; + margin: 0; + display: flex; + justify-content: center; + align-items: center; + height: 100%; +} +#desktop_nav li { + position: relative; + margin: 0; + padding: 0; + height: 100%; + width: 100%; + white-space: nowrap; + display: flex; + align-items: center; + border-radius: 25px; +} +#desktop_nav a { + text-decoration: none; + color: white; + width: 90%; + font-family: 'Nanum Gothic Coding'; + padding: 10px 10px; + border-radius: 20px; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; +} +#desktop_nav a:hover { + background-color: darkred; /* Hover-Effekt für die Links */ +} +#mobile_nav {display: none;} +#navbutton_mobile {display: none;} + + +@media screen and (max-width: 849px) { + .logofile { + left: 50%; + top: 50%; + transform: translate(-50%,-50%); + width: 60%; + } + #navbutton_mobile { + display: block; + position: absolute; + margin: 0; + padding: 0; + background: transparent; + text-align: center; + width: 50px; + height: 50px; + left: 15px; + top: 50%; + transition: transform 1s; + transform: translateY(-50%); + border-radius: 50%; + } + #navbutton_mobile span { + position: absolute; + background-color: white; + height: 1.5px; + width: 20px; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transition: transform 0.5s ease, opacity 0.5s ease, margin 0.5s ease; + } + #navbutton_mobile span:nth-child(1) { + margin-top: -5px; + } + #navbutton_mobile span:nth-child(2) { + margin-top: 0; + } + #navbutton_mobile span:nth-child(3) { + margin-top: 5px; + } + #navbutton_mobile:hover { + background-color: rgba(200,0,0,0.5); + cursor: pointer; + } + #navbutton_mobile:active { + background-color: rgba(150,0,0,0.5); + cursor: pointer; + } + .seperator1, .seperator2, .seperator3, .sidebarsocialicons, #desktop_nav {display: none;} + + #mobile_nav { + display: block; + position: relative; + width: 200px; + height: 230px; + left: -220px; + top: 75px; + transform: translate(0, 0); + background-color: rgba(25, 25, 25, 0.5); + backdrop-filter: blur(10px); + text-align: center; + padding: 0 10px; + border-bottom-right-radius: 25px; + transition: left 0.5s ease; + } + #mobile_nav.open { + left: 0; + } + #mobile_nav_main { + list-style: none; + padding: 0; + margin: 0; + justify-content: center; + align-items: center; + height: 100%; + } + #mobile_nav li { + position: relative; + margin: 0; + padding: 0; + height: 45px; + width: 100%; + white-space: nowrap; + display: flex; + align-items: center; + border-radius: 25px; + } + #mobile_nav a { + text-decoration: none; + color: white; + width: 90%; + font-family: 'Nanum Gothic Coding'; + padding: 10px 10px; + border-radius: 20px; + } + #mobile_nav a:hover { + background-color: darkred; + } +} + +@media screen and (min-width: 850px) and (max-width: 1249px) { + .logofile { + left: 75px; + top: 50%; + transform: translateY(-50%); + width: 35%; + } + #navbutton_mobile { + display: block; + position: absolute; + margin: 0; + padding: 0; + background: transparent; + text-align: center; + width: 50px; + height: 50px; + left: 15px; + top: 50%; + transition: transform 1s; + transform: translateY(-50%); + border-radius: 50%; + } + #navbutton_mobile span { + position: absolute; + background-color: white; + height: 1.5px; + width: 20px; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transition: transform 0.5s ease, opacity 0.5s ease, margin 0.5s ease; + } + #navbutton_mobile span:nth-child(1) { + margin-top: -5px; + } + #navbutton_mobile span:nth-child(2) { + margin-top: 0; + } + #navbutton_mobile span:nth-child(3) { + margin-top: 5px; + } + #navbutton_mobile:hover { + background-color: rgba(200,0,0,0.5); + cursor: pointer; + } + #navbutton_mobile:active { + background-color: rgba(150,0,0,0.5); + cursor: pointer; + } + .seperator2 { + position: absolute; + font-size: 45px; + color: white; + right: 70px; + top: 50%; + transform: translate(0,-140%); + } + .seperator3 { + position: absolute; + font-size: 45px; + color: white; + right: 280px; + top: 50%; + transform: translate(0,-140%); + } + .sidebarsocialicons { + position: absolute; + display: block; + width: 280px; + right: 50px; + top: 50%; + transform: translate(0,-50%); + height: 75px; + padding-bottom: 0px; + -webkit-user-drag: none; + text-align: center; + filter: invert(1); + } + .sidebarsocialicons a { + -webkit-user-drag: none; + } + .sidebarsocialicons img { + position: relative; + width: 35px; + height: 35px; + padding: 2px; + margin-left: 1px; + left: 10px; + top: 50%; + transform: translate(0, -50%); + -webkit-user-drag: none; + } + .sidebarsocialicons img:hover { + position: relative; + width: 42px; + height: 42px; + padding: 1px; + left: 2px; + top: 50%; + transform: translate(0, -50%) rotate(-15deg); + } + .seperator1, #desktop_nav {display: none;} + + #mobile_nav { + display: block; + position: relative; + width: 200px; + height: 230px; + left: -220px; + top: 75px; + transform: translate(0, 0); + background-color: rgba(25, 25, 25, 0.5); + backdrop-filter: blur(10px); + text-align: center; + padding: 0 10px; + border-bottom-right-radius: 25px; + transition: left 0.5s ease; + } + #mobile_nav.open { + left: 0; + } + #mobile_nav_main { + list-style: none; + padding: 0; + margin: 0; + justify-content: center; + align-items: center; + height: 100%; + } + #mobile_nav li { + position: relative; + margin: 0; + padding: 0; + height: 45px; + width: 100%; + white-space: nowrap; + display: flex; + align-items: center; + border-radius: 25px; + } + #mobile_nav a { + text-decoration: none; + color: white; + width: 90%; + font-family: 'Nanum Gothic Coding'; + padding: 10px 10px; + border-radius: 20px; + } + #mobile_nav a:hover { + background-color: darkred; + } +} + +#navbutton_mobile.openButton span:nth-child(1) { + transform: translate(-50%, -50%) rotateZ(45deg); + margin: 0; +} +#navbutton_mobile.openButton span:nth-child(2) { + opacity: 0; +} +#navbutton_mobile.openButton span:nth-child(3) { + transform: translate(-50%, -50%) rotateZ(-45deg); + margin: 0; +} \ No newline at end of file diff --git a/assets/stylesheets/main.css b/assets/stylesheets/main.css new file mode 100755 index 0000000..f28f01f --- /dev/null +++ b/assets/stylesheets/main.css @@ -0,0 +1,36 @@ +body { + position: relative; + margin: 0; + padding: 0; + top: 0; + left: 0; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; + overflow-x: hidden; +} +html { + scroll-behavior: smooth; +} +main { + position: relative; + height: auto; + width: 100%; + max-width: 1140px; + background: rgba(100,100,100,0.2); + left: 50%; + top: 100px; + transform: translate(-50%); + border-radius: 25px; + padding-bottom: 50px; + padding-top: 0px; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; +} \ No newline at end of file diff --git a/assets/stylesheets/pages/cv.css b/assets/stylesheets/pages/cv.css new file mode 100755 index 0000000..8462a92 --- /dev/null +++ b/assets/stylesheets/pages/cv.css @@ -0,0 +1,29 @@ +.about-me { + position: relative; + justify-content: space-around; + align-items: center; + width: 85%; + max-width: 980px; + height: auto; + border-radius: 25px; + top: 35px; + left: 50%; + margin-bottom: 20px; + transform: translate(-50%); + background-color: rgba(0, 0, 0, 0.7); /* Dunklerer Hintergrund für besseren Kontrast */ + padding: 25px; + color: white; /* Schriftfarbe weiß */ + line-height: 1.6; /* Zeilenabstand für bessere Lesbarkeit */ + font-size: 16px; /* Schriftgröße für bessere Lesbarkeit */ + font-family: 'Nanum Gothic Coding'; + text-align: justify; +} +img { + + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; +} \ No newline at end of file diff --git a/assets/stylesheets/pages/homepage.css b/assets/stylesheets/pages/homepage.css new file mode 100755 index 0000000..b4dd024 --- /dev/null +++ b/assets/stylesheets/pages/homepage.css @@ -0,0 +1,394 @@ +section { + position: relative; + width: 90%; + max-width: 1050px; + height: auto; + padding-bottom: 0px; + border-radius: 25px; + top: 50px; + margin-bottom: 50px; + left: 50%; + background-color: rgba(120,120,120,0.3); + transform: translate(-50%); + overflow: hidden; + backdrop-filter: blur(25px); +} + +/* Sektion 1 */ +.main1_Banner { + position: absolute; + width: 100%; + height: auto; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + margin: 0; + padding: 0; + filter: blur(15px); + transition: transform 1s, filter 1s; + opacity: 0.7; +} +.main1_Banner:hover { + transform: translate(-50%,-50%) scale(1.1); + filter: blur(0); +} +.main1_Selfie { + position: relative; + width: 25%; + border-radius: 50%; + margin: 25px; + border: solid 2.5px red; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + -webkit-user-drag: none; + box-shadow: 0 0 50px orange; + opacity: 0.8; + filter: brightness(100%) contrast(150%) grayscale(25%); + -webkit-filter: brightness(100%) contrast(150%) grayscale(25%); + transition: filter 1s; +} +.main1_Hey { + position: absolute; + margin: 0; + padding: 0; + width: 25%; + top: 50%; + left: 35%; + transform: translate(0,-50%); + color: white; + font-size: clamp(15px, 3vw, 35px); + font-family: 'Nanum Gothic Coding'; +} +.main1_Name { + position: absolute; + margin: 0; + padding: 0; + width: 25%; + top: 50%; + left: 60%; + transform: translate(0,-50%); + color: white; + font-size: clamp(25px, 5vw, 120px); + font-family: 'Metal Mania'; + text-shadow: 2px 2px 4px red; +} +.main1_animatedTextContainer { + position: relative; + width: 25%; + left: 50%; + margin: 0; + transform: translate(-50%, -75px); + padding-left: 25px; + text-align: left; +} +.main1_animatedText { + position: absolute; + top: 0; + left: 0; + padding: 0; + color: #48ff48e1; /* Typisches Grün für die Commandline */ + font-size: clamp(15px, 3vw, 30px); + white-space: nowrap; /* Text bleibt in einer Zeile */ + font-family: 'Nanum Gothic Coding'; + border-right: 2px solid #00FF00; /* Cursor simuliert */ + display: inline-block; + margin-top: 20px; +} +@keyframes blink { + 0% { border-right-color: #00FF00; } + 50% { border-right-color: transparent; } + 100% { border-right-color: #00FF00; } +} +.main1_animatedText { + animation: blink 0.8s steps(1) infinite; /* Cursor blinkt */ +} + +/* Header Titles */ +.main2_Header, .main4_Header, .main5_Header, .main6_Header { + position: relative; + margin: 0; + padding: 0; + top: 15px; + left: 50%; + transform: translate(-50%); + color: white; + font-size: clamp(25px, 4vw, 100px); + font-family: 'Metal Mania'; + text-shadow: 2px 2px 4px red; + padding-bottom: 10px; + width: 50%; + text-align: center; + border-radius: 25px; + border-bottom: solid 1px red; + white-space: nowrap; +} + +/* Sektion 2 - Übersicht */ +#main2 { + padding-bottom: 45px; +} +.main2_menuContainer { + position: relative; + display: flex; + overflow-x: scroll; + justify-content: space-around; + align-items: center; + width: 95%; + max-width: 980px; + height: 250px; + border-radius: 25px 25px 0 0; + top: 35px; + left: 50%; + margin-bottom: 20px; + transform: translate(-50%); + background-color: rgba(0,0,0,0.3); + scrollbar-width: thin; + scrollbar-color: rgba(80,80,80,0.7) rgba(0,0,0,0.3); +} +.main2_MenuPoint { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 10px; + margin: 5px; + margin-left: 15px; + margin-right: 15px; + border: 1px solid #ccc; + border-radius: 10px; + transition: transform 0.3s; + min-width: 250px; + max-width: 250px; + height: 180px; + background-color: rgba(150,150,150,0.3); + font-family: 'Nanum Gothic Coding'; + color: white; + cursor: grab; + font-size: 18px; +} +.main2_MenuPoint:hover { + transform: scale(1.03) rotate(-3deg); + cursor: pointer; +} +.main2_MenuPoint:active { + transform: scale(0.97) rotate(-6deg); +} +.main2_menuContainer::-webkit-scrollbar { + height: 10px; +} +.main2_menuContainer::-webkit-scrollbar-track { + background-color: rgba(0,0,0,0.3); + border-radius: 10px; +} +.main2_menuContainer::-webkit-scrollbar-thumb { + background-color: rgba(80,80,80,0.7); /* Farbe des Scrollbar-Daumens */ + border-radius: 10px; + border: 2px solid transparent; /* Platz für Padding */ + background-clip: padding-box; /* Clip für Padding */ +} +.main2_menuContainer::-webkit-scrollbar-thumb:hover { + background-color: rgba(50,50,50,0.9); /* Hover-Effekt für den Scroll-Daumen */ +} +.main2_menuPointImage { + width: 100%; + height: auto; + overflow: hidden; + border-radius: 10px; +} +.main2_menuPointText { + font-size: 18px; + color: white; + margin-top: 5px; + text-align: center; +} + +/* Sektion 3 - Über Mich */ +#main3 { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + padding: 20px 0; +} +.main3_Header { + margin: 0; + padding: 0; + color: white; + font-size: clamp(25px, 4vw, 100px); + font-family: 'Metal Mania'; + text-shadow: 2px 2px 4px red; + width: 50%; + text-align: center; + border-radius: 25px; + border-bottom: solid 1px red; +} +.main3_AboutMe { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: 20px; + padding: 25px; + border-radius: 25px; + width: 85%; + margin: 20px 0; + background-color: rgba(0,0,0,0.3); +} +.main3_Selfie { + width: 30%; + filter: brightness(100%) contrast(150%) grayscale(25%); + -webkit-filter: brightness(100%) contrast(150%) grayscale(25%); + -webkit-user-select: none; + user-select: none; + -webkit-user-drag: none; + z-index: 1; + opacity: 0.8; +} +.main3_Text { + flex: 1; + height: auto; + max-height: 300px; + padding: 0px 15px; + border-radius: 25px; + color: white; + overflow-y: auto; + overflow-x: hidden; + font-size: clamp(14px, 2vw, 20px); + text-align: justify; + font-family: 'Nanum Gothic Coding'; + scrollbar-width: thin; + scrollbar-color: gray transparent; +} +.main3_Text::-webkit-scrollbar { + width: 8px; +} +.main3_Text::-webkit-scrollbar-track { + background: transparent; + border-radius: 25px; +} +.main3_Text::-webkit-scrollbar-thumb { + background: gray; + border-radius: 25px; +} +.main3_Text::-webkit-scrollbar-button { + display: none; +} + +/* Sektion 4 - Fähigkeiten */ +.skills-container { + display: flex; + flex-direction: column; + align-items: center; + margin: 35px auto; + width: 85%; + padding: 25px; + padding-bottom: 15px; + border-radius: 25px; + background-color: rgba(0,0,0,0.3); +} +.skill { + display: flex; + align-items: center; + margin-bottom: 25px; + width: 100%; +} +.skill-icon { + width: 75px; + height: 75px; + margin-right: 10px; +} +.skill-info { + flex-grow: 1; +} +.skill-info span { + color: white; + font-family: 'Nanum Gothic Coding'; + font-size: clamp(14px, 2vw, 20px); +} +.progress-bar-container { + background-color: #ccc; + border-radius: 5px; + height: 15px; + padding: 5px; + width: 98%; +} +.progress-bar { + background-color: #4caf50; + height: 100%; + border-radius: 15px; + transition: width 0.5s ease; +} + +/* Sektion 5 - Aktuelle Projekte*/ +.projects-container { + display: flex; + flex-direction: column; + align-items: center; + margin: 35px auto; + width: 85%; + padding: 25px; + padding-bottom: 35px; + border-radius: 25px; + background-color: rgba(0, 0, 0, 0.3); +} +.project { + display: flex; + border: 1px solid #ccc; + border-radius: 5px; + margin: 25px 0; + margin-bottom: 10px; + padding: 15px; + width: 90%; + text-align: left; /* Text linksbündig */ + color: white; + border-radius: 25px; + background-color: rgba(150,150,150,0.3); +} +.project-text h3 { + font-size: clamp(15px, 3vw, 25px); + font-family: 'Metal Mania'; +} +.project-text p { + font-family: 'Nanum Gothic Coding'; + font-size: clamp(14px, 2vw, 20px); +} +.project-text a { + font-family: 'Nanum Gothic Coding'; + text-decoration: none; + color: red; + font-size: clamp(14px, 2vw, 20px); +} +.project-content { + display: flex; /* Flexbox für Bild und Text */ + align-items: center; /* Zentriere die Elemente vertikal */ +} +.project-image { + width: 100px; /* Breite des Bildes anpassen */ + height: auto; + max-width: 100%; /* Maximale Breite beibehalten */ + border-radius: 5px; + margin-right: 15px; /* Abstand zwischen Bild und Text */ +} +.project-text { + flex: 1; /* Text nimmt den restlichen Platz ein */ +} + +/* Sektion 6 - Kontakt */ +.main6_Container { + margin: 35px auto; + width: 85%; + padding: 25px; + border-radius: 25px; + background-color: rgba(0, 0, 0, 0.3); +} +.main6_Form { + position: relative; + overflow: hidden; + border-radius: 25px; + filter: brightness(100%) contrast(150%) grayscale(25%); + -webkit-filter: brightness(100%) contrast(150%) grayscale(25%); + opacity: 0.7; +} \ No newline at end of file diff --git a/assets/stylesheets/pages/impress.css b/assets/stylesheets/pages/impress.css new file mode 100755 index 0000000..b45ab8d --- /dev/null +++ b/assets/stylesheets/pages/impress.css @@ -0,0 +1,35 @@ +.impressum { + position: relative; + justify-content: space-around; + align-items: center; + width: 95%; + max-width: 980px; + height: auto; + border-radius: 25px; + top: 35px; + left: 50%; + margin-bottom: 20px; + transform: translate(-50%); + background-color: rgba(0, 0, 0, 0.7); /* Dunklerer Hintergrund für besseren Kontrast */ + padding: 20px; + color: white; /* Schriftfarbe weiß */ + line-height: 1.6; /* Zeilenabstand für bessere Lesbarkeit */ + font-size: 16px; /* Schriftgröße für bessere Lesbarkeit */ + font-family: 'Nanum Gothic Coding'; +} + +/* Für Links im Impressum */ +.impressum a { + color: #00aaff; /* Farbige Links, die sich abheben */ + text-decoration: none; +} + +.impressum a:hover { + text-decoration: underline; +} + +/* Für Überschriften im Impressum */ +.impressum h1, .impressum strong { + color: #ffffff; /* Weiße Schrift für Überschriften und wichtige Punkte */ + font-weight: bold; +} diff --git a/assets/stylesheets/pages/links.css b/assets/stylesheets/pages/links.css new file mode 100755 index 0000000..742971c --- /dev/null +++ b/assets/stylesheets/pages/links.css @@ -0,0 +1,69 @@ +.linktree { + max-width: 800px; + margin: 0 auto; + text-align: center; +} +.treeText { + position: relative; + margin: 0; + padding: 0; + top: 15px; + left: 50%; + transform: translate(-50%); + color: white; + font-size: clamp(25px, 4vw, 100px); + font-family: 'Metal Mania'; + text-shadow: 2px 2px 4px red; + padding-bottom: 10px; + width: 50%; + text-align: center; + border-radius: 25px; + border-bottom: solid 1px red; + white-space: nowrap; +} +.links-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-top: 50px; + gap: 30px; /* Abstand zwischen den Links */ +} +.link { + background-color: rgba(100,100,100,0.5); + border: 1px solid #ddd; + border-radius: 25px 25px 10px 10px; + padding: 15px; + text-decoration: none; + color: white; + width: 100%; + max-width: 200px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); + transition: transform 0.2s; + height: 100px; + overflow: hidden; + font-family: 'Nanum Gothic Coding'; +} +.link:hover { + transform: scale(1.05); +} +.banner { + width: 100%; + border-radius: 5px; + margin-bottom: 15px; +} + +@media (min-width: 600px) { + .link { + width: calc(33.33% - 20px); /* 3 Links nebeneinander */ + } +} +@media (min-width: 400px) { + .link { + width: calc(50% - 20px); /* 2 Links nebeneinander */ + } +} +@media (max-width: 399px) { + .link { + width: 100%; /* 1 Link pro Zeile */ + } +} \ No newline at end of file diff --git a/index.php b/index.php new file mode 100755 index 0000000..fb92800 --- /dev/null +++ b/index.php @@ -0,0 +1,16 @@ + + + + + + LangRedirect + + + + + + + + + + \ No newline at end of file diff --git a/lang/de/index.php b/lang/de/index.php new file mode 100755 index 0000000..4cf8678 --- /dev/null +++ b/lang/de/index.php @@ -0,0 +1,201 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +

Hey, ich bin

+

Andreas

+
+
+
+
+ + +
+

Übersicht

+
+
+ Bild 1 +

Über Mich

+
+
+ Bild 2 +

Fähigkeiten

+
+
+ Bild 3 +

aktuelle Projekte

+
+
+ Bild 4 +

Kontakt

+
+
+ Bild 5 +

Lebenslauf

+
+
+
+ + +
+

Über Mich

+
+ +
+

+ Ich bin Andreas Reimann, ein vielseitiger Video Editor mit einem breiten Spektrum an Fähigkeiten, insbesondere in der Videoproduktion. + Ich arbeite mit Software wie DaVinci Resolve und OBS, um qualitativ hochwertige Inhalte zu erstellen. + Ich habe vor, eigene kleine Filme zu produzieren, um meine kreativen Ideen visuell umzusetzen und meine Fähigkeiten im Storytelling weiter zu entwickeln. +

+

+ Neben meiner Arbeit als Video Editor bin ich auch Musiker und Produzent. + Ich arbeite mit DAWs wie FL Studio, Audacity und Adobe Audition und spiele Piano, um kreative Audioproduktionen zu entwickeln und anderen Menschen eine Freude zu bereiten. +

+

+ Zudem bin ich ein vielseitiger Webentwickler mit Fokus auf Frontend-, aber auch Fähigkeiten in der Backend-Entwicklung sowie Serveradministration. + Ich nutze diese Kenntnisse, um ansprechende Webanwendungen zu erstellen und zu betreuen. +

+

+ Darüber hinaus habe ich eine abgeschlossene Ausbildung als Elektroniker für Energie- und Gebäudetechnik. (08.2016 - 02.2020) + Diese technische Grundlage unterstützt mich in meiner Karriere und ermöglicht mir, komplexe Probleme effektiv zu lösen. +

+

+ Zusätzlich habe ich Erfahrung im Live Streaming und nutze Plattformen wie TikTok und YouTube, um Gaming-Inhalte und kreative Projekte mit meiner Community zu teilen. +

+

+ Derzeit plane ich auch, mit dem Podcasten zu beginnen, um meine effektive Stimmlage als Erzähler zu trainieren und meine Erzählfähigkeiten weiterzuentwickeln. +

+

+ Ich freue mich darauf, Ihnen meine Projekte und Arbeiten vorzustellen. + Für mehr Informationen besuchen Sie bitte die entsprechenden Seiten meiner Website. +

+
+
+
+ + +
+

Fähigkeiten

+
+
+ Video Editing Icon +
+ Video Editing und Content Creation +
+
+
+
+
+
+ Video Editing Icon +
+ LIVE Streaming +
+
+
+
+
+
+ Video Editing Icon +
+ Musikproduktion +
+
+
+
+
+
+ Video Editing Icon +
+ Elektroniker für Energie- und Gebäudetechnik +
+
+
+
+
+
+ Video Editing Icon +
+ Webentwicklung (Frontend (teils Backend)) +
+
+
+
+
+
+ Video Editing Icon +
+ Podcasting +
+
+
+
+
+
+ Video Editing Icon +
+ Film-Erstellung +
+
+
+
+
+
+
+ + +
+

aktuelle Projekte

+
+
+ + +
+

Kontakt (WIP)

+
+
WIP
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/lang/de/pages/cv.php b/lang/de/pages/cv.php new file mode 100755 index 0000000..79c8834 --- /dev/null +++ b/lang/de/pages/cv.php @@ -0,0 +1,86 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + + +
+
+ Andreas Reimann +

Über Mich

+

Name: Andreas Reimann

+

Geboren am: 06.10.1998

+ +

Berufliche und hobbymäßige Ziele

+
    +
  • Software- und Webentwicklung: Ich strebe danach, innovative Softwarelösungen zu entwickeln, die sowohl die Benutzerfreundlichkeit als auch die Funktionalität verbessern. Mein Fokus liegt auf der Entwicklung von Webseiten und Anwendungen mit einem soliden Backend.
  • +
  • Webvideoproduzent und Live-Streamer: Mit jahrelanger Erfahrung in der Videoproduktion und im Live-Streaming bin ich versiert im Umgang mit verschiedenen Softwaretools, darunter Davinci Resolve, Wondershare Filmora 11, CapCut und OBS. Ich produziere Inhalte für Plattformen wie YouTube und TikTok und genieße es, meine Zuschauer in die Welt des Gamings mitzunehmen und sie zu unterhalten.
  • +
  • Musikproduktion: Als Musiker und Produzent bringe ich meine kreativen Ideen in die Realität, indem ich hauptsächlich mit ImageLine FL Studio und Audacity arbeite. Ich liebe es, Musik zu komponieren und verschiedene Genres zu erkunden.
  • +
+ +

Aktuelle Fähigkeiten und Erfahrungen

+
    +
  • Programmierkenntnisse: Ich beherrsche mehrere Programmiersprachen, darunter HTML, PHP, CSS, JavaScript und SQL. Mein Engagement für kontinuierliches Lernen zeigt sich in meinen persönlichen Projekten, in denen ich Scripts schreibe und mich weiterbilde.
  • +
  • Servertechnik: Ich betreibe einen eigenen Webserver zur Datenspeicherung (NAS) und verwalte Gameserver auf meinem Home-PC. Ich bin versiert in der Einrichtung von Websites auf Home-Servern, einschließlich SSL-Zertifizierung und eigener Domain.
  • +
  • Datenbankverwaltung: Ich habe eine eigene MySQL-Datenbank auf meinem Home-PC eingerichtet und gepflegt.
  • +
  • Ordner- und Dateistrukturen: Ich plane und setze effektive Ordner- und Dateistrukturen für systeminterne Archivierungssysteme um.
  • +
  • Audionetzwerke: Ich habe ein Audionetzwerk in einem Heimnetzwerk realisiert, wobei ich VoiceMeeter (VBAN) verwendet habe.
  • +
  • Musikproduktion: Ich produziere Musik basierend auf meinen eigenen Ideen und spiele Piano, um meiner Kreativität Ausdruck zu verleihen.
  • +
  • Videoproduktion: Ich habe Erfahrung im Aufnehmen und Schneiden von Videos für Plattformen wie TikTok und YouTube, insbesondere im Gaming-Bereich, und ich liebe es, Inhalte zu erstellen, die die Zuschauer fesseln.
  • +
  • Live-Streaming: Ich streame regelmäßig Live-Inhalte auf TikTok und YouTube und teile meine Leidenschaft für Spiele mit einem breiten Publikum.
  • +
+ +

Zusätzliche Kenntnisse

+
    +
  • Bildbearbeitung: Ich habe Grundkenntnisse in der Bildbearbeitung, die ich durch persönliche Projekte weiter ausbaue.
  • +
  • DNS-Verwaltung: Ich habe grundlegende Erfahrungen im Umgang mit dem Domain Name System und verstehe die Grundlagen der DNS-Administration.
  • +
  • KI-Anwendungen: Ich nutze KI-Tools wie ChatGPT und BlackBoxAI, wobei ich bereits fortgeschrittene Kenntnisse erworben habe.
  • +
  • Englische Sprachkenntnisse: Ich bin in der Lage, schriftlich auf Englisch zu kommunizieren, jedoch weniger im gesprochenen Bereich.
  • +
  • Office-Anwendungen: Ich bin mit Open Office vertraut und habe Erfahrung in der Nutzung von Excel, Word und PowerPoint.
  • +
  • PC-Setups: Ich habe Kenntnisse im Aufbau komplexer PC-Setups und kann diese effizient einrichten.
  • +
  • Kommandozeile und PowerShell: Ich bin mit der Verwendung der Kommandozeile und PowerShell unter Windows vertraut und nutze diese Werkzeuge regelmäßig.
  • +
+ +

Angehender Podcaster

+

Ich interessiere mich auch für das Podcasting und plane, meine eigenen Geschichten und Ideen in Audioform zu teilen. Dabei möchte ich verschiedene Themen erkunden und meine Kreativität zum Ausdruck bringen. Mein Ziel ist es, eine fesselnde Erzählweise zu entwickeln, die meine Zuhörer in den Bann zieht und sie zum Nachdenken anregt.

+ +

Angehender Filmemacher

+

In der Welt des Filmemachens möchte ich meine Visionen zum Leben erwecken, indem ich Geschichten visuell umsetze. Ich plane, kurze Filme und Dokumentationen zu erstellen, um verschiedene Perspektiven darzustellen und Emotionen zu transportieren. Dabei werde ich meine Erfahrungen in der Videoproduktion und -bearbeitung einfließen lassen und innovative Ansätze verfolgen, um meine Erzählungen zu bereichern.

+ +

Abschlusswort

+

Ich freue mich darauf, meine Fähigkeiten weiter auszubauen und neue Projekte in Angriff zu nehmen. Mit meiner Leidenschaft für Technologie, Kreativität und Kommunikation strebe ich danach, einen bleibenden Eindruck zu hinterlassen und meine Visionen in die Realität umzusetzen. Für weitere Informationen besuche bitte die entsprechenden Seiten meines Portfolios.

+
+
+ + + + + \ No newline at end of file diff --git a/lang/de/pages/legal/faq.php b/lang/de/pages/legal/faq.php new file mode 100755 index 0000000..e8a90a0 --- /dev/null +++ b/lang/de/pages/legal/faq.php @@ -0,0 +1,39 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + +
+
+

Hier könnten wichtige Informationen stehen

+
+
+ + + + + + \ No newline at end of file diff --git a/lang/de/pages/legal/impress.php b/lang/de/pages/legal/impress.php new file mode 100755 index 0000000..2f6417f --- /dev/null +++ b/lang/de/pages/legal/impress.php @@ -0,0 +1,91 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + +
+
+

Impressum

+

Angaben gemäß § 5 DDG

+

+ Andreas Reimann
+ ****************
+ ****************
+

+

Vertreten durch:
+ Andreas Reimann
+

+

+ Kontakt:
+ Telefon: 01520-6482495
+ E-Mail: contact@areimann.de
+

+

+ Haftungsausschluss:

+ Haftung für Inhalte

+ Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. + Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. + Als Diensteanbieter sind wir gemäß § 7 Abs.1 DDG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. + Nach §§ 8 bis 10 DDG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. + Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. + Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. + Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

+ Haftung für Links

+ Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. + Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. + Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. + Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. + Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. + Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

+ Urheberrecht

+ Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. + Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. + Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. + Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. + Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. + Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

+ Datenschutz

+ Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. + Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. + Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
+ 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.
+ Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. + Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.
+

+
+ Website Impressum erstellt durch + impressum-generator.de + von der + Kanzlei Hasselbach +
+
+ + + + + + \ No newline at end of file diff --git a/lang/de/pages/legal/sources.php b/lang/de/pages/legal/sources.php new file mode 100755 index 0000000..44b551b --- /dev/null +++ b/lang/de/pages/legal/sources.php @@ -0,0 +1,39 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + +
+
+

Hier ist mehr als genug Platz für Quellenangaben

+
+
+ + + + + + \ No newline at end of file diff --git a/lang/de/pages/links.php b/lang/de/pages/links.php new file mode 100755 index 0000000..05ec86b --- /dev/null +++ b/lang/de/pages/links.php @@ -0,0 +1,75 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + \ No newline at end of file diff --git a/lang/en/index.php b/lang/en/index.php new file mode 100755 index 0000000..8bfa956 --- /dev/null +++ b/lang/en/index.php @@ -0,0 +1,200 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +

Hey, i am

+

Andreas

+
+
+
+
+ + +
+

Overview

+
+
+ Bild 1 +

About Me

+
+
+ Bild 2 +

Skills

+
+
+ Bild 3 +

Projekts

+
+
+ Bild 4 +

Contact

+
+
+ Bild 5 +

Personal Resume

+
+
+
+ + +
+

About Me

+
+ +
+

+ I am Andreas Reimann, a versatile video editor with a wide range of skills, particularly in video production. + I work with software like DaVinci Resolve and OBS to create high-quality content. + I plan to produce my own small films to visually bring my creative ideas to life and further develop my storytelling abilities. +

+

+ In addition to my work as a video editor, I am also a musician and producer. + I use DAWs like FL Studio, Audacity, and Adobe Audition, and I play the piano to develop creative audio productions and bring joy to others. +

+

+ Furthermore, I am a versatile web developer focusing on frontend development, but I also have skills in backend development and server administration. + I use this knowledge to create and maintain engaging web applications. +

+

+ Additionally, I have completed an apprenticeship as an electronics technician for energy and building technology (08.2016 - 02.2020). + This technical foundation supports my career and enables me to solve complex problems effectively. +

+

+ I also have experience in live streaming and use platforms like TikTok and YouTube to share gaming content and creative projects with my community. +

+

+ Currently, I am also planning to start podcasting to train my effective narration voice and further develop my storytelling skills. +

+

+ I look forward to presenting my projects and work to you. + For more information, please visit the relevant sections of my website. +

+
+
+
+ + +
+

Skills

+
+
+ Video Editing Icon +
+ Video Editing und Content Creation +
+
+
+
+
+
+ Video Editing Icon +
+ LIVE Streaming +
+
+
+
+
+
+ Video Editing Icon +
+ Musikproduction +
+
+
+
+
+
+ Video Editing Icon +
+ Electronics engineer for energy and building technology +
+
+
+
+
+
+ Video Editing Icon +
+ Web development (frontend (partly backend)) +
+
+
+
+
+
+ Video Editing Icon +
+ Podcasting +
+
+
+
+
+
+ Video Editing Icon +
+ Moviemaking +
+
+
+
+
+
+
+ + +
+

Projects

+
+
+ + +
+

Contact (WIP)

+
+
WIP
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/lang/en/pages/cv.php b/lang/en/pages/cv.php new file mode 100755 index 0000000..2e534ef --- /dev/null +++ b/lang/en/pages/cv.php @@ -0,0 +1,86 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + + +
+
+ Andreas Reimann +

About Me

+

Name: Andreas Reimann

+

Date of Birth: October 6, 1998

+ +

Professional and Hobby Goals

+
    +
  • Software and Web Development: I strive to develop innovative software solutions that enhance both usability and functionality. My focus is on creating websites and applications with a solid backend.
  • +
  • Web Video Producer and Live Streamer: With years of experience in video production and live streaming, I am skilled in using various software tools, including DaVinci Resolve, Wondershare Filmora 11, CapCut, and OBS. I produce content for platforms like YouTube and TikTok, and I enjoy taking my viewers into the world of gaming and entertaining them.
  • +
  • Music Production: As a musician and producer, I bring my creative ideas to life mainly using ImageLine FL Studio and Audacity. I love composing music and exploring different genres.
  • +
+ +

Current Skills and Experiences

+
    +
  • Programming Skills: I master several programming languages, including HTML, PHP, CSS, JavaScript, and SQL. My commitment to continuous learning is evident in my personal projects, where I write scripts and educate myself further.
  • +
  • Server Technology: I run my own web server for data storage (NAS) and manage game servers on my home PC. I am skilled in setting up websites on home servers, including SSL certification and custom domains.
  • +
  • Database Management: I have set up and maintained my own MySQL database on my home PC.
  • +
  • Folder and File Structures: I plan and implement effective folder and file structures for internal archiving systems.
  • +
  • Audio Networks: I have created an audio network in a home network, using VoiceMeeter (VBAN).
  • +
  • Music Production: I produce music based on my own ideas and play the piano to express my creativity.
  • +
  • Video Production: I have experience recording and editing videos for platforms like TikTok and YouTube, especially in the gaming sector, and I love creating content that captivates viewers.
  • +
  • Live Streaming: I regularly stream live content on TikTok and YouTube, sharing my passion for games with a broad audience.
  • +
+ +

Additional Skills

+
    +
  • Image Editing: I have basic knowledge of image editing, which I am further developing through personal projects.
  • +
  • DNS Management: I have basic experience with the Domain Name System and understand the fundamentals of DNS administration.
  • +
  • AI Applications: I use AI tools like ChatGPT and BlackBoxAI, having gained advanced knowledge in this area.
  • +
  • English Language Skills: I am able to communicate in writing in English, though less proficiently in speaking.
  • +
  • Office Applications: I am familiar with Open Office and have experience using Excel, Word, and PowerPoint.
  • +
  • PC Setups: I have knowledge in building complex PC setups and can efficiently configure them.
  • +
  • Command Line and PowerShell: I am familiar with using the command line and PowerShell in Windows and use these tools regularly.
  • +
+ +

Aspiring Podcaster

+

I am also interested in podcasting and plan to share my own stories and ideas in audio form. I want to explore various topics and express my creativity. My goal is to develop a captivating narrative style that draws my listeners in and makes them think.

+ +

Aspiring Filmmaker

+

In the world of filmmaking, I want to bring my visions to life by visually interpreting stories. I plan to create short films and documentaries to represent different perspectives and convey emotions. I will incorporate my experiences in video production and editing and pursue innovative approaches to enrich my narratives.

+ +

Closing Words

+

I look forward to further developing my skills and taking on new projects. With my passion for technology, creativity, and communication, I aim to leave a lasting impression and bring my visions to life. For more information, please visit the relevant pages of my portfolio.

+
+
+ + + + + \ No newline at end of file diff --git a/lang/en/pages/legal/faq.php b/lang/en/pages/legal/faq.php new file mode 100755 index 0000000..7c47a94 --- /dev/null +++ b/lang/en/pages/legal/faq.php @@ -0,0 +1,39 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + +
+
+

Important Informations could stand here

+
+
+ + + + + + \ No newline at end of file diff --git a/lang/en/pages/legal/impress.php b/lang/en/pages/legal/impress.php new file mode 100755 index 0000000..c9cb77d --- /dev/null +++ b/lang/en/pages/legal/impress.php @@ -0,0 +1,90 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + +
+
+

Imprint

+

Information according to § 5 DDG

+

+ Andreas Reimann
+ ****************
+ ****************
+

+

Represented by:
+ Andreas Reimann
+

+

+ Contact:
+ Phone: 01520-6482495
+ E-Mail: contact@areimann.de
+

+

+ Disclaimer:

+ Liability for Content

+ The content of our pages has been created with the greatest care. + However, we cannot guarantee the accuracy, completeness, and timeliness of the content. + As a service provider, we are responsible for our own content on these pages according to general laws in accordance with § 7 Abs.1 DDG. + According to §§ 8 to 10 DDG, we are not obliged to monitor transmitted or stored foreign information or to investigate circumstances indicating illegal activity. + Obligations to remove or block the use of information under general laws remain unaffected. + Liability in this regard is only possible from the moment we become aware of a specific legal infringement. + If we become aware of such legal infringements, we will remove this content immediately.

+ Liability for Links

+ Our offer contains links to external websites of third parties, over whose content we have no influence. + Therefore, we cannot assume any liability for these external contents. + The content of the linked pages is always the responsibility of the respective provider or operator of the pages. + The linked pages were checked for possible legal violations at the time of linking. Illegal contents were not recognizable at the time of linking. + A permanent content control of the linked pages is, however, unreasonable without concrete evidence of a legal infringement. + If we become aware of legal infringements, we will remove such links immediately.

+ Copyright

+ The contents and works created by the site operators on these pages are subject to German copyright law. + The duplication, editing, distribution, and any form of exploitation beyond the limits of copyright require the written consent of the respective author or creator. + Downloads and copies of this page are only permitted for private, non-commercial use. + Insofar as the contents on this page were not created by the operator, the copyrights of third parties are observed. + In particular, third-party contents are marked as such. If you nevertheless become aware of a copyright infringement, we ask for a corresponding notice. + If we become aware of legal infringements, we will remove such contents immediately.

+ Data Protection

+ The use of our website is usually possible without providing personal data. + Insofar as personal data (for example, name, address, or email addresses) are collected on our pages, this is always done, as far as possible, on a voluntary basis. + These data will not be disclosed to third parties without your explicit consent.
+ We point out that data transmission over the Internet (e.g., when communicating via email) may have security gaps. + A complete protection of the data against access by third parties is not possible.
+ The use of contact data published in the context of the imprint obligation by third parties for the purpose of sending unsolicited advertising and information materials is hereby expressly opposed. + The operators of the pages expressly reserve the right to take legal action in the event of the unsolicited sending of advertising information, for example, through spam emails.
+

+
+ Website imprint created by + impressum-generator.de + by the + Kanzlei Hasselbach +
+
+ + + + + + \ No newline at end of file diff --git a/lang/en/pages/legal/sources.php b/lang/en/pages/legal/sources.php new file mode 100755 index 0000000..9d29e07 --- /dev/null +++ b/lang/en/pages/legal/sources.php @@ -0,0 +1,39 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + +
+
+

Here is more than enough Place for sources

+
+
+ + + + + + \ No newline at end of file diff --git a/lang/en/pages/links.php b/lang/en/pages/links.php new file mode 100755 index 0000000..0a996b0 --- /dev/null +++ b/lang/en/pages/links.php @@ -0,0 +1,75 @@ + + + + + + + + Portfolio Website - A. Reimann + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + \ No newline at end of file