c2a629e2c0
- Views umstrukturiert: einstellungen.ejs -> bewerbung.ejs, neues partials/head.ejs, header/footer/index angepasst - CSS umbenannt: style.css -> styles.css - server.js und public/js/main.js ueberarbeitet - Dockerfile auf schlankes Multi-Stage-Setup umgestellt; docker-compose.yml und .dockerignore entfernt - npm-Scripts docker:build/push/deploy ergaenzt - SQLite-DB und .idea aus Git entfernt und via .gitignore ignoriert Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
195 lines
4.5 KiB
Markdown
195 lines
4.5 KiB
Markdown
# Bewerbungs-Tracker
|
|
|
|
Ein professioneller Job Application Tracker für Jobcenter Grundsicherung Monatsberichte.
|
|
|
|
## Features
|
|
|
|
- **Benutzerprofile**: Speichern Sie Name, Adresse und Jobcenter Kundennummer
|
|
- **Dunkler Modus**: Vollständige Dark Mode Unterstützung mit lokaler Speicherung
|
|
- **CRUD-Operationen**: Komplette Verwaltung von Bewerbungen (Hinzufügen, Bearbeiten, Löschen)
|
|
- **Filterfunktion**: Filterung nach Monat und Jahr
|
|
- **Statistiken**: Übersicht über Gesamtbewerbungen, nach Art und Status
|
|
- **PDF-Export**: Professionelle PDF-Generierung für Jobcenter-Berichte
|
|
- **Responsive Design**: Optimiert für Desktop und Mobile Geräte
|
|
|
|
## Technologien
|
|
|
|
- **Backend**: Node.js + Express.js
|
|
- **Datenbank**: SQLite
|
|
- **Frontend**: EJS Template Engine, Tailwind CSS (CDN)
|
|
- **PDF-Generierung**: jsPDF + jspdf-autotable (CDN)
|
|
|
|
## Installation
|
|
|
|
### Voraussetzungen
|
|
|
|
- Node.js (Version 14 oder höher)
|
|
- npm oder yarn
|
|
|
|
### Schritte
|
|
|
|
1. **Projekt klonen**
|
|
```bash
|
|
cd bewerbungs-tracker
|
|
```
|
|
|
|
2. **Abhängigkeiten installieren**
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
3. **Datenbank-Verzeichnis erstellen**
|
|
```bash
|
|
mkdir -p data
|
|
```
|
|
|
|
Die SQLite-Datenbank wird automatisch beim ersten Start erstellt.
|
|
|
|
4. **Server starten**
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
Für Entwicklung mit automatischem Neuladen:
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
5. **Anwendung öffnen**
|
|
|
|
Öffnen Sie Ihren Browser und navigieren Sie zu:
|
|
```
|
|
http://localhost:3000
|
|
```
|
|
|
|
## Projektstruktur
|
|
|
|
```
|
|
bewerbungs-tracker/
|
|
├── server.js # Express Server mit API-Routen
|
|
├── package.json # Projektabhängigkeiten und Skripte
|
|
├── views/
|
|
│ ├── index.ejs # Hauptseite
|
|
│ └── partials/
|
|
│ ├── header.ejs # Kopfzeile mit Dark Mode Toggle
|
|
│ └── footer.ejs # Fußzeile
|
|
├── public/
|
|
│ ├── css/
|
|
│ │ └── styles.css # Benutzerdefinierte Styles
|
|
│ └── js/
|
|
│ └── main.js # Client-seitige Logik
|
|
├── data/
|
|
│ └── bewerbungen.db # SQLite Datenbank (wird automatisch erstellt)
|
|
└── README.md # Dokumentation
|
|
```
|
|
|
|
## Datenbank-Schema
|
|
|
|
### Bewerbungen
|
|
|
|
| Feld | Typ | Beschreibung |
|
|
|------|-----|--------------|
|
|
| id | INTEGER PRIMARY KEY | Eindeutige ID |
|
|
| datum | DATE | Bewerbungsdatum |
|
|
| firma | TEXT | Firmenname |
|
|
| stelle | TEXT | Stellenbezeichnung |
|
|
| art | TEXT | Art der Bewerbung |
|
|
| status | TEXT | Status der Bewerbung |
|
|
| notizen | TEXT | Zusätzliche Notizen |
|
|
| created_at | DATETIME | Erstellungsdatum |
|
|
| updated_at | DATETIME | Letztes Update |
|
|
|
|
### Einstellungen
|
|
|
|
| Feld | Typ | Beschreibung |
|
|
|------|-----|--------------|
|
|
| id | INTEGER | Immer 1 (Single Row) |
|
|
| name | TEXT | Benutzername |
|
|
| adresse | TEXT | Benutzeradresse |
|
|
| kundennummer | TEXT | Jobcenter Kundennummer |
|
|
|
|
## Verwendbare Optionen
|
|
|
|
### Art der Bewerbung
|
|
- E-Mail
|
|
- Online-Portal
|
|
- Indeed
|
|
- StepStone
|
|
- Firmenwebsite
|
|
- Post
|
|
- Initiativbewerbung
|
|
- Arbeitsagentur
|
|
- Sonstiges
|
|
|
|
### Status
|
|
- Gesendet
|
|
- Eingangsbestätigung
|
|
- Vorstellungsgespräch
|
|
- Absage
|
|
- Einstellung
|
|
- Keine Rückmeldung
|
|
|
|
## API-Endpunkte
|
|
|
|
### GET /
|
|
Hauptseite mit allen Bewerbungen
|
|
|
|
### GET /api/settings
|
|
Benutzereinstellungen abrufen
|
|
|
|
### POST /api/settings
|
|
Benutzereinstellungen speichern
|
|
|
|
### GET /api/bewerbungen
|
|
Alle Bewerbungen abrufen (mit Filter: ?month=MM&year=YYYY)
|
|
|
|
### POST /api/bewerbungen
|
|
Neue Bewerbung erstellen
|
|
|
|
### PUT /api/bewerbungen/:id
|
|
Bewerbung aktualisieren
|
|
|
|
### DELETE /api/bewerbungen/:id
|
|
Bewerbung löschen
|
|
|
|
### GET /api/bewerbungen/filter
|
|
Bewerbungen mit Filter abrufen
|
|
|
|
## PDF-Export
|
|
|
|
Der PDF-Export generiert ein professionelles Dokument mit:
|
|
- Benutzerdaten (Name, Adresse, Kundennummer)
|
|
- Überschrift mit Monat und Jahr
|
|
- Zusammenfassung der Bewerbungsaktivitäten
|
|
- Tabelle mit allen Bewerbungen
|
|
- Bestätigungstext und Datum
|
|
|
|
## Browser-Unterstützung
|
|
|
|
- Chrome (empfohlen)
|
|
- Firefox
|
|
- Safari
|
|
- Edge
|
|
|
|
## Dark Mode
|
|
|
|
Der Dark Mode kann manuell über den Toggle-Button in der Kopfzeile aktiviert werden. Die Einstellung wird in localStorage gespeichert und bleibt beim nächsten Besuch erhalten.
|
|
|
|
## Sicherheit
|
|
|
|
- Eingabefelder werden gegen XSS geschützt
|
|
- SQL-Injection wird durch parametrisierte Abfragen verhindert
|
|
- Formulare validieren Pflichtfelder
|
|
|
|
## Lizenz
|
|
|
|
MIT
|
|
|
|
## Autor
|
|
|
|
Bewerbungs-Tracker für Jobcenter Grundsicherung
|
|
|
|
---
|
|
|
|
**Hinweis**: Diese Anwendung ist speziell für die Anforderungen des deutschen Jobcenters (Grundsicherung) entwickelt worden. Sie hilft bei der Dokumentation von Bewerbungsaktivitäten für die monatlichen Berichte.
|