# Verkaufsklar – Ausbildungsportal Verkäufer/in

Verkaufsklar ist eine Lern-App für die Zwischenprüfung Verkäufer/in (AO 2017) mit persönlichem Lernkonto und Ausbilderportal.

## Rollen

- **Azubi:** Lernkarten, Lernplan, Prüfungssimulator, Rechentrainer und Glossar. Der Lernstand wird im Browser zwischengespeichert und serverseitig synchronisiert.
- **Ausbilder:** Übersicht über die zugeordneten Azubis, Lernplan- und Quiz-Zusammenfassungen sowie Deaktivierung von Azubi-Konten. Über „Meine Lernapp“ steht zusätzlich eine eigene Lernapp mit eigenem Lernstand zum Selbstlernen bereit. Neue Konten werden vom Betreiber per Provisionierungs-Skript angelegt.

## Lokaler Start

```bash
npm install
node scripts/create-user.js --role instructor --username demo-ausbilder --name "Demo Ausbilder" --password "Ausbilder-Start1"
npm start
```

Die Anwendung läuft danach unter `http://127.0.0.1:3055`. Das Ausbilderportal liegt unter `/admin/`.

## Tests

```bash
npm run check
npm test
```

Die Tests prüfen API-Auth, Rollen-/Ausbilder-Zuordnung, getrennte Lernstände für Ausbilder und Azubis sowie den Browserfluss von Login, Lernstandsänderung, Reload, eigener Ausbilder-Lernapp und Ausbilderansicht. Konten werden außerhalb des Portals über `scripts/create-user.js` provisioniert.

## Betrieb

Der Server verwendet SQLite unter `data/verkaufsklar.db`. Zugangsdaten werden mit `scrypt` gehasht; Session-Cookies sind HttpOnly und SameSite=Lax. Für den produktiven Betrieb wird ein Reverse Proxy mit TLS vorausgesetzt. `data/` und `.env` dürfen nicht versioniert werden.

Die Lerninhalte basieren auf der vorhandenen Verkaufsklar-PWA. Die eigenständig erstellten Fragen sind keine Original-IHK-Aufgaben. Das Projekt steht gemäß der mitgelieferten AGPL-3.0 unter den dort genannten Bedingungen.
