Regelmäßige Link-Überprüfung

User Story

Als Betreiber oder Verantwortlicher einer öffentlichen Webpräsenz möchte ich regelmäßig über fehlerhafte Links auf meiner Website informiert werden,
damit ich die Inhalte aktuell halten, die Nutzerfreundlichkeit sichern und rechtliche Anforderungen an Barrierefreiheit und Qualitätssicherung erfüllen kann.

Description of the requirement and added value

Mehrere Behörden und öffentliche Einrichtungen betreiben Webpräsenzen, deren Inhalte auf häufig wechselnde interne und externe Quellen verweisen.
Um die Qualität und Zugänglichkeit solcher Websites zu gewährleisten, soll ein Broken‑Link‑Checker als wiederverwendbarer öffentlicher Dienst auf gitlab.opencode.de bereitgestellt werden.

Der Dienst soll:

  • eine Website‑URL und eine E‑Mail‑Adresse registrieren können,
  • regelmäßig (z. B. wöchentlich) einen vollständigen Linkscan durchführen,
  • die Ergebnisse per E‑Mail‑Bericht versenden
  • und ein Dashboard anbieten, das alle registrierten Websites mit Statuslisten und Fehlerstatistiken visualisiert.

Mehrwert:

  • trägt aktiv zur digitalen Barrierefreiheit und Qualitätssicherung bei,
  • verringert manuellen Prüfaufwand und Folgefehler,
  • erhöht die Transparenz und Einheitlichkeit von Webauftritten im öffentlichen Sektor.

Relevant links and notes

Acceptance criteria

  1. Eine webbasierte Anwendung (oder API‑Service) kann über GitLab CI/CD bereitgestellt werden.
  2. Neue Websites können per Formular oder API‑POST mit URL und E‑Mail registriert werden.
  3. Ein wöchentlicher automatischer Crawl entdeckt und dokumentiert fehlerhafte Links (HTTP‑Status ≥ 400).
  4. Benutzer erhalten einen E‑Mail‑Bericht mit Fehlerliste innenhalb 24 h nach dem Scan.
  5. Der Service ist unter einer OSS‑Lizenz verfügbar und in OpenCode‑Repos auffindbar.
  6. Einrichtung und Betrieb sind DSGVO‑konform; es werden keine sensiblen Inhalte dauerhaft gespeichert.

Implementation plan

  1. Analyse und Architektur
    • Evaluierung vorhandener CLI‑Tools und Bibliotheken (z. B. requests, aiohttp, BeautifulSoup, broken-links).
    • Entscheidung über Systemarchitektur (Microservice, Cron‑Job oder Container‑App).
    • Konzept für Mailversand (z. B. über SMTP oder SendGrid).
  2. Prototyp‑Entwicklung
    • Implementierung des Python‑Scanners mit URL‑Queue, Status‑Tracking und JSON/HTML‑Reportausgabe.
    • Integration einer Scheduler‑Komponente (Celery + Redis oder systemd/Cron).
    • Dockerisierung der Anwendung.
  3. Dashboard & Benachrichtigung
    • Entwicklung einer kleinen Weboberfläche mit Frameworks wie Flask + Bootstrap / React.
    • Implementierung von E‑Mail‑Reports mit Templates.
  4. Deployment & GitLab Integration
    • Bereitstellung eines öffentlichen Repos auf gitlab.opencode.de/groups/fitko/broken-link-checker.
    • Einrichtung von CI/CD für automatisierten Test, Build und Rollout.
    • Dokumentation und Beispielkonfiguration für Behördenserver.
  5. Pilotphase
    • Test durch ausgewählte Partner (z. B. kommunale Webportale).
    • Feedback‑Erhebung und Anpassung von Scan‑Frequenzen, Performance und Dashboard‑Layout.
Edited by Jürgen Voskuhl