Dieses Projekt, `ff-webpage-cms`, ist ein Content-Management-System (CMS) basierend auf Strapi. Es dient zur Verwaltung und Erstellung von Inhalten für die Webseite einer Feuerwehr. Die zugehörige Webseite ist im Repository [ff-webpage](https://forgejo.jk-effects.cloud/Ehrenamt/ff-webpage) zu finden. Das System bietet eine benutzerfreundliche Oberfläche und flexible Anpassungsmöglichkeiten, um den spezifischen Anforderungen der Webseite gerecht zu werden.
Die Administrationsöberfläche ermöglicht die Verwaltung von Seiten und deren Inhalten wie Artikel, Termine, Einsätz oder Fahrzeuge. Seiten können auch über vordefinierte Schemata erstellt werden.
Eine Demo dieser Seite finden Sie unter [https://cms.ff-demo.jk-effects.cloud](https://cms.ff-demo.jk-effects.cloud).\
Die Zugangsdaten (Lesebeschränkt) sind: \
EMAIL: ff-demo@jk-effects.cloud\
PASSWORT: FFDemo1234\
## Installation
### Docker Compose Setup
Um den Container hochzufahren, erstellen Sie eine `docker-compose.yml` Datei mit folgendem Inhalt:
2.**Einstellungen anpassen**: In den Einstellungen müssen unter dem Punkt `Users & Permissions Plugin` die Rollen und Berechtigungen angepasst werden. Unter `Roles > Public` muss die Berechtigung `find`, `findOne` und falls vorhanden auch `distinctYears` und `findByYear` für alle Modelle aktiviert werden.
3.**Medienverwaltung**: Es empfiehlt sich unter `Global Settings > Media Library` alle Optionen auf true zu stellen. Dadurch wird zum Beispiel auch die automatische Rotation von Bildern aktiviert.
4.**Rollen und Berechtigungen**: Unter `Administration Panel > Roles` können die Rollen und Berechtigungen für die Benutzer angepasst werden. Es empfiehlt sich, die Standardrollen zu übernehmen und nur die Berechtigungen anzupassen. Diese können aber auch beliebig erweitert werden. Dieser Punkt betrifft nur die Erstellung von Inhalten in der Adminstrationsoberfläche.
5.**Nutzer einladen**: Unter `Administration Panel > Users` können weitere Nutzer eingeladen werden. Diese erhalten dann eine E-Mail mit einem Link, um sich ein Passwort zu setzen.
6.**Erstellung von Inhalten**: Nachdem die Einstellungen vorgenommen wurden, können Inhalte erstellt werden. Dazu können die Inhalte über die Oberfläche zu den bestehenden Modellen erstellt werden.
7.**Einrichtung Sammlungsreferenz**: Die Sammlungsreferenz ist ein eigenes Modell, das die Verknüpfung von Artikeln, Einsätzen, Fahrzeugen und Terminen ermöglicht. Die Werte für Collection können sind die Referenzen auf die genannten Listen. Diese Werte müssen Plural sein und können nur die Werte `articles`, `operations`, `vehicles` und `events` annehmen.\
Es empfiehlt sich diese Werte direkt zu setzen, da diese dann als Referenz in anderen Modellen genutzt werden können.
## Verwendung der Modelle
Beispiele zu den beschriebenen Inhalten finden sie in der Demo.
### Allgemeine Bezeichnungen
- **Slug**: Einzigartige Bezeichnung als Identifikation in der URL.
- **Identifier**: Wert, zu Identifikation in Referenz-Feldern.
### Modelle
1.**Global**: Hier wird festgelegt, wie die Navigation und der Footer aufgebaut sind. Die Navigation nutzt Informationen zu verwiesenen Seiten und Pfaden zu diesen Seiten. Die Werte der Pfade sollten mit den Werten aus der Sammlungsreferenz übereinstimmen. Dadurch wird gewährleistet, dass Detailansichten der Artikel, Einsätze, Fahrzeuge und Termine korrekt angezeigt werden können.
2.**Startseite**: Hier können die Inhalte der Startseite angepasst werden.\
- **Backdrop**: Bildschirmfüllendes Bild, das im Hintergrund angezeigt wird.\
- Das in Global angegebene Logo wird unten im Eck über den Backdrop gelegt.
3.**Artikel**: Verwaltung und Erstellung von Artikeln.
4.**Einsätze**: Verwaltung und Erstellung von Einsätzen.
5.**Fahrzeuge**: Verwaltung und Erstellung von Fahrzeugen.
6.**Sammlungs Referenz**: Verwaltung und Erstellung von Referenzen auf Artikel, Einsätze, Termine und Fahrzeuge.\