From bac82b156822775410c0c63a43648aa90ff72f2e Mon Sep 17 00:00:00 2001 From: Francesco Lorenzo D'Amico Date: Fri, 11 Sep 2026 13:41:45 +0200 Subject: [PATCH] Render the public homepage from the editable section partials --- BewerbungWebseite/Pages/Index.cshtml | 1514 +------------------ BewerbungWebseite/Pages/Index.cshtml.cs | 14 +- BewerbungWebseite/Pages/_ViewImports.cshtml | 1 + 3 files changed, 24 insertions(+), 1505 deletions(-) diff --git a/BewerbungWebseite/Pages/Index.cshtml b/BewerbungWebseite/Pages/Index.cshtml index 4cd07ad..58afc8f 100644 --- a/BewerbungWebseite/Pages/Index.cshtml +++ b/BewerbungWebseite/Pages/Index.cshtml @@ -1,1513 +1,23 @@ -@page +@page @model IndexModel @{ ViewData["Title"] = "Bewerbung – Francesco Lorenzo D'Amico"; } + @section Styles { - + } -
-
-
-
-
-

Applikationsentwickler

-

FRANCESCO

-

LORENZO

-

D'AMICO

-

- 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. -

- - -
-
-
-
- Francesco Lorenzo D'Amico -
-
-
- -
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
- Über mich -
-
-
-
-
-
-
-
Über mich
-

APPLIKATIONSENTWICKLUNG

-

MIT NEUGIER

-

- 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. -

-
-
-
DenkweiseProduktorientiert & zukunftsgerichtet
-
ArbeitsweiseStrukturiert & lösungsorientiert
-
InteressenModerne Technologien & Trends
-
LernhaltungNeugier & praxisorientiert
-
-
-
-
-
-
-
-
- -
-
-
-
Kompetenzen
-

MEINE TECHNISCHEN SKILLS

-

Technologien und Arbeitsweisen, mit denen ich bereits gearbeitet habe.

-
- -
-
-
-
-
-
-

Backend

ASP.NET Core · Entity Framework Core · REST APIs · C# · PHP · Symfony

-
-
-
-
- -
-
-
-
-
-

Frontend

React · SASS · Symfony-Twig · PHP Bootstrap · razor-pages · html · css · javascript

-
-
-
-
- -
-
-
-
-
-

DB

MongoDB · MS SQL Server

-
-
-
-
- -
-
-
-
-
-

Systeme

Docker · TrueNAS · Webhosting-Grundlagen · Windows · Linux basics

-
-
-
-
- -
-
-
-
-
-

AI

Prompting · Code-Unterstützung · Recherche

-
-
-
-
- -
-
-
-
-
-

Soft Skills

Strukturiertes Arbeiten · Lernbereitschaft · selbstständige Fehlersuche · Zuverlässigkeit

-
-
-
-
-
-
-
- -
-
-
-
Projekte
-

MEINE PROJEKTE

-
- -
-
-
-
Bewerbungsseite
-
-

Bewerbungsseite

-

Meine eigene Bewerbungswebsite, entwickelt mit ASP.NET Core Razor Pages, um Lebenslauf, Projekte und Fähigkeiten in einer selbst gebauten Anwendung zu präsentieren.

-
-
-

TECH:

C# · ASP.NET Core Razor Pages · Entity Framework Core · Bootstrap · JavaScript

-

Meine Arbeit:

Konzeption, Umsetzung und laufende Weiterentwicklung von Struktur, Styling und Inhalten sowie Deployment im eigenen Homelab.

-
- -
-
- -
-
-
Francesco's Recipes World
-
-

Francesco's Recipes World

-

Full-Stack-Rezeptverwaltung zum Erstellen, Bearbeiten und Kategorisieren von Rezepten, Zutaten und Einheiten. Die Anwendung basiert auf einer strukturierten MVC-Architektur und relationaler Datenmodellierung.

-
-
-

TECH:

C# · ASP.NET Core MVC · Entity Framework Core · JavaScript · AJAX

-

Meine Arbeit:

Datenmodellierung, Controller- und Geschäftslogik, Razor-Views, CRUD-Funktionen sowie AJAX-Integration umgesetzt.

-
- -
-
-
- -
-
-
-
-
-
Realtime Chat App
-
-
-
-

Realtime Chat App

-

Echtzeit-Chat-Anwendung mit React-Frontend, Node.js-Backend und persistenter Datenspeicherung. Nachrichten und Räume werden über Socket.IO in Echtzeit synchronisiert.

-
-
-

TECH:

React · Node.js · Express · Socket.IO · MongoDB · Docker

-

Meine Arbeit:

Frontend und Backend umgesetzt, Echtzeitkommunikation integriert, Datenhaltung angebunden und Anwendung mit Docker containerisiert.

-
- -
-
-
-
-
- -
-
-
-
-
-
TrueNAS SCALE Dashboard
-
-
-
-

Homelab / Self-Hosting

-

Ziel: Aufbau einer eigenen Hosting-Umgebung, um Anwendungen und Dienste selbst zu betreiben und praktische Erfahrung mit Infrastruktur, Netzwerken und Deployment zu sammeln.

-
-
-

Hardware / System:

-

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

- -

Services:

-

Nginx Proxy Manager · Duplicati · Gitea · Scrutiny · Planka sowie selbst gehostete eigene Anwendungen wie Realtime Chat App, Francesco's Recipes World und diese Bewerbungsseite

- -

Sicherheit:

-

HTTPS für öffentlich erreichbare Dienste · Reverse Proxy über Nginx Proxy Manager · DNS-basierte Weiterleitung · getrennte Container und Services

- -

Meine Arbeit:

-

- 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-Routing über Subdomains der - eigenen Domain francesco-damico.ch und HTTPS sowie Betrieb eigener Webanwendungen und Datenbanken. -

- -

Gelernt:

-

Docker und Container Networking · YAML-basierte Deployments · Reverse Proxy · DNS · HTTPS · ZFS und RAIDZ1 · Self-Hosting · Deployment eigener Anwendungen · Backup-Konzept · Fehleranalyse und Troubleshooting

-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
Meine Ziele
-

WAS ICH ERREICHEN MÖCHTE

-
-
- -
- -
-
-
-
-
-
-

Praxis vertiefen

Meine bisherigen Kenntnisse in weiteren Projekten anwenden, Verantwortung übernehmen und mich fachlich weiterentwickeln.

-
-
-
-
- -
-
-
-
-
-

Moderne Technologien einsetzen

Mit aktuellen Technologien arbeiten, neue Ansätze kennenlernen und passende Lösungen für reale Anforderungen finden.

-
-
-
-
- -
-
-
-
-
-

Eigene Ideen umsetzen

Projekte weiterdenken, verbessern und aus Ideen langfristig funktionierende Lösungen entwickeln.

-
-
-
-
- -
-
-
-
-
-

Als Entwickler wachsen

Meine technischen und persönlichen Fähigkeiten kontinuierlich ausbauen und Schritt für Schritt mehr Verantwortung übernehmen.

-
-
-
-
-
-
-
-
- -
-
-
-
-
Erfahrung
-

BERUFLICHE ERFAHRUNG

-
- -
-
-
-
-

Agile Methodiken, wie Scrum

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Arbeit in klar definierten Aufgaben und Etappen mit regelmässigen Abstimmungen im Team, iterativer Entwicklung von Lösungen mit regelmässigem Feedback sowie flexibler Anpassung an neue Anforderungen und Nachverfolgung des Projektstands.

-
-
- -
-

Git Flow

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Strukturierte Versionsverwaltung mit separaten Branches für neue Funktionen und Änderungen sowie kontrolliertes Zusammenführen des Codes im Team.

-
-
- -
-

IPERKA

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Strukturiertes Vorgehen bei Aufträgen nach dem Handlungszyklus Informieren, Planen, Entscheiden, Realisieren, Kontrollieren und Auswerten.

-
-
- -
-

Ticketsystem-Arbeit

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Erfassen, Priorisieren und Abarbeiten von Aufgaben in Ticketsystemen wie Jira zur strukturierten Nachverfolgung des Projektstands.

-
-
- -
-

Testing & Fehleranalyse

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Manuelles Testen von Funktionen sowie systematische Fehleranalyse und Debugging in echten Projekten zur Sicherstellung der Softwarequalität.

-
-
- -
-

Dokumentation

-
Schule · vereinzelt in Projekten
-
-

Aufgaben & Verantwortlichkeiten:

-

Vor allem in der Berufsschule Dokumentationen verfasst; in Projekten mit weiteren Mitarbeitenden zusätzlich Code an relevanten Stellen kommentiert, im Lehrbetrieb selbst eher selten.

-
-
- -
-

CI/CD & Deployment

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Containerisierung und Deployment von Anwendungen mit Docker sowie strukturierte Versionierung von Releases.

-
-
- -
-

Datenbank-Design

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Modellierung und Normalisierung relationaler Datenbanken in echten Projekten zur strukturierten Datenhaltung.

-
-
- -
-

Code Reviews

-
Schule & Praxis · laufend angewendet
-
-

Aufgaben & Verantwortlichkeiten:

-

Eigenen Code von anderen prüfen lassen, um Feedback zur Codequalität einzuholen und daraus zu lernen.

-
-
-
- -
- -
-
-
-
-
-
- -
-
-
-
Dokumente & Zertifikate
-

DOKUMENTE & ZERTIFIKATE

-
- -
-
-
-
-

BBC-Zertifikat

-

Erfolgreich abgeschlossenes Basislehrjahr Informatik mit praxisnahen Grundlagen in Programmierung, Betriebssystemen, Datenbanken, IoT, Applikationsentwicklung, Webentwicklung Frontend/Backend, Mobile App Entwicklung und individueller Projektarbeit.

-
- -
-
- -
-
-
-

ÜK 106 – Kompetenznachweis

-

Vertiefung der Grundlagen im Umgang mit relationalen Datenbanken, insbesondere beim Abfragen, Bearbeiten und Pflegen von Daten sowie beim strukturierten Arbeiten mit Datenbanksystemen.

-
- -
-
- -
-
-
-

ÜK 187 – Kompetenznachweis

-

Praktische Auseinandersetzung mit der Einrichtung und Inbetriebnahme eines ICT-Arbeitsplatzes inklusive Betriebssystem, grundlegender Systemkonfiguration und Vorbereitung für den produktiven Einsatz.

-
- -
-
- -
-
-
-

ÜK 216 – Kompetenznachweis

-

Integration vernetzter Endgeräte in bestehende Plattformen mit Fokus auf Kommunikation, Einbindung von Geräten und Zusammenspiel verschiedener Komponenten innerhalb einer IoT-Umgebung.

-
- -
-
- -
-
-
-

ÜK 223 – Kompetenznachweis

-

Entwicklung einer objektorientierten Anwendung für mehrere Benutzer mit Fokus auf sauberer Programmstruktur, Objektorientierung und der Umsetzung von Multi-User-Funktionalitäten.

-
- -
-
- -
-
-
-

ÜK 295 – Kompetenznachweis

-

Umsetzung serverseitiger Applikationslogik mit Fokus auf Backend-Strukturen, Datenverarbeitung und der technischen Grundlage für funktionsfähige Webanwendungen.

-
- -
-
- -
-
-
-

ÜK 335 – Kompetenznachweis

-

Planung und Umsetzung einer mobilen Anwendung mit Fokus auf mobile Benutzeroberflächen, Applikationslogik und die praktische Entwicklung für mobile Endgeräte.

-
- -
-
- -
-
-
-

ÜK 294 – Kompetenznachweis

-

Entwicklung interaktiver Weboberflächen mit Fokus auf Benutzerinteraktion, strukturiertem Frontend-Aufbau und der Umsetzung funktionaler Webanwendungen.

-
- -
-
-
-
-
- -
-
-
- -
-
-
-
KONTAKT
-

GET IN TOUCH

-
-
-
- -
- -
-
- -
-
-
- -
- -
-

STANDORT

-

Schweiz, Bern

-
-
-
- -
-
-
- -
- -
-

TELEFON

-

- 079 736 73 55 -

-
-
-
- -
-
-
- -
- - -
-
- -
-
- -
-
-
- -
- - - -
- -

- Sie möchten mehr über meine Projekte oder meine Bewerbung erfahren?
Ich freue mich über eine Nachricht. -

- -
- -
-
-

Name (Pflichtfeld)

-
- -
- -
-
-
- -
-
-

E-Mail (Pflichtfeld)

-
- -
- -
-
-
- -
-
-

Telefon (optional)

-
- -
- -
-
-
- -
-
-

Betreff (Pflichtfeld)

-
- -
- -
-
-
- -
-
-

Nachricht

-
- -
- -
-
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
-
-
+ + + + + + + + @section Scripts { - + } diff --git a/BewerbungWebseite/Pages/Index.cshtml.cs b/BewerbungWebseite/Pages/Index.cshtml.cs index 58407c6..3fbb91e 100644 --- a/BewerbungWebseite/Pages/Index.cshtml.cs +++ b/BewerbungWebseite/Pages/Index.cshtml.cs @@ -1,12 +1,20 @@ using Microsoft.AspNetCore.Mvc.RazorPages; +using BewerbungsSeite.Models.SiteContent; +using BewerbungsSeite.Services; namespace BewerbungsSeite.Pages { - public class IndexModel : PageModel + public class IndexModel(IPageContentService pageContentService) : PageModel { - public void OnGet() - { + /// Der aus der Datenbank geladene Seiteninhalt. + public PageContent PageContent { get; private set; } = new(); + /// Auf der oeffentlichen Seite nie aktiv; nur die Admin-Seite rendert im Editiermodus. + public bool EditMode => false; + + public async Task OnGetAsync() + { + PageContent = await pageContentService.GetAsync(HttpContext.RequestAborted); } } } diff --git a/BewerbungWebseite/Pages/_ViewImports.cshtml b/BewerbungWebseite/Pages/_ViewImports.cshtml index d53df6a..bd26613 100644 --- a/BewerbungWebseite/Pages/_ViewImports.cshtml +++ b/BewerbungWebseite/Pages/_ViewImports.cshtml @@ -1,3 +1,4 @@ @using BewerbungsSeite +@using BewerbungsSeite.Models.SiteContent @namespace BewerbungsSeite.Pages @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers