54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
# scouthub-attivita-be
|
|
|
|
Backend Node.js/TypeScript/Express/Prisma per la gestione di attivita scout —
|
|
sostituisce il precedente backend Java/Spring Boot.
|
|
|
|
## Prerequisiti
|
|
|
|
- Node.js 18+
|
|
- Un'istanza PostgreSQL raggiungibile (locale o remota)
|
|
|
|
## Variabili d'ambiente
|
|
|
|
Copiare `.env.example` in `.env` e valorizzare le variabili richieste
|
|
(`PORT`, `CORS_ORIGIN`, `DATABASE_URL`, `DATABASE_URL_TEST`). Vedere
|
|
`.env.example` per il formato atteso e i valori di default usati in sviluppo.
|
|
|
|
## Sviluppo locale
|
|
|
|
```bash
|
|
npm install
|
|
npx prisma migrate dev
|
|
npm run db:seed
|
|
npm run dev
|
|
```
|
|
|
|
Il server si avvia sulla porta definita da `PORT` (default 8080) e risponde
|
|
su `GET /health`.
|
|
|
|
## Test
|
|
|
|
```bash
|
|
npm test
|
|
```
|
|
|
|
Richiede `DATABASE_URL_TEST` configurato in `.env` e puntato a un database
|
|
PostgreSQL dedicato ai test, con le migration gia' applicate: la suite
|
|
esegue un `TRUNCATE` delle tabelle tra un test e l'altro, quindi va tenuto
|
|
separato dal database di sviluppo.
|
|
|
|
## Note
|
|
|
|
- L'autenticazione reale non e' ancora implementata: l'autore delle attivita'
|
|
e' ancora hardcoded a `"Movio"` nel router privato, e il middleware
|
|
`authPlaceholder` e' un pass-through.
|
|
- Porta e CORS sono gia' letti da variabili d'ambiente in previsione di un
|
|
futuro `docker-compose.yml` (non incluso in questa feature).
|
|
|
|
## Riferimento storico
|
|
|
|
La cartella `DDL/` contiene gli script SQL dello schema originale del
|
|
backend Java (MySQL), mantenuti come riferimento storico. Lo schema attuale
|
|
(PostgreSQL) e' definito in `prisma/schema.prisma` e gestito tramite Prisma
|
|
Migrate.
|