Progetto d'esame di Pietro Coloretti, Alessandro Pepi e Iacopo Sbalchiero per il corso Ingegneria del software T presso il corso di Ingegneria Informatica T @ Unibo A.A. 2022-2023.
Questo repository contiene il codice per una piattaforma progettata per facilitare la recensione e la ricerca di film e serie TV. L'applicazione offre diverse funzionalità, come la valutazione dei film, la pubblicazione di recensioni, il tracciamento dei contenuti visti e molto altro.
- Ruoli degli Utenti: La piattaforma supporta quattro tipi di utenti: visitatori, utenti, recensori e amministratori.
- Sistema di Valutazione: Gli utenti e i recensori possono valutare i film su una scala da 0 a 5 stelle.
- Sistema di Recensioni: Le recensioni possono essere categorizzate come senza spoiler, con spoiler o differenze di adattamento.
- Interazione Utente: Gli utenti possono tracciare i film/serie visti, visualizzare classifiche e richiedere lo status di recensore.
- Funzioni Amministrative: Gli amministratori possono gestire le recensioni, i permessi degli utenti e i dettagli dei prodotti.
Registrazione e Login degli Utenti:
- I visitatori possono registrarsi e effettuare il login.
- Gli utenti possono aggiungere prodotti alla loro cronologia di visualizzazione e valutarli.
- I recensori possono aggiungere e categorizzare recensioni.
- Gli amministratori possono gestire i ruoli degli utenti e i dettagli dei prodotti.
Ricerca e Visualizzazione dei Prodotti:
- Ricerca dei prodotti per titolo, genere e cast.
- Visualizzazione dei dettagli, valutazioni e recensioni dei prodotti.
- Filtraggio delle recensioni per categoria.
Funzionalità Specifiche per gli Utenti:
- Tracciamento e ricerca dei prodotti basati sulla cronologia di visualizzazione.
- Visualizzazione delle classifiche dei prodotti.
- Richiesta di status di recensore.
Funzionalità Amministrative:
- Gestione delle recensioni, dei permessi degli utenti e dei dettagli dei prodotti.
- Blocco degli account utente.
- Prestazioni: Ricerca dei prodotti efficiente e backup periodico dei dati.
- Sicurezza: Cifratura dei dati e politiche di password.
- Usabilità: Interfacce user-friendly per diversi ruoli.
La piattaforma è strutturata in diversi livelli:
- Livello di Persistenza: Gestisce le interazioni con il database.
- Livello Server: Gestisce la logica di business e le operazioni lato server.
- Livello Client: Gestisce l'interfaccia utente e le operazioni lato client.
