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:
### 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.