Direkt zum Inhalt
Splash Awards Logo

Abgeordnetenwatch.de - Relaunch Drupal 8

Projektdetails

Übersicht Projekt anschauen
Kategorie: Non-Profit
Status: Winner
Titel: Abgeordnetenwatch.de - Relaunch Drupal 8
Einreichendes Unternehmen: abgeordnetenwatch.de
Für den Kunden: Abgeordnetenwatch.de

Zusammenfassung

abgeordnetenwatch.de ist der direkte Draht von Bürger:innen zu den Abgeordneten und Kandidierenden. "Bürger:innen fragen - Politiker:innen antworten" ist der Kern des Portals. 

Projektbeschreibung

abgeordnetenwatch.de selbst gibt es seit 15 Jahren, Am 01.März 2020 haben wir die neue Version, basierend auf Drupal 8, gelauncht. Bereits vorher lief das Projekt auf Drupal 7. 

Projektziele und -ergebnisse

Die Hauptziele, die wir mit dem Relaunch erreichen wollten:

- eine saubere Datenstruktur: statt auf User und Nodes wie bisher zu setzen, werden die meisten Daten nun mit Custom Entity Typen umgesetzt. 
- eine einfachere Menüführung, welche die Nutzer:innen einfacher  zu der Hauptfunktion der Seite geleitet: Politiker:innen Fragen zu stellen
- die Integration eines Moderationstools: Fragen und Antworten werden bei uns durch ein Team moderiert, wofür bisher ein sehr altes Python-Script verwendet wurde. Das Ziel war es, den benötigten Technologie-Stack zu reduzieren und eine Fehlerquelle - die doppelte Datenhaltung und die Datensynchronisierung  - zu minimieren. Dieses Moderationstool ist nun ebenfalls in Drupal 8 umgesetzt.

Weitere Informationen

Herausforderungen

- eine Datenstruktur zu konzeptionieren und umzusetzen, welche flexibel genug ist, verschiedene Wahlsysteme und Geschehnisse abzubilden, ohne zu viele Ausnahmen von der Regel einzubauen (Fraktionswechsel, Nachrückermandate) und damit die Pflege und Wartbarkeit zu erschweren
- die alten Daten aus dem Drupal 7 Projekt und dem alten Modtool in diese neue Datenstruktur zu migrieren
- für die verschiedenen Nutzergruppen trotz der Komlexität der Daten eine einfache Oberfläche zu bieten: für Fragesteller:innen, Politiker:innen, Moderator:innen und Mitarbeiter:innen in Datenpflege und Verwaltung

Ersteres wurde mithilfe der Entity API von Drupal 8 sehr gut erreicht. Viele Daten sind referenzierte Entities, welche die Kapselung von Daten und Funktionen ermöglicht. So können für jeden Datentyp separat Daten gepflegt werden und Besonderheiten und Ausnahmen übersichtlich in den Klassen der jeweiligen Entität definiert werden. Zudem konnte auf Hooks in diversen Modulen weitgehend verzichtet werden.

Die Migration wurde mithilfe des Migrate Moduls und eigenen Migrate Plugins umgesetzt. Im Vorfeld des Relaunches wurde diese Migration diverse Male getestet und weiterentwickelt, so dass die Migration am Tag des Relaunches sehr entspannt und fehlerfrei verlief.

Warum sollte dieses Projekt bei den Splash Awards gewinnen?

Mit einem sehr kleinen Team (1 leitender Entwickler bei abgeordnetenwatch.de, 1 Freelancer Backend und 1 Freelancer Frontend) haben wir ein sehr komplexes Projekt auf die Beine gestellt. Wir haben gezeigt, wie man durch die Verwendung der Drupal APIs (insbesondere die Entity API) sehr komplexe und individuelle Projekte umsetzen kann, ohne in einem Wald von Spaghetti-Code und Hooks unterzugehen.