[[..:start|zurück]] # Bewerbungsnachweis – Eigenverwaltung (PHP / MariaDB) ## Zweck der Anwendung Diese Anwendung dient der **strukturierten Erfassung, Verwaltung und Dokumentation von Bewerbungen**. Sie wurde speziell mit dem Ziel entwickelt, einen **nachvollziehbaren und belastbaren Nachweis** gegenüber Dritten (z. B. Arbeitsagentur, Jobcenter) zu ermöglichen. Der Fokus liegt auf: * Vollständigkeit der Bewerbungsdaten * Revisionssicherem Statusverlauf * Zuordnung von Belegen (PDF, Screenshot, E-Mail) * Druck- und PDF-tauglicher Nachweisübersicht Die Anwendung ist **lokal betrieben**, unabhängig von Drittanbietern und vollständig kontrollierbar. --- ## Technische Übersicht ^ Komponente ^ Beschreibung ^ | Betriebssystem | Debian 13 (VM auf Hyper-V) | | Webserver | Apache 2.4 | | Programmiersprache | PHP 8.x (mysqli) | | Datenbank | MariaDB | | Frontcontroller | `public/index.php` | | UI | Eigenes UI-Layout (`ui.php`) | | Dokumentation | DokuWiki | | Reverse Proxy | Traefik (extern, optional) | --- ## Verzeichnisstruktur ```text /var/www/html/bewerbungen/ ├── public/ │ ├── index.php # Router / Frontcontroller │ └── assets/ │ └── logo.svg # Logo für Drucknachweis │ ├── app/ │ ├── config.php # DB-Verbindung (.env) │ ├── ui.php # Zentrales UI + CSS │ └── pages/ │ ├── dashboard.php │ ├── firma_neu.php │ ├── stelle_neu.php │ ├── bewerbung_neu.php │ ├── status.php │ ├── dokument_upload.php │ ├── druck_nachweis.php │ └── stelle_ajax.php │ ├── storage/ │ ├── docs/ # Hochgeladene Belege │ └── php_errors.log # PHP-Fehlerlog (lokal) │ └── .env # Zugangsdaten (nicht im Repo) ``` --- ## Datenbankstruktur (logisch) ### Zentrale Tabellen ^ Tabelle ^ Zweck ^ | `firma` | Stammdaten der Unternehmen | | `stelle` | Konkrete Ausschreibungen | | `bewerbung` | Einzelne Bewerbungen | | `status_verlauf` | Historie aller Statusänderungen | | `dokument` | Zugeordnete Belege | ### Wichtige View ^ View ^ Zweck ^ | `v_nachweis_bewerbungen_mit_belegen` | Konsolidierte Nachweissicht für Dashboard & Druck | Diese View dient als **einzige Datenquelle** für: * Dashboard * Drucknachweis * CSV-Exporte --- ## Routing / Frontcontroller Alle Seiten werden über einen zentralen Router aufgerufen: ```text public/index.php?a=aktion ``` Beispiele: ^ Aktion ^ Seite ^ | `dashboard` | Übersicht | | `firma_neu` | Firma anlegen | | `stelle_neu` | Stelle anlegen | | `bewerbung_neu` | Bewerbung anlegen | | `status` | Statusverlauf | | `dokument_upload` | Belege | | `druck_nachweis` | Druck / PDF | Nicht bekannte Aktionen werden bewusst abgefangen („unbekannte Aktion“). --- ## UI-Konzept ### Zentrales UI (`ui.php`) * Einheitliches Layout * Zentrale CSS-Definition * Wiederverwendbare Funktionen: * `ui_header()` * `ui_footer()` * `status_badge()` * `h()` (HTML-Escaping) ### Ziel * Konsistentes Erscheinungsbild * Keine doppelten Styles * Druckfreundlich (`@media print`) --- ## Workflow ### 1. Firma anlegen * Name (Pflicht) * Ort, Webseite, Notizen (optional) ### 2. Stelle anlegen * Zuordnung zu Firma * Titel (Pflicht) * Quelle, Referenznummer, Arbeitsmodell, Notizen ### 3. Bewerbung anlegen * Firma → Stelle * Bewerbungsdatum * Kanal (Portal, E-Mail, etc.) * Initialer Status * Optional: Nachfassdatum ### 4. Status pflegen * Jeder Statuswechsel wird **historisiert** * Aktueller Status wird zusätzlich in `bewerbung` gehalten * Nachfassdatum steuerbar ### 5. Dokumente zuordnen * Upload von PDF/PNG/JPG * Oder externe URL * Automatische, sprechende Dateinamen --- ## Dokumentablage Belege werden gespeichert unter: ```text /var/www/html/bewerbungen/storage/docs/ ``` Namensschema: ```text YYYY-MM-DD_firma_stelle_typ.pdf ``` Beispiele: ```text 2026-01-15_firma_xyz_it-support_anschreiben.pdf 2026-01-15_firma_xyz_it-support_portalbestaetigung.png ``` Dieses Schema erleichtert: * manuelle Prüfung * externe Archivierung * Nachvollziehbarkeit ohne Datenbank --- ## Drucknachweis / PDF ### Zweck Der Drucknachweis dient als **offizieller Bewerbungsnachweis**. Er enthält: * Logo * Name * Zeitraum * Erstellungsdatum * Hinweis auf digitale Belege * Vollständige tabellarische Übersicht * Versionsstempel ### Besonderheiten * SVG-Logo **inline eingebettet** (keine Pfad- oder MIME-Probleme) * Optimiert für Schwarz-Weiß-Druck * Keine interaktiven Elemente im Print --- ## Versionsstempel Am Ende jedes Drucknachweises: ```text Bewerbungsnachweis – Eigenverwaltung – Version X.Y – Stand YYYY-MM-DD ``` Zweck: * Revisionssicherheit * klare zeitliche Einordnung * Nachvollziehbarkeit bei späterer Prüfung --- ## Sicherheit & Datenschutz * Lokale Datenhaltung * Keine Cloud-Abhängigkeit * Keine externen Tracker * Zugriff nur über internes Netzwerk / Reverse Proxy * Belege verbleiben vollständig im eigenen Besitz --- ## Backup-Empfehlung Regelmäßige Sicherung von: * MariaDB-Datenbank * Verzeichnis `storage/docs` Empfohlen: * tägliches Datenbank-Dump * inkrementelles Dateibackup --- ## Fazit Die Anwendung erfüllt folgende Anforderungen: * ✔ strukturiert * ✔ nachvollziehbar * ✔ revisionssicher * ✔ drucktauglich * ✔ behördlich belastbar Sie ersetzt fehleranfällige Excel-Listen oder manuelle Dokumentationen und bietet eine **dauerhaft wartbare Lösung** zur Eigenverwaltung von Bewerbungen.