f8cce2663013a7d0bec8e749b151f851b2010761
📄 Lebenslauf-App
Professioneller Lebenslauf-Builder mit Astro + SQLite. Keine externen Tools notwendig.
Features
- 4 Templates – Navy Klassik, Modern Timeline, Minimal Elegant, Bold Creative
- OTP-Login – E-Mail-basierter Einmal-Code, kein Passwort
- Editor – Live-Vorschau, Auto-Save alle 2 Sekunden
- Skills – Eingabe mit Niveauanzeige (1–5 Punkte)
- Farben & Schriften – Vollständig anpassbar pro Lebenslauf
- PDF-Export – Client-seitig via html2pdf.js (kein Browser-Backend nötig)
- Online-Teilen – Öffentlicher Link via Hash-URL
/cv/[hash] - Formate: PDF, HTML, JSON, CSV, Excel (XLSX)
- DE/EN – Vollständige Übersetzung beider Sprachen
Schnellstart
# 1. Abhängigkeiten installieren
npm install
# 2. Umgebungsvariablen konfigurieren
cp .env.example .env
# → .env bearbeiten (SMTP-Daten eintragen)
# 3. Starten
npm run dev
App läuft auf: http://localhost:4321
Umgebungsvariablen (.env)
| Variable | Beschreibung | Standard |
|---|---|---|
DB_PATH |
Pfad zur SQLite-Datei | ./data/lebenslauf.db |
SESSION_SECRET |
Zufälliger langer String | – |
SMTP_HOST |
SMTP-Server | localhost |
SMTP_PORT |
SMTP-Port | 587 |
SMTP_SECURE |
SSL/TLS | false |
SMTP_USER |
SMTP-Benutzername | – |
SMTP_PASS |
SMTP-Passwort | – |
SMTP_FROM |
Absender-Adresse | noreply@localhost |
APP_URL |
Öffentliche App-URL | http://localhost:4321 |
OTP_EXPIRES_MINUTES |
OTP-Gültigkeit | 10 |
Dev-Modus: Wenn kein SMTP konfiguriert ist, wird der OTP-Code in der Konsole ausgegeben.
Produktion
npm run build
npm start
Die App läuft als eigenständiger Node.js-Server.
Exports
| Format | Methode | Inhalt |
|---|---|---|
| html2pdf.js (CDN) | Druckfertiger DIN A4 Lebenslauf | |
| HTML | Client-seitig | Standalone-Datei mit eingebettetem CSS |
| JSON | Client-seitig | Vollständige strukturierte Daten |
| CSV | Client-seitig | Tabellarische Daten (UTF-8 BOM) |
| Excel | SheetJS (CDN) | 5 Blätter: Persönlich, Erfahrung, Ausbildung, Kenntnisse, Sprachen |
URLs
| Route | Beschreibung |
|---|---|
/ |
Login-Seite |
/verify |
OTP-Eingabe |
/dashboard |
Übersicht der Lebensläufe |
/editor/[id] |
Lebenslauf bearbeiten |
/cv/[hash] |
Öffentliche Ansicht (wenn aktiviert) |
Technologie
- Astro 4 mit SSR (Node-Adapter)
- SQLite via
better-sqlite3 - E-Mail via
nodemailer - PDF via
html2pdf.js(CDN, kein Install) - Excel via
SheetJS(CDN, kein Install) - CSS – reines CSS, kein Framework
Eigene SMTP-Provider
| Provider | Host | Port | Secure |
|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | false |
| Netcup (1blu) | smtp.example.com | 587 | false |
| Outlook | smtp.office365.com | 587 | false |
| Mailgun | smtp.mailgun.org | 587 | false |
Für Gmail: App-Passwort verwenden (nicht das Konto-Passwort).
Description
Languages
Astro
56%
TypeScript
30.1%
CSS
11.8%
JavaScript
1.7%
Dockerfile
0.4%