# Perspektivwerk Terminbuchung – lokales Entwicklungssystem Diese Ordner enthält eine lokale Annäherung an die öffentlich erkennbare technische Basis von `sufw.de`: Contao (PHP/Symfony), Apache, MariaDB sowie die im Frontend verbreiteten Komponenten Bootstrap 5, jQuery und Slick Carousel. ## Start Voraussetzungen: Docker Desktop (Compose v2) und optional Node.js 20+ für die TypeScript-Assets. ```powershell docker compose up --build ``` Beim ersten Start eines frischen Clones erzeugt Contao die benötigten Laufzeitverzeichnisse und Asset-Symlinks. Danach einmalig ausführen: ```powershell docker compose exec app vendor/bin/contao-setup --no-interaction --env=dev docker compose exec app chown -R www-data:www-data var public docker compose exec app vendor/bin/contao-console contao:migrate --no-interaction Neuen Admin-Account anlegen: ```powershell docker compose exec app vendor/bin/contao-console contao:user:create --admin ``` Danach den versionierten Seitenzustand importieren: ```powershell .\scripts\Import-ContaoBaseline.ps1 ``` - Website/CMS: - Contao-Login: - Datenbankinspektor: (Server `db`, Benutzer `perspektivwerk`, Passwort `perspektivwerk`, Datenbank `perspektivwerk`) Für die Frontend-Logik: ```powershell npm install npm run build ``` **Seite öffnen:** Frontend: http://localhost:8080/default Backend: http://localhost:8080/contao ## HTML Nachbau der Perpektivwerkseite http://localhost:8080/perspektivwerk/ Die genaue Contao-, PHP- und Template-Version der öffentlichen Seite ist nicht verlässlich aus dem ausgelieferten HTML ableitbar. Das Setup bildet daher die wahrscheinlichste Komponentenfamilie nach; es ist kein Dump der Produktivinstallation. IONOS/Hosting, Matomo-Konfiguration, Inhalte, Templates und Erweiterungen müssen bei Bedarf separat ergänzt werden. Die Terminlogik liegt zunächst in `src/booking.ts`. Eine spätere Google-Calendar- oder Exchange-Anbindung sollte über eine Backend-API erfolgen, damit keine Secrets im Browser landen. ## Versionierter Contao-Seitenzustand Die Contao-Seiten, Artikel und Layouts liegen in MariaDB und werden deshalb zusätzlich als bereinigter SQL-Seed versioniert. Details zu Export, Import und den bewusst ausgeschlossenen Daten stehen in [database/README.md](database/README.md). Die Seed-Integritätsprüfungen ausführen: ```powershell Invoke-Pester .\tests\ContaoBaseline.Tests.ps1 ```