Inhaltsverzeichnis
Foto-Gallery
Moderne Bildergalerie mit S3-kompatibler Objektspeicherung, Passkey-Authentifizierung und Docker-basiertem Setup. Erweitert um FotoBattle — eine kompetitive Foto-Battle-Plattform mit Elo-Rating und Event Sourcing.
Gedacht als Demo-Projekt und Referenzimplementierung.
| Eigenschaft | Wert |
|---|---|
| Repository | Wachhund/S3-image-gallery |
| Zeitraum | 03/2026 – aktiv |
| Commits | 29 (Gallery) + 5 (FotoBattle) |
| Stack | PHP 8.4, Slim 4, MariaDB 11, RustFS, Docker |
| Status | Demo / Referenzimplementierung |
Hintergrund
Ursprünglich für Event-Fotos von Freunde auf 2 Pfoten e. V. konzipiert. Inzwischen als eigenständiges Demo-Projekt weiterentwickelt — der FotoBattle-Bereich könnte in Zukunft für den Verein genutzt werden.
Tech-Stack
| Schicht | Technologie |
|---|---|
| Sprache | PHP 8.4 |
| Framework | Slim 4 (Routing, Middleware, PSR-7) |
| Datenbank | MariaDB 11 (InnoDB, utf8mb4) |
| Objektspeicher | RustFS (S3-kompatibel, Apache 2.0) |
| Auth (Gallery) | WebAuthn/FIDO2 Passkeys (lbuchs/webauthn) |
| Auth (FotoBattle) | Session-basiert (E-Mail/Passwort, bcrypt) |
| Templates | slim/php-view (Server-Side Rendering) |
| Webserver | Nginx Alpine (Reverse Proxy) |
| Tests | PHPUnit 11, PHPStan Level 6, PHP-CS-Fixer 3 |
| Deployment | Docker Compose (5–7 Services) |
Phasen
Phase 1 — Galerie-Infrastruktur (abgeschlossen)
12 Features (S3G-1 bis S3G-12), alle deployed:
- Docker-Infrastruktur und UI Design System
- S3-Bildverwaltung (Scan, Katalog, Thumbnails)
- Web-Galerie mit Verzeichnisnavigation
- Passkey-Registrierung via Einmal-Passwort
- Event-Galerie-Verwaltung (Jahr/Datum-Hierarchie)
- Bild-Upload und Löschfunktionen
- Battle-Einreichung aus der Galerie
- Test-Suite und QA-Audit (Ergebnis: 7.3/10)
Phase 2 — FotoBattle (vollständig deployed)
14 Features (FOTO-1 bis FOTO-14), alle deployed:
- User Registration, Login, Rollen (Voter → Photographer → Admin)
- Photo Upload, 1v1 Battle & Voting
- Elo Rating Engine mit Event Sourcing
- Ranking & Leaderboard
- Kommentare, Likes, Follow-System
- User-Profile, Kategorien, Tags
- Battle-Historie, Statistiken, Benachrichtigungen