Backend della prova pratica
Find a file
AV77web 895860e906
All checks were successful
Deploy to VPS / build (push) Successful in 18s
Deploy to VPS / deploy (push) Successful in 20s
correzioni finali
2026-06-09 15:44:48 +02:00
.github/workflows modifica a deploy.yml 2026-06-09 11:31:25 +02:00
dist implementato Swagger nel backend 2026-06-09 14:57:40 +02:00
dockerfile implementato Swagger nel backend 2026-06-09 14:57:40 +02:00
initdb correzioni finali 2026-06-09 15:44:48 +02:00
scripts correzioni finali 2026-06-09 15:44:48 +02:00
src correzioni finali 2026-06-09 15:44:48 +02:00
.gitignore modifica a docker compose 2026-06-09 13:15:32 +02:00
docker-compose.yml correzioni 2026-06-09 13:38:58 +02:00
package-lock.json implementato Swagger nel backend 2026-06-09 14:57:40 +02:00
package.json implementato Swagger nel backend 2026-06-09 14:57:40 +02:00
README.md correzioni finali 2026-06-09 15:44:48 +02:00
tsconfig.json modifica a moduleResolution in tsoconfig.json 2026-06-09 11:41:28 +02:00

Backend Gestione Rimborsi Spese Aziendali (Prova S5)

API REST per la gestione delle richieste di rimborso spese aziendali.

URL produzione

Risorsa URL
API https://provapraticabackend.andreavillari.it
Health check https://provapraticabackend.andreavillari.it/api/health
Swagger UI https://provapraticabackend.andreavillari.it/api/docs
Frontend collegato https://provapraticafrontend.andreavillari.it

Credenziali di test

Password comune per tutti gli utenti: Password123!

Ruolo Email
Responsabile amministrativo admin@azienda.it
Dipendente mario.rossi@azienda.it
Dipendente marco.bianchi@azienda.it
Dipendente anna.verdi@azienda.it

È possibile anche registrare nuovi utenti da /register sul frontend, scegliendo il ruolo.

Avvio locale

Configurare il file .env (AUTH_SECRET, credenziali DB, URL frontend/backend, ecc.).

npm install
npm run dev

Con Docker (app + MySQL + phpMyAdmin):

docker compose up -d --build

MySQL è esposto su 127.0.0.1:3307, l'app su 127.0.0.1:3003.

Gli script in initdb/ vengono eseguiti solo al primo avvio del volume MySQL (database vuoto).

Dati iniziali

Il seed (initdb/02_seed.sql) crea:

  • 4 utenti di test (1 responsabile, 3 dipendenti)
  • 5 categorie di spesa
  • 10 richieste di rimborso in tutti gli stati (IN_ATTESA, APPROVATA, RIFIUTATA, LIQUIDATA)

Se il database di produzione è stato creato prima dell'aggiornamento del seed:

  • ricreare il volume Docker (docker compose down -v poi up), oppure
  • eseguire scripts/apply-missing-test-users.sql via phpMyAdmin o CLI MySQL

Stack

  • Node.js 20, Express, TypeScript
  • MySQL 8
  • Auth.js (sessione JWT via cookie)
  • Swagger UI (/api/docs)

Deploy

Push su main → Forgejo Actions → SSH sul VPS → docker compose up -d --build in /root/provapraticabackend.