--- marp: true theme: default paginate: true --- # Defensio Diplomarbeit: AlumniHub ## Individueller Teil: Adam Gaiswinkler **Entwicklung von CMS-Modulen & Frontend-Design** --- # Ausgangslage & Motivation - **Ausgangssituation**: Bedarf an einer modernen Plattform für den Absolventenverein der HTL Ungargasse. - **Persönliche Motivation**: - Steigende Verantwortung durch Teamverkleinerung (von 6 auf 3 Personen). - Identifikation mit dem Projekt wuchs deutlich. - Praktische Anwendung von Blazor & ASP.NET in einem realen Umfeld. - **Individuelle Ziele**: - Entwicklung von Oqtane-Modulen (Anmeldetool & Hall of Fame). - Web-Entwicklung mit Fokus auf responsives und nutzerfreundliches UI/UX. --- # Eingesetzte Technologien - **Backend & Core**: C#, ASP.NET Core - **Frontend**: Blazor (für interaktive Weboberflächen direkt in C#) - **CMS**: Oqtane Framework - **Styling**: Bootstrap & Custom CSS - **Spezielle Tools**: QuestPDF (PDF-Generierung), Gitea (Versionskontrolle) - **Entwicklungsumgebung**: Visual Studio 2022 & JetBrains Rider (macOS) --- # Umsetzung: Oqtane Theme - **Ziel**: Modernes, schlichtes Design im Stil der HTL Ungargasse (szu.at). - **Technische Highlights**: - Vollständige Eigenentwicklung der Navigationslogik (über `PageState.Pages`). - Dynamisches Ausblenden von Systemseiten via LINQ. - **Responsive Design**: Einsatz von CSS Media Queries und einer komplett CSS-basierten Burger-Menü-Lösung. - Integration eines `ControlPanels` und Cookie-Consent. --- # Umsetzung: Hall of Fame (1) - **Zweck**: Sichtbarmachung von erfolgreichen Absolventinnen und Absolventen. - **UI & UX**: - Responsive Kartenübersicht der Personen mit Such- und Sortierfunktion (Echtzeit). - Detailseite im modernen "Glasmorphismus"-Design. - **Datenerfassung & Workflow**: - Rich-Text-Editor zur Eingabe des Werdegangs. - Bild-Upload-System (Live-Vorschau, max. 5 MB) statt manueller URLs. - Statusverwaltung ("Entwurf" vs. "Veröffentlicht") inkl. Eigentümerprüfung. --- # Umsetzung: Hall of Fame (2) - **PDF-Export**: Dynamische Generierung eines ansprechenden Profil-PDFs mittels *QuestPDF*. - **Moderation**: - Integriertes Meldesystem (Reporting) direkt über ein separates Interfaces-Paket angesteuert. - **Datenbank & Persistenz**: - Entity Framework Core inkl. Migrationen (`HallOfFame` und `HallOfFameReport` Tabellen). --- # Umsetzung: Anmeldetool für Treffen - **Zweck**: Vereinfachung der Planung und Teilnehmerverwaltung. - **Funktion**: - Klare, farblich getrennte Zusage- und Absage-Buttons. - Live-Rückmeldung bei Statusänderung dank Blazor. - Saubere Trennung von UI-Komponente und Backend-API. - **UX-Optimierung**: - Fokus auf Overlay-Darstellung und Mobile-Clipping-Vermeidung. --- # Herausforderungen & Lösungen - **Plattformwechsel (Windows zu macOS)**: Oqtane ist stark an Windows gekoppelt; gelöst durch Einsatz von JetBrains Rider. - **Zeitdruck & Infrastruktur-Ausfälle**: - Probleme mit Hosting (Hetzner). - **Lösung**: Entwicklung einer schlanken "Übergangslösung" (Node.js/HTML) im Sommer 2025 zur zeitgerechten Event-Abwicklung. - **Entity Framework Concurrency Issues**: Gelöst durch Transaktions-Gliederung bei Löschvorgängen (Reports vs. Main Entity). --- # Learnings - **Technisch**: Tieferes Verständnis von Version Control (Git), CSS/Flexbox (Responsiveness) und C#/Blazor-Tiefen. - **Methodisch**: Eine klare Aufgabenaufteilung sowie regelmäßige Team-Meetings sind unerlässlich für den Projekterfolg. - **Persönlich**: Bedeutsamkeit von Eigeninitiative und Verantwortungsübernahme, gerade in schwierigen Projektphasen. --- # Fazit & Ausblick - **Erreichtes**: - Theme ist final in Oqtane integriert und mobil optimiert. - Hall of Fame und Anmeldetool sind voll funktionstüchtig. - **Ausblick**: - Integration einer umfassenden Teilnehmerlisten-Auswertung (Datenbank). - Limit-Funktion für maximale Anmeldungen bei Veranstaltungen. - Automatische E-Mail-Erinnerungen für Events.