# Adam Gaiswinkler

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