104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
# 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.
|