70 lines
1.8 KiB
Markdown
70 lines
1.8 KiB
Markdown
# 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.
|
|
|