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.