Files
Francesco Lorenzo D'Amico f239aaffbb
Deploy Staging / deploy (push) Successful in 1m14s
add private Email to contactform and remove Curiculum Vitae button
2026-08-26 16:01:53 +02:00

1244 lines
49 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@page
@model IndexModel
@{
ViewData["Title"] = "Bewerbung Francesco Lorenzo D'Amico";
}
@section Styles {
<style>
.mean-container .mean-bar::before {
content: "Francesco L. D'Amico";
font-size: 16px;
top: 20px;
max-width: 75%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.portfolio-section {
padding: 90px 0;
}
.portfolio-section:nth-of-type(even) {
background: #f8f9fb;
}
.section-kicker {
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 700;
}
.section-title {
margin-bottom: 40px;
}
.section-title h2 {
font-size: 38px;
margin-bottom: 8px;
}
.section-title p {
max-width: 760px;
margin: 0 auto;
}
.portfolio-header .techno_menu ul li a {
padding-left: 14px;
padding-right: 14px;
}
#sticky-header.portfolio-header {
background: rgba(9, 12, 26, .65);
}
.portfolio-brand {
font-size: 24px;
font-weight: 800;
color: #fff;
display: inline-block;
padding: 22px 0;
letter-spacing: .02em;
}
.portfolio-brand:hover {
color: #fff;
}
.portfolio-header .header-button,
.portfolio-header .slider-button-text {
display: none;
}
#hero.slider-area.slider8 {
min-height: 650px;
background-color: #0b0e1a;
background-image: url(/images/slider/banner-a.png);
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
#hero .slider-content h1 {
line-height: 1.05;
}
#hero .slider-thumb-images {
margin-left: 40px;
}
#hero .slider-thumb-images img {
aspect-ratio: 1 / 1;
object-fit: cover;
clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}
#hero .hero-actions {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-top: 25px;
}
#hero .hero-secondary {
display: inline-block;
padding: 16px 28px;
border: 2px solid #fff;
color: #fff;
font-weight: 700;
}
#hero .hero-secondary:hover {
background: #fff;
color: #111;
}
#hero .hero-social {
margin-top: 25px;
}
#hero .hero-social a {
color: #fff;
margin-right: 18px;
text-decoration: underline;
}
#hero .slider-socail-icon2 {
display: none;
}
#about .about-area {
padding: 90px 0;
margin-top: 0;
}
#about .techno-about-thumb-3 {
margin-left: 0;
}
#about .about-facts {
margin-top: 20px;
}
#about .dreamit-section-title h1,
#about .dreamit-section-title p {
color: #151423;
}
#about .about-fact {
background: #f8f9fb;
border: 1px solid #e6e8f0;
padding: 18px 20px;
margin-bottom: 12px;
border-radius: 4px;
display: flex;
justify-content: space-between;
align-items: center;
}
#about .about-fact strong {
color: #151423;
}
#about .about-fact span {
color: #33354b;
}
#about .about-fact i {
color: #0c5adb;
}
#skills .skills-grid {
display: flex;
flex-wrap: wrap;
}
#skills .skills-grid > div {
margin-bottom: 30px;
display: flex;
}
#skills .techno-sinlge-service-box,
#skills .techno-sinlge-service-box-1,
#skills .techno-sinlge-service-box.active {
min-height: 220px;
width: 100%;
}
#skills .techno-service-title p {
margin-bottom: 0;
}
#projects .project-card {
background: #fff;
height: 100%;
margin-bottom: 30px;
box-shadow: 0 8px 30px rgba(20,30,60,.08);
}
#projects .portfolio-details-thumb img {
width: 100%;
height: 210px;
object-fit: cover;
}
#projects .portfolio-details-titles {
padding: 24px 24px 8px;
}
#projects .details-category {
padding: 0 24px;
}
#projects .project-actions {
padding: 14px 24px 24px;
display: flex;
gap: 10px;
flex-wrap: wrap;
}
#projects .project-actions a {
display: inline-block;
padding: 10px 14px;
background: #0c5adb;
color: #fff;
font-weight: 700;
border-radius: 2px;
}
#projects .project-actions a.github {
background: #171717;
}
#projects .details-category h4 {
margin-top: 12px;
margin-bottom: 2px;
}
#projects .details-category h4:first-child {
margin-top: 0;
}
#projects .project-card-expanded .portfolio-details-thumb {
height: 100%;
}
#projects .project-card-expanded .portfolio-details-thumb img {
height: 100%;
min-height: 260px;
}
#goals .service-area {
padding: 90px 0;
}
#goals .goals-grid {
display: flex;
flex-wrap: wrap;
}
#goals .goals-grid > div {
margin-bottom: 30px;
display: flex;
}
#goals .techno-sinlge-service-box,
#goals .techno-sinlge-service-box-1 {
min-height: 220px;
width: 100%;
}
#experience .career-details {
padding: 90px 0;
}
#experience .experience-timeline {
position: relative;
padding-left: 36px;
}
#experience .experience-timeline:before {
content: "";
position: absolute;
top: 8px;
bottom: 8px;
left: 8px;
width: 2px;
background: #0c5adb;
}
#experience .experience-item {
position: relative;
margin-bottom: 28px;
padding: 26px 30px;
background: #fff;
box-shadow: 0 8px 25px rgba(20,30,60,.08);
}
#experience .experience-item:before {
content: "";
position: absolute;
left: -34px;
top: 31px;
width: 14px;
height: 14px;
border-radius: 50%;
background: #fff;
border: 3px solid #0c5adb;
}
#experience .experience-item h3 {
margin-bottom: 6px;
}
#experience .experience-meta {
color: #0c5adb;
font-weight: 700;
margin-bottom: 12px;
}
#documents .documents-grid {
display: flex;
flex-wrap: wrap;
}
#documents .documents-grid > div {
margin-bottom: 30px;
display: flex;
}
#documents .single-circular-box {
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-bottom: 0;
}
#documents .circular-btn {
position: static;
text-align: left;
margin-top: 14px;
clear: both;
}
#contact .contact-us-area {
padding: 90px 0;
}
#contact .contact-copy {
padding-right: 35px;
}
#contact .contact-links {
margin-top: 22px;
display: flex;
gap: 18px;
flex-wrap: wrap;
}
#contact .contact-links a {
font-weight: 700;
text-decoration: underline;
}
#contact .contact-visual img {
width: 100%;
max-height: 390px;
object-fit: contain;
}
#contact .contact-button {
margin-top: 22px;
}
.portfolio-footer.footer-middle {
padding: 0;
background: #0b0e1a;
}
.portfolio-footer .footer-bottom {
margin-top: 0;
padding: 28px 0;
}
.portfolio-footer .footer-bottom-content-copy p {
margin: 0;
text-align: center;
}
.portfolio-footer .footer-bottom .col-lg-12 {
text-align: center;
}
@@media (max-width: 991px) {
#hero.slider-area.slider8 {
min-height: auto;
padding: 130px 0 80px;
}
#hero .slider-thumb-images {
margin-top: 40px;
text-align: center;
}
.portfolio-brand {
color: #111;
padding: 15px 0;
}
#about .techno-about-thumb-box {
margin-bottom: 30px;
}
.portfolio-section {
padding: 60px 0;
}
#about .about-area,
#goals .service-area,
#experience .career-details,
#contact .contact-us-area {
padding: 60px 0;
}
}
@@media (max-width: 767px) {
.section-title h2,
.dreamit-section-title h1 {
font-size: 28px;
}
#hero.slider-area.slider8 {
padding: 110px 0 60px;
text-align: center;
}
#hero .hero-actions,
#hero .hero-social {
justify-content: center;
}
#about .about-fact {
flex-wrap: wrap;
gap: 6px;
}
#skills .techno-sinlge-service-box,
#skills .techno-sinlge-service-box-1,
#skills .techno-sinlge-service-box.active,
#goals .techno-sinlge-service-box,
#goals .techno-sinlge-service-box-1 {
min-height: 0;
margin-bottom: 20px;
}
#projects .portfolio-details-thumb img {
height: 180px;
}
#experience .experience-timeline {
padding-left: 26px;
}
#experience .experience-item {
padding: 20px 18px;
}
#experience .experience-item:before {
left: -24px;
}
#documents .single-circular-box {
text-align: center;
}
#contact .contact-copy {
padding-right: 0;
text-align: center;
margin-bottom: 30px;
}
#contact .contact-links {
justify-content: center;
}
}
@@media (max-width: 480px) {
#hero .slider-content h1 {
font-size: 32px !important;
}
.mean-container .mean-bar::before {
font-size: 14px;
max-width: 65%;
}
}
</style>
}
<section id="hero" class="slider-area slider8 d-flex align-items-center">
<div class="container">
<div class="row d-flex align-items-center slider">
<div class="col-lg-7 col-md-12 col-sm-12">
<div class="slider-content">
<p class="section-kicker">Applikationsentwickler</p>
<h1>FRANCESCO</h1>
<h1>LORENZO</h1>
<h1><span class="color3">D'AMICO</span></h1>
<p>
Ich entwickle gerne Anwendungen, bei denen aus einer Idee Schritt für Schritt eine
funktionierende Lösung entsteht. Auf dieser Seite zeige ich ausgewählte Projekte,
Technologien, mit denen ich bereits gearbeitet habe, und was ich bisher in der
Applikationsentwicklung gelernt habe.
</p>
<div class="hero-actions">
<div class="slider-button2">
<a href="#projects">PROJEKTE ANSEHEN <i class="fas fa-check-square"></i></a>
</div>
<a class="hero-secondary" href="#contact">
Kontakt aufnehmen
</a>
</div>
<div class="hero-social">
<a href="https://www.linkedin.com/in/francesco-d-amico-342b61356/" target="_blank" rel="noopener">LinkedIn</a>
<a href="mailto:Francescodamico649@gmail.com">E-Mail</a>
</div>
</div>
</div>
<div class="col-lg-5">
<div class="slider-thumb-images">
<img src="~/images/resource/Bewerbung_Foto.jpeg" alt="Francesco Lorenzo D'Amico">
</div>
<div class="slider-shape">
<div class="shape-inner bounce-animate2">
<img src="~/images/slider/shape1.png" alt="">
</div>
<div class="shape-inner-1 bounce-animate4">
<img src="~/images/slider/shape2.png" alt="">
</div>
</div>
</div>
</div>
</div>
</section>
<section id="about">
<div class="about-area style-three">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="techno-about-thumb-box">
<div class="techno-about-thumb-3">
<img src="~/images/about/my-personal-workspace.jpg" alt="Über mich">
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="row about-left">
<div class="col-lg-12">
<div class="dreamit-section-title style-four white">
<h5>Über mich</h5>
<h1>APPLIKATIONSENTWICKLUNG</h1>
<h1>MIT <span class="color2">NEUGIER</span></h1>
<p class="pt-text">
Mich fasziniert an der Softwareentwicklung, dass aus einer Idee Schritt für
Schritt eine funktionierende Anwendung entsteht. Dabei möchte ich nicht nur
wissen, dass etwas funktioniert, sondern auch verstehen, warum. Ich arbeite
gerne strukturiert, probiere neue Technologien aus und verbessere Lösungen
iterativ.
</p>
</div>
<div class="about-facts">
<div class="about-fact"><strong>Denkweise</strong><span>Produktorientiert & zukunftsgerichtet <i class="fas fa-angle-right"></i></span></div>
<div class="about-fact"><strong>Arbeitsweise</strong><span>Strukturiert & lösungsorientiert <i class="fas fa-angle-right"></i></span></div>
<div class="about-fact"><strong>Interessen</strong><span>Moderne Technologien & Trends <i class="fas fa-angle-right"></i></span></div>
<div class="about-fact"><strong>Lernhaltung</strong><span>Neugier & praxisorientiert <i class="fas fa-angle-right"></i></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="skills" class="portfolio-section">
<div class="container">
<div class="dreamit-section-title style-two text-center section-title">
<h5>Kompetenzen</h5>
<h1>MEINE TECHNISCHEN <span>SKILLS</span></h1>
<p>Technologien und Arbeitsweisen, mit denen ich bereits gearbeitet habe.</p>
</div>
<div class="row skills-grid">
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-pen"></i></div>
<div class="techno-service-title"><h2>Backend</h2><p>ASP.NET Core · Entity Framework Core · REST APIs · C# · PHP · Symfony</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box-1">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-chat"></i></div>
<div class="techno-service-title"><h2>Frontend</h2><p>React · SASS · Symfony-Twig · PHP Bootstrap</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box active">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-database"></i></div>
<div class="techno-service-title"><h2>DB</h2><p>MongoDB · MS SQL Server</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-settings"></i></div>
<div class="techno-service-title"><h2>Systeme</h2><p>Docker · TrueNAS · Webhosting-Grundlagen</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box-1">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-growth"></i></div>
<div class="techno-service-title"><h2>AI</h2><p>Prompting · Code-Unterstützung · Recherche</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-clock"></i></div>
<div class="techno-service-title"><h2>Soft Skills</h2><p>Strukturiertes Arbeiten · Lernbereitschaft · selbstständige Fehlersuche · Zuverlässigkeit</p></div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="projects" class="portfolio-section">
<div class="container">
<div class="dreamit-section-title style-two text-center section-title">
<h5>Projekte</h5>
<h1>MEINE <span>PROJEKTE</span></h1>
</div>
<div class="row">
<div class="col-lg-6 col-md-6">
<article class="project-card">
<div class="portfolio-details-thumb"><img src="~/images/projects/Screenshot 2026-08-24 153904.png" alt="Francesco's Recipes World"></div>
<div class="portfolio-details-titles">
<h3>Francesco's Recipes World</h3>
<p>Full-Stack-Rezeptverwaltung zum Erstellen, Bearbeiten und Kategorisieren von Rezepten, Zutaten und Einheiten. Die Anwendung basiert auf einer strukturierten MVC-Architektur und relationaler Datenmodellierung.</p>
</div>
<div class="details-category">
<h4>TECH:</h4><p>C# · ASP.NET Core MVC · Entity Framework Core · JavaScript · AJAX</p>
<h4>Meine Arbeit:</h4><p>Datenmodellierung, Controller- und Geschäftslogik, Razor-Views, CRUD-Funktionen sowie AJAX-Integration umgesetzt.</p>
</div>
<div class="project-actions"><a href="https://francescos-rezepten-tool.francesco-damico.ch/" target="_blank" rel="noopener">Projekt ansehen</a><a class="github" href="https://github.com/francesco448/Francescos.Recipes.World" target="_blank" rel="noopener">GitHub</a></div>
</article>
</div>
<div class="col-lg-6 col-md-6">
<article class="project-card">
<div class="portfolio-details-thumb"><img src="~/images/projects/Screenshot 2026-08-24 154143.png" alt="Realtime Chat App"></div>
<div class="portfolio-details-titles">
<h3>Realtime Chat App</h3>
<p>Echtzeit-Chat-Anwendung mit React-Frontend, Node.js-Backend und persistenter Datenspeicherung. Nachrichten und Räume werden über Socket.IO in Echtzeit synchronisiert.</p>
</div>
<div class="details-category">
<h4>TECH:</h4><p>React · Node.js · Express · Socket.IO · MongoDB · Docker</p>
<h4>Meine Arbeit:</h4><p>Frontend und Backend umgesetzt, Echtzeitkommunikation integriert, Datenhaltung angebunden und Anwendung mit Docker containerisiert.</p>
</div>
<div class="project-actions"><a href="https://chatapp.francesco-damico.ch/" target="_blank" rel="noopener">Projekt ansehen</a><a class="github" href="https://github.com/francesco448/chat-app" target="_blank" rel="noopener">GitHub</a></div>
</article>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<article class="project-card project-card-expanded">
<div class="row align-items-stretch g-0">
<div class="col-lg-5">
<div class="portfolio-details-thumb"><img src="~/images/projects/Screenshot 2026-08-24 175017.png" alt="TrueNAS SCALE Dashboard"></div>
</div>
<div class="col-lg-7">
<div class="portfolio-details-titles">
<h3>Homelab / Self-Hosting</h3>
<p><strong>Ziel:</strong> Aufbau einer eigenen Hosting-Umgebung, um Anwendungen und Dienste selbst zu betreiben und praktische Erfahrung mit Infrastruktur, Netzwerken und Deployment zu sammeln.</p>
</div>
<div class="details-category">
<h4>Hardware / System:</h4>
<p>TrueNAS SCALE · Intel Core i5-6600 @@ 3.30 GHz · 4 Kerne / 4 Threads · 16 GB RAM · ZFS-Speicherpool mit RAIDZ1 aus 3 HDDs · 1 Gbit Ethernet / Full Duplex</p>
<h4>Services:</h4>
<p>Nginx Proxy Manager · Duplicati · Gitea · Scrutiny · Planka sowie selbst gehostete eigene Anwendungen wie Realtime Chat App, Francesco's Recipes World und Razor Pages Movie App</p>
<h4>Sicherheit:</h4>
<p>HTTPS für öffentlich erreichbare Dienste · Reverse Proxy über Nginx Proxy Manager · DNS-basierte Weiterleitung · getrennte Container und Services · Backup-Lösung mit Duplicati</p>
<h4>Meine Arbeit:</h4>
<p>Planung und Einrichtung der Homelab-Umgebung, Konfiguration von TrueNAS SCALE, Aufbau des ZFS-/RAIDZ1-Speichers, Deployment und Verwaltung von Docker-Containern über Custom Apps und YAML, Einrichtung von Nginx Proxy Manager, DNS und HTTPS sowie Betrieb eigener Webanwendungen und Datenbanken.</p>
<h4>Gelernt:</h4>
<p>Docker und Container Networking · YAML-basierte Deployments · Reverse Proxy · DNS · HTTPS · ZFS und RAIDZ1 · Self-Hosting · Deployment eigener Anwendungen · Backup-Konzept · Fehleranalyse und Troubleshooting</p>
</div>
</div>
</div>
</article>
</div>
</div>
</div>
</section>
<section id="goals">
<div class="service-area">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="dreamit-section-title text-center">
<h5>Meine Ziele</h5>
<h1>WAS ICH <span>ERREICHEN MÖCHTE</span></h1>
</div>
</div>
</div>
<div class="row goals-grid">
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-growth"></i></div>
<div class="techno-service-title"><h2>Praxis vertiefen</h2><p>Meine bisherigen Kenntnisse in echten Projekten anwenden, Verantwortung übernehmen und mich fachlich weiterentwickeln.</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box-1">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-pen"></i></div>
<div class="techno-service-title"><h2>Moderne Technologien einsetzen</h2><p>Mit aktuellen Technologien arbeiten, neue Ansätze kennenlernen und passende Lösungen für reale Anforderungen finden.</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box active">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-chat"></i></div>
<div class="techno-service-title"><h2>Eigene Ideen umsetzen</h2><p>Projekte weiterdenken, verbessern und aus Ideen langfristig funktionierende Lösungen entwickeln.</p></div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="techno-sinlge-service-box-1">
<div class="techno-service-box-inner">
<div class="techno-service-content">
<div class="techno-service-icon"><i class="flaticon-clock"></i></div>
<div class="techno-service-title"><h2>Als Entwickler wachsen</h2><p>Meine technischen und persönlichen Fähigkeiten kontinuierlich ausbauen und Schritt für Schritt mehr Verantwortung übernehmen.</p></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="experience">
<div class="career-details">
<div class="container">
<div class="dreamit-section-title style-two text-center section-title">
<h5>Erfahrung</h5>
<h1>BERUFLICHE <span>ERFAHRUNG</span></h1>
</div>
<div class="row justify-content-center">
<div class="col-lg-10">
<div class="experience-timeline single-details-box">
<article class="experience-item">
<h3>Scrum</h3>
<div class="experience-meta">Schule & Praxis · laufend angewendet</div>
<div class="details-text">
<h4>Aufgaben & Verantwortlichkeiten:</h4>
<p>Arbeit in klar definierten Aufgaben und Etappen, regelmässige Abstimmungen im Team sowie Planung und Nachverfolgung des aktuellen Projektstands.</p>
</div>
</article>
<article class="experience-item">
<h3>Agile Methoden</h3>
<div class="experience-meta">Schule & Praxis · laufend angewendet</div>
<div class="details-text">
<h4>Aufgaben & Verantwortlichkeiten:</h4>
<p>Iterative Entwicklung von Lösungen mit regelmässigem Feedback, schrittweiser Verbesserung und flexibler Anpassung an neue Anforderungen.</p>
</div>
</article>
<article class="experience-item">
<h3>Git Flow</h3>
<div class="experience-meta">Schule & Praxis · laufend angewendet</div>
<div class="details-text">
<h4>Aufgaben & Verantwortlichkeiten:</h4>
<p>Strukturierte Versionsverwaltung mit separaten Branches für neue Funktionen und Änderungen sowie kontrolliertes Zusammenführen des Codes im Team.</p>
</div>
</article>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="documents" class="portfolio-section">
<div class="container">
<div class="dreamit-section-title style-two text-center section-title">
<h5>Dokumente & Zertifikate</h5>
<h1>DOKUMENTE & <span>ZERTIFIKATE</span></h1>
</div>
<div class="row documents-grid">
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>BBC-Zertifikat</h3>
<p>Erfolgreich abgeschlossenes Basislehrjahr Informatik mit praxisnahen Grundlagen in Programmierung, Betriebssystemen, Datenbanken, IoT, Applikationsentwicklung, Webentwicklung Frontend/Backend, Mobile App Entwicklung und individueller Projektarbeit.</p>
</div>
<div class="circular-btn">
<a href="~/documents/Bbc-Zertifikat.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>ÜK 106 Kompetenznachweis</h3>
<p>Vertiefung der Grundlagen im Umgang mit relationalen Datenbanken, insbesondere beim Abfragen, Bearbeiten und Pflegen von Daten sowie beim strukturierten Arbeiten mit Datenbanksystemen.</p>
</div>
<div class="circular-btn">
<a href="~/documents/üK-106-Kompetenznachweis.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>ÜK 187 Kompetenznachweis</h3>
<p>Praktische Auseinandersetzung mit der Einrichtung und Inbetriebnahme eines ICT-Arbeitsplatzes inklusive Betriebssystem, grundlegender Systemkonfiguration und Vorbereitung für den produktiven Einsatz.</p>
</div>
<div class="circular-btn">
<a href="~/documents/üK-187-Kompetenznachweis.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>ÜK 216 Kompetenznachweis</h3>
<p>Integration vernetzter Endgeräte in bestehende Plattformen mit Fokus auf Kommunikation, Einbindung von Geräten und Zusammenspiel verschiedener Komponenten innerhalb einer IoT-Umgebung.</p>
</div>
<div class="circular-btn">
<a href="~/documents/üK-216-Kompetenznachweis.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>ÜK 223 Kompetenznachweis</h3>
<p>Entwicklung einer objektorientierten Anwendung für mehrere Benutzer mit Fokus auf sauberer Programmstruktur, Objektorientierung und der Umsetzung von Multi-User-Funktionalitäten.</p>
</div>
<div class="circular-btn">
<a href="~/documents/üK-223-Kompetenznachweis.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>ÜK 295 Kompetenznachweis</h3>
<p>Umsetzung serverseitiger Applikationslogik mit Fokus auf Backend-Strukturen, Datenverarbeitung und der technischen Grundlage für funktionsfähige Webanwendungen.</p>
</div>
<div class="circular-btn">
<a href="~/documents/üK-295-Kompetenznachweis.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>ÜK 335 Kompetenznachweis</h3>
<p>Planung und Umsetzung einer mobilen Anwendung mit Fokus auf mobile Benutzeroberflächen, Applikationslogik und die praktische Entwicklung für mobile Endgeräte.</p>
</div>
<div class="circular-btn">
<a href="~/documents/üK-335-Kompetenznachweis.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="single-circular-box">
<div class="circular-title">
<h3>ÜK 294 Kompetenznachweis</h3>
<p>Entwicklung interaktiver Weboberflächen mit Fokus auf Benutzerinteraktion, strukturiertem Frontend-Aufbau und der Umsetzung funktionaler Webanwendungen.</p>
</div>
<div class="circular-btn">
<a href="~/documents/üK-294-Kompetenznachweis.pdf" target="_blank" rel="noopener">DOKUMENT ÖFFNEN</a>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="contact">
<div class="contact-us-area style-two pt-100">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="dreamit-section-title style-two text-center">
<h5>KONTAKT</h5>
<h1>GET IN <span>TOUCH</span></h1>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="row">
<div class="col-lg-12">
<div class="contact-us-single-box">
<div class="contact-us-icon">
<i class="flaticon-suitcase"></i>
</div>
<div class="contact-us-title">
<h2>STANDORT</h2>
<p>Schweiz, Bern</p>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="contact-us-single-box">
<div class="contact-us-icon">
<i class="flaticon-call"></i>
</div>
<div class="contact-us-title">
<h2>TELEFON</h2>
<p>079 736 73 55</p>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="contact-us-single-box">
<div class="contact-us-icon">
<i class="flaticon-communications"></i>
</div>
<div class="contact-us-title">
<h2>E-MAIL</h2>
<p>
<a href="mailto:francesco.damico@gmx.ch">
francesco.damico@gmx.ch
</a>
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-8 col-md-6 col-sm-12">
<div class="row">
<div class="col-lg-12">
<div class="contact-form-box style-two">
<div id="contact-form-message" class="alert" role="alert" style="display:none;"></div>
<form method="post" id="dreamit-form" novalidate>
<h4>
Sie möchten mehr über meine Projekte oder meine Bewerbung erfahren? Ich freue mich über eine Nachricht.
</h4>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-title">
<p>Name (Pflichtfeld)</p>
</div>
<div class="from-box">
<input
type="text"
name="name"
placeholder="Name*"
required>
<div class="invalid-feedback"></div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-title">
<p>E-Mail (Pflichtfeld)</p>
</div>
<div class="from-box">
<input
type="email"
name="email"
placeholder="E-Mail*"
required>
<div class="invalid-feedback"></div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-title">
<p>Telefon (optional)</p>
</div>
<div class="from-box">
<input
type="tel"
name="phone"
placeholder="z. B. 079 123 45 67 oder +41 79 123 45 67">
<div class="invalid-feedback"></div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-title">
<p>Betreff (Pflichtfeld)</p>
</div>
<div class="from-box">
<input
type="text"
name="subject"
placeholder="Betreff*"
required>
<div class="invalid-feedback"></div>
</div>
</div>
<div class="col-lg-12">
<div class="form-title">
<p>Nachricht</p>
</div>
<div class="from-box">
<textarea
name="message"
cols="30"
rows="10"
placeholder="Nachricht*"
required></textarea>
<div class="invalid-feedback"></div>
</div>
</div>
<div class="col-lg-12">
<div class="contact-form">
<button type="submit">
NACHRICHT SENDEN
<i class="fas fa-check"></i>
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
@section Scripts {
<script>
(function () {
var form = document.getElementById("dreamit-form");
var messageBox = document.getElementById("contact-form-message");
var submitButton = form.querySelector("button[type=submit]");
function showMessage(text, isSuccess) {
messageBox.textContent = text;
messageBox.className = "alert " + (isSuccess ? "alert-success" : "alert-danger");
messageBox.style.display = "block";
}
function isValidPhone(value) {
if (!value) return true;
return /^(?:\+41|0041|0)[\s-]?\d{2}(?:[\s-]?\d{3})(?:[\s-]?\d{2}){2}$/.test(value);
}
function isValidEmail(value) {
return /^[^\s@@]+@@[^\s@@]+\.[^\s@@]+$/.test(value);
}
var validators = {
name: function (value) {
return value.trim() ? "" : "Bitte geben Sie Ihren Namen ein.";
},
email: function (value) {
if (!value.trim()) return "Bitte geben Sie Ihre E-Mail-Adresse ein.";
return isValidEmail(value.trim()) ? "" : "Bitte geben Sie eine gültige E-Mail-Adresse ein.";
},
phone: function (value) {
return isValidPhone(value.trim()) ? "" : "Bitte geben Sie eine gültige Telefonnummer ein.";
},
subject: function (value) {
return value.trim() ? "" : "Bitte geben Sie einen Betreff ein.";
},
message: function (value) {
return value.trim() ? "" : "Bitte geben Sie eine Nachricht ein.";
}
};
function fieldOf(name) {
return form.querySelector("[name=" + name + "]");
}
function validateField(name) {
var field = fieldOf(name);
var feedback = field.closest(".from-box").querySelector(".invalid-feedback");
var error = validators[name](field.value);
field.classList.toggle("is-invalid", !!error);
feedback.textContent = error;
return !error;
}
function validateAll() {
var allValid = true;
Object.keys(validators).forEach(function (name) {
if (!validateField(name)) allValid = false;
});
return allValid;
}
Object.keys(validators).forEach(function (name) {
var field = fieldOf(name);
field.addEventListener("blur", function () { validateField(name); });
field.addEventListener("input", function () {
if (field.classList.contains("is-invalid")) validateField(name);
});
});
form.addEventListener("submit", function (event) {
event.preventDefault();
if (!validateAll()) {
showMessage("Bitte korrigieren Sie die markierten Felder.", false);
return;
}
var payload = {
name: fieldOf("name").value.trim(),
email: fieldOf("email").value.trim(),
phone: fieldOf("phone").value.trim(),
subject: fieldOf("subject").value.trim(),
message: fieldOf("message").value.trim()
};
submitButton.disabled = true;
fetch("/api/v1/contact", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
})
.then(function (response) {
if (response.ok) {
showMessage("Danke für die Nachricht! Ich melde mich so schnell wie möglich.", true);
form.reset();
} else {
showMessage("Beim Senden ist ein Fehler aufgetreten. Bitte versuche es erneut.", false);
}
})
.catch(function () {
showMessage("Beim Senden ist ein Fehler aufgetreten. Bitte versuche es erneut.", false);
})
.finally(function () {
submitButton.disabled = false;
});
});
})();
</script>
}