# Nordfracht Sendungsportal – Code-Paket (LF8)

Dieses Paket enthält das **Referenz-Backend** (dein Test-Gegenüber) und die **drei Startgerüste**
für die Teams. Damit kann jeder C#-Client vom ersten Moment an gegen eine laufende, vertragstreue
Schnittstelle entwickeln – unabhängig davon, wie weit das eigene Team-Backend ist.

## Inhalt

| Datei | Für wen | Zustand |
|---|---|---|
| `referenz_backend.php` | **Dozent** – Test-Gegenüber | fertig, lauffähig |
| `CSharp-Client-Geruest/` | **alle** (3 pro Team) | Gerüst mit TODOs |
| `backend_geruest.php` | **Entwickler** (Stretch) | Gerüst mit TODOs |
| `tracking.html` | **Entwickler** (Stretch) | Gerüst mit TODOs |

Das Referenz-Backend behältst du; an die Teams gibst du das `backend_geruest.php` als Startpunkt.

## Der API-Vertrag (verbindlich)

| Aufruf | Erfolg | Fehler |
|---|---|---|
| `GET /auftraege` | 200 + Liste | 401 |
| `GET /auftraege/{id}` | 200 + Auftrag | 404 / 401 |
| `POST /auftraege` | 201 + Location | 400 / 401 |

JSON eines Auftrags:

    { "auftragsNr": 1001, "kunde": "Ostsee Handel GmbH", "datum": "2026-03-12", "status": "offen" }

Authentifizierung: Header `X-Api-Key: nordfracht-2026` (sonst 401).

## Schnellstart

**1. Referenz-Backend starten** (PHP 7+ genügt, kein Webserver nötig):

    php -S localhost:8000 referenz_backend.php

Test im Browser/Postman: `http://localhost:8000/auftraege` mit Header `X-Api-Key: nordfracht-2026`.
Beim ersten Start wird `auftraege.json` mit zwei Beispieldatensätzen angelegt.

**2. C#-Client** (neues .NET-Framework-4.8-Konsolenprojekt):
Die fünf `.cs`-Dateien einfügen, **NuGet-Paket `Newtonsoft.Json`** hinzufügen, `auftraege.csv`
ins Ausgabeverzeichnis legen. `RestClient` ist fertig (GET als Beispiel), Import und Validierung
sind die TODOs der drei Client-Module.

**3. Tracking-Seite:** `tracking.html` im Browser öffnen – holt die Daten per `fetch`. Die TODO:
pro Auftrag eine Zeile bauen, **nur `auftragsNr`, `datum`, `status` anzeigen** (Datenminimierung, kein Kundenname).

**4. Team-Backend:** `backend_geruest.php` enthält Struktur und TODOs. Wenn es läuft, kann der eigene
Client darauf umgestellt werden (`basisUrl`), und im **Cross-Team-Test** läuft der Client gegen das
Backend des anderen Teams.

## Differenzierung

- **Grundstufe (alle):** der C#-Client (Import / Validierung / REST) gegen das Referenz-Backend.
- **Erweiterung (Entwickler):** `backend_geruest.php` ausbauen + `tracking.html` fertigstellen.

Bewertet wird der Code (GitHub-Historie, Jira-Tickets). Scrum/Git/Jira sind die Arbeitsweise.
