EN | IT

Lavoro di gruppo

Cultura

EJS CSS Bootstrap JavaScript NodeJS Express MySQL

Riepilogo

Cultura è una piattaforma interattiva progettata non solo per preservare, ma anche per celebrare l'arte dei nostri amici e delle nostre comunità che potrebbero non essere ancora noti al grande pubblico. In un'epoca in cui il ritmo frenetico della vita moderna può facilmente mettere in ombra i talenti locali, Cultura crea uno spazio in cui artisti, ancora poco conosciuti, possono mostrare la loro creatività, raccontare le loro storie ed entrare in contatto con altri che apprezzano il loro lavoro.

Scopo

Sviluppare in modo collaborativo un'applicazione MVC full-stack che gestisca la personalizzazione e l'interazione in tempo reale con il database MySQL.

Caratteristiche principali

  • Registrazione, login e log out
  • Ricerca e filtraggio per categoria
  • Funzionalità Mi piace/Non mi piace per opere, artisti e generi
  • Commentare un'opera ed eliminare commenti
  • Personalizzazione del contenuto
  • Pubblicare, modificare e rimuovere opere
  • Gestione del profilo, incluso modifica della password ed eliminazione dell'account
  • Rimozione opere e preferiti
  • Design responsivo

Il mio ruolo nel gruppo

In questo lavoro di gruppo ero responsabile dell'intero sviluppo back-end, inclusa l'implementazione della struttura del database sia per la distribuzione locale che per il server SCSS condiviso del Trinity College di Dublino. Il database è stato progettato per riflettere i requisiti funzionali definiti dal gruppo. Ho anche sviluppato il front-end utilizzando EJS, CSS, Bootstrap e JavaScript, basando la struttura e il layout sui suggerimenti di design forniti dai miei colleghi.

Punti salienti

Progettato uno schema MySQL normalizzato con relazioni tramite chiavi esterne.
Implementata l'autenticazione sicura tramite JSON Web Tokens (JWTs).
Salvati i JWTs come cookie HTTP-only per proteggerli dagli script lato client e migliorare la sicurezza.
Password crittografate in modo sicuro con Bcrypt.
Routes protette verificando i JWTs tramite middleware.
Utilizzati router di Express per una gestione modulare delle routes.
Gestito il caricamento delle immagini con Multer e utilizzato Sharp per il ridimensionamento e la compressione.