Skip to content

Backend API RESTful sviluppato con Node.js, Express e MongoDB per la gestione di utenti, autenticazione JWT, upload file e CRUD di tracce musicali, con logging avanzato su file e Slack.

Notifications You must be signed in to change notification settings

nagcas/fullstack-node-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend API

Backend per la gestione di un sistema di upload file, gestione utenti, autenticazione e gestione di tracce musicali.
Sviluppato con Node.js, Express e MongoDB, include funzionalità di logging avanzato su file e Slack.


Descrizione

Questo progetto implementa un backend RESTful API per:

  • Registrazione e login utenti con autenticazione JWT e crittografia password (bcryptjs).
  • Upload, gestione e cancellazione di file multimediali (Multer + MongoDB).
  • Gestione CRUD di "tracks" (brani musicali) con autorizzazioni di ruolo.
  • Logging dettagliato delle richieste e risposte HTTP tramite morgan-body, con invio log su file e Slack.
  • Validazione input con express-validator.
  • Gestione soft-delete con mongoose-delete.
  • Supporto CORS e configurazioni tramite variabili d'ambiente.

Tecnologie e Dipendenze


Installazione

  1. Clona il repository
git clone https://github.com/tuo-username/backend.git
cd backend

Installa le dipendenze

npm install

Crea un file .env nella root del progetto con i seguenti valori (aggiorna secondo il tuo ambiente):

DEV_ENV=development
DB_URI=la_tua_uri_mongodb
PUBLIC_URL=http://localhost:3000/storage
JWT_SECRET=la_tua_chiave_segreta
SLACK_WEBHOOK=il_tuo_webhook_slack

Avvia il server in modalità sviluppo

npm run dev

Uso

Il server si avvierà sulla porta configurata (di default 5000 se impostata).

Documentazione degli endpoint disponibili con express-list-endpoints e output nel terminale all'avvio.

Le rotte sono strutturate in moduli per autenticazione, gestione tracce, upload file e test.

Endpoints principali

### /api/auth/signUp — Registrazione utente

### /api/auth/signIn — Login utente

### /api/tracks — CRUD tracce musicali (protetto da autenticazione e ruoli)

### /api/storage — Upload e gestione file

### /api/test/test — Endpoint di test server

Logging

Le richieste HTTP di tipo POST, PUT, DELETE e PATCH sono loggate con dettagli corpo richiesta e risposta.

I log vengono salvati su file logs/logger.log e inviati a Slack tramite webhook configurato.

Il logger evita di loggare risposte con codice < 400 per ridurre il rumore.

Struttura del progetto

├── src/
│   ├── app.js                # Entry point dell'app
│   ├── controllers/          # Logica di business
│   ├── middlewares/          # Middleware personalizzati (auth, roles, validator)
│   ├── models/               # Modelli mongoose
│   ├── routers/              # Definizione rotte
│   ├── utils/                # Utility (logger, validator, JWT, password)
│   ├── config/               # Configurazioni DB e porte
│   └── storage/              # Cartella file caricati
├── logs/                     # File di log
├── .env                      # Variabili d'ambiente (non committare)
├── package.json              # Gestione dipendenze e script
└── README.md                 # Documentazione

Script disponibili

### npm run dev	Avvia il server in sviluppo con nodemon
### npm start	Avvia il server in modalità produzione
### npm run lint	Controlla stile codice con ESLint Standard
### npm run lint:fix	Corregge automaticamente problemi di stile

Note finali

Assicurati che MongoDB sia attivo e raggiungibile con la URI configurata in .env.

Mantieni segrete le chiavi JWT_SECRET e SLACK_WEBHOOK.

Questo backend è pronto per essere integrato con frontend React o altre applicazioni client.

Autore: Gianluca Chiaravalloti
Licenza: ISC

About

Backend API RESTful sviluppato con Node.js, Express e MongoDB per la gestione di utenti, autenticazione JWT, upload file e CRUD di tracce musicali, con logging avanzato su file e Slack.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published