# Fotobox-Webseite Diese Anwendung stellt eine komplette Vermietungsseite fuer eine Fotobox bereit. Sie enthaelt: - eine neu aufgebaute Landingpage auf Basis der Inhalte von `https://ctb-it.de/fotobox/` - eine oeffentliche Buchungsanfrage mit zwei Terminen, Live-Preisberechnung und Zahlungsart-Auswahl - einen Admin-Bereich fuer Anfragen, manuelle Kundenbestellungen, Statuspflege und Rechnungs-PDFs - eine MySQL-faehige Datenhaltung mit JSON-Fallback ## Starten Die Anwendung benoetigt nur PHP 8.3 oder neuer. ```bash php -S 127.0.0.1:8000 ``` Danach ist die Seite unter `http://127.0.0.1:8000` erreichbar. ## Admin-Zugang - Benutzername: `admin` - Passwort: Standardmaessig `fotobox-admin` Falls du das Passwort aendern willst, setze die Umgebungsvariable `FOTOBOX_ADMIN_PASSWORD`. ## Datenhaltung Standardmaessig nutzt die App JSON-Dateien: - `storage/bookings.json` - `storage/invoices.json` Sobald du `mysql.local.php` mit echten Zugangsdaten befuellst, `enabled => true` setzt und optional ein `table_prefix` definierst, schaltet die App automatisch auf MySQL um. ## MySQL vorbereiten Im Repository liegt als Vorlage: - `mysql.local.php.example` - `docs/mysql-schema.sql` Lokal liegt ausserhalb des Git-Trackings: - `mysql.local.php` Die Datei `mysql.local.php` ist bereits in `.gitignore` ausgeschlossen und kann von dir mit echten Zugangsdaten befuellt werden. Standardmaessig verwendet die App das Prefix `fb_`, also z. B. `fb_bookings` und `fb_invoices`. ## Wichtige Annahmen - Mietbeginn und Mietende werden inklusiv berechnet. - Standardpreis: `99,99 EUR` pro Kalendertag. - Zahlungsarten: `Rechnung / Ueberweisung` und `PayPal`. - Die PayPal-Auswahl ist im Prozess und in der Verwaltung abgebildet; fuer einen echten Live-Payment-Flow brauchst du spaeter zusaetzliche API-Zugangsdaten. ## Verwaltung Im Admin-Bereich kannst du: - neue Kundenbestellungen manuell anlegen - Anfragen bestaetigen oder stornieren - Zahlungsstatus pflegen - Rechnungen mit Kundendaten erzeugen - Rechnungen als PDF oeffnen ## Tests Eine kurze Checkliste liegt in [docs/manual-test.md](docs/manual-test.md).