Initial commit: Frühstückskonten Verwaltung Web-App

This commit is contained in:
Alf
2026-07-14 08:26:25 +02:00
commit 9ad54ae241
2301 changed files with 300595 additions and 0 deletions

103
README.md Normal file
View File

@ -0,0 +1,103 @@
# Frühstückskonten Verwaltung
Eine Web-App zur Verwaltung von Frühstückskonten für den Offenen Treff. Besucher können über eine PIN ihren Kontostand abfragen, Mitarbeiter können Einzahlungen und Abbuchungen vornehmen.
## Funktionen
### Für Besucher
- Kontostand mit 4-stelliger PIN abfragen
- Übersichtlicher Kontostand in großem Format
### Für Mitarbeiter
- Konten anlegen und verwalten
- Einzahlungen und Abbuchungen durchführen
- Transaktionshistorie einsehen
- Feste Artikelpreise verwenden oder manuelle Beträge eingeben
### Für Administratoren
- Alle Mitarbeiterfunktionen
- Artikelverwaltung (anlegen, bearbeiten, löschen)
- Benutzerverwaltung (Mitarbeiter anlegen, löschen)
## Installation
### Voraussetzungen
- Node.js (Version 14 oder höher)
- npm (wird mit Node.js installiert)
### Schritte
1. **Repository klonen und in das Verzeichnis wechseln:**
```bash
cd fruehstuecksapp
```
2. **Abhängigkeiten installieren:**
```bash
npm install
```
3. **Datenbank initialisieren:**
Die Datenbank wird automatisch beim ersten Start erstellt.
4. **Anwendung starten:**
```bash
npm start
```
Für die Entwicklung mit automatischem Neustart:
```bash
npm run dev
```
5. **Im Browser öffnen:**
[http://localhost:3000](http://localhost:3000)
## Standard-Anmeldung
- **Benutzername:** admin
- **Passwort:** admin123
## Datenbank
Die Anwendung verwendet SQLite und speichert die Daten in der Datei `fruehstueck.db` im Projektverzeichnis.
### Datenbank-Schema
- **users:** Mitarbeiter und Administratoren
- **accounts:** Besucher-Konten mit PIN
- **items:** Artikel mit festen Preisen
- **transactions:** Alle Transaktionen (Einzahlungen und Abbuchungen)
## Sicherheit
- Alle Passwörter und PINs werden mit bcrypt gehasht
- Sessions werden serverseitig verwaltet
- Standard-Admin-Passwort sollte nach der ersten Anmeldung geändert werden
## Konfiguration
### Umgebungsvariablen
- **PORT:** Port für den Server (Standard: 3000)
- **SESSION_SECRET:** Geheimnis für Session-Cookies (Standard: 'fruehstueck-secret-key')
### Beispiel für .env-Datei:
```
PORT=3000
SESSION_SECRET=your-secret-key-here
```
## API-Endpunkte
### GET /pin-check
- Seite zur PIN-Abfrage für Besucher
### POST /api/pin-check
- JSON-API zur PIN-Abfrage (für mögliche mobile Integration)
- Request: `{ "pin": "1234" }`
- Response: `{ "success": true, "name": "Max Mustermann", "balance": 15.50 }`
## Lizenz
Diese Software ist für den internen Gebrauch im Offenen Treff bestimmt.