🏆 EXIT-Game Highscore & Sammlungs-Manager
Ein modernes, PHP-basiertes Dashboard zur Verwaltung von EXIT-Spielen, Adventure Games und anderen Rätselspielen. Tracke Highscores, verwalte den Besitzstatus deiner Teams und behalte den Überblick über deine gesamte Sammlung.
🤖 Über dieses Projekt
Dieses gesamte Projekt wurde zu 100% von Gemini (KI-Modell von Google) im Rahmen eines interaktiven Pair-Programming-Prozesses generiert.
Entwicklungs-Philosophie:
- Code-Struktur: Trennung von Logik und Konfiguration (Git-ready).
- Design: Modernes Dark-Mode UI mit Fokus auf Usability (Swiper.js Integration).
- Sicherheit: Passwortgeschützter Admin-Bereich und Prepared Statements (PDO).
🚀 Features
- Interaktives Dashboard: Swiper-Carousel mit den neuesten Spielen und Highscores.
- Bestandsverwaltung: Matrix-Ansicht (
besitz.php), um zu tracken, welches Team welches Spiel besitzt, nicht besitzt oder bereits verkauft hat.
- Admin-Panel: Passwortgeschützter Bereich zum Anlegen von Spielen, EAN-basiertem Bild-Download und Verwaltung von Spielertypen.
- Gesamtliste: Sortierbare und filterbare Übersicht aller Spiele inklusive Bestwerten und Besitzstatus.
- Automatisierung: Automatischer Download von Cover-Bildern über bereitgestellte URLs.
🛠 Installation
- Datenbank vorbereiten:
Erstelle eine MySQL-Datenbank und führe den folgenden SQL-Befehl aus, um die Tabellenstruktur anzulegen:
```sql
CREATE TABLE game_typen (id INT AUTO_INCREMENT PRIMARY KEY, bezeichnung VARCHAR(100));
CREATE TABLE spiele (id INT AUTO_INCREMENT PRIMARY KEY, titel VARCHAR(255), typ_id INT, ean VARCHAR(50), level VARCHAR(50), bild_url VARCHAR(255), FOREIGN KEY (typ_id) REFERENCES game_typen(id));
CREATE TABLE spieler (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));
CREATE TABLE scores (id INT AUTO_INCREMENT PRIMARY KEY, spieler_id INT, spiel_id INT, zeit INT, hilfe INT, sterne INT, FOREIGN KEY (spieler_id) REFERENCES spieler(id), FOREIGN KEY (spiel_id) REFERENCES spiele(id));
CREATE TABLE besitzstatus (spieler_id INT, spiel_id INT, status ENUM('besitzt', 'nicht besitzt', 'verkauft') DEFAULT 'nicht besitzt', PRIMARY KEY (spieler_id, spiel_id), FOREIGN KEY (spieler_id) REFERENCES spieler(id) ON DELETE CASCADE, FOREIGN KEY (spiel_id) REFERENCES spiele(id) ON DELETE CASCADE);