# helpyourneighbour

Erster funktionaler Backend-Stand für die Vision:

- Nutzerregistrierung und Login (`/auth/register`, `/auth/login`)
- Hilfeanfragen erstellen/listen (`/requests`)
- Angebote + Gegenangebote + Deal-Annahme (`/offers/...`)
- Bewertungsgrundlage mit 2-14 Tage Prompt-Fenster (`/reviews/:dealId`)
- Datenmodell inkl. postalischer Adress-Verifikation (`backend/sql/schema.sql`)
- Address-Change-Flow mit Briefcode (`/addresses/change-request`, `/addresses/verify`)
- Kontaktdatenaustausch nach Deal (`/contacts/request`, `/contacts/respond`, `/contacts/deal/:dealId`)
- Serverseitige AES-256-GCM-Verschlüsselung für Adresse/Telefon (`DATA_ENCRYPTION_KEY`)

## Docker-Test (Unraid Host)

```bash
./scripts/test-in-docker.sh
```

## Start

```bash
cd backend
cp .env.example .env
npm install
npm run db:init
npm run start
```

## Forgejo Tasks

- #1 Backend Grundgerüst + Auth API
- #2 Datenmodell für Request/Offer/Negotiation/Deal
- #3 Bewertungssystem 2-14 Tage Verzögerung
- #4 Adressänderung nur per Briefbestätigung

## API Governance

- Dispute-Flow Doku: `docs/dispute-flow.md`

- OpenAPI: `openapi.yaml` (Spiegel: `docs/openapi.yaml`)
- Versioning/Deprecation Policy: `docs/api-versioning.md`
- Rollen- und Rechtekonzept: `docs/roles-and-permissions.md`

## Development Quickstart (auto-synced)

```bash
cd backend
npm install
npm test
npm run start
```

## Projektstruktur

Das Projekt besteht aus folgenden Hauptkomponenten:

- `backend/` - Node.js Backend mit Express
- `docs/` - Dokumentation und ADRs
- `scripts/` - Hilfsskripte für Tests und Deployment
- `frontend/` - (geplant) React Frontend

## Sicherheit

Alle sensiblen Daten werden serverseitig verschlüsselt. Die Verschlüsselung erfolgt mit AES-256-GCM.

## Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die LICENSE-Datei für weitere Informationen.

