Sistema di Gestione di Corsi di Cucina Online
Progetto universitario per i corsi di Object Orientation e Basi di Dati
Università degli Studi di Napoli Federico II
UninaFoodLab è un'applicazione desktop per la gestione di una piattaforma di corsi di cucina. È stata sviluppata come progetto per i corsi di "Object Orientation" e "Basi di Dati" (Gruppo OOBD7).
Il sistema permette a due tipi principali di utenti, Chef e Partecipanti, di interagire con la piattaforma. Gli Chef possono creare e gestire corsi, ricette e sessioni (sia pratiche che online), mentre i Partecipanti possono iscriversi ai corsi, consultare le ricette e partecipare alle sessioni.
- Autenticazione Utente: Registrazione e Login sicuri per Chef e Partecipanti.
- Gestione Corsi: Creazione, modifica e visualizzazione dei corsi con filtri di ricerca.
- Gestione Ricette: Gli Chef possono creare e gestire le proprie ricette, specificando ingredienti e passaggi.
- Gestione Sessioni: Creazione di sessioni pratiche e online associate ai corsi.
- Profilo Utente: Visualizzazione e modifica delle informazioni del proprio profilo.
- Reporting: Funzionalità di reportistica per gli amministratori.
Il progetto segue un'architettura multi-strato per separare le responsabilità:
- Boundary (Package
UninaFoodLab.Boundary): Contiene tutte le classi dell'interfaccia utente (GUI) realizzate in Java Swing. - Controller (Package
UninaFoodLab.Controller): Gestisce la logica applicativa e fa da mediatore tra l'interfaccia utente e l'accesso ai dati. - DTO (Data Transfer Object) (Package
UninaFoodLab.DTO): Classi POJO (Plain Old Java Object) che modellano le entità del dominio. - DAO (Data Access Object) (Package
UninaFoodLab.DAO): Interfacce e implementazioni concrete per l'accesso e la persistenza dei dati sul database PostgreSQL.
- Linguaggio: Java
- Interfaccia Grafica: Java Swing, SwingX, Ikonli (per le icone)
- Database: PostgreSQL
- Gestione Dipendenze: Apache Maven
- Layout Manager: MigLayout
Per eseguire il progetto in locale, segui questi passaggi:
- Assicurati di avere un server PostgreSQL in esecuzione.
- Crea un nuovo database (es.
uninafoodlab). - Esegui gli script SQL forniti nella cartella
Database/sql/nell'ordine corretto:00_Create.sql(per creare tabelle e tipi)01_Trigger_Funzioni_Procedure.sql(per la logica di business del DB)02_Popolamento.sql(per inserire dati di esempio)
- Apri il progetto (
Object Orientation/uninafoodlab/) in un IDE che supporta Maven (es. Eclipse, IntelliJ IDEA). - Compila il progetto e risolvi le dipendenze Maven.
- Esegui la classe main (
Controller.java).
Oppure, tramite terminale nella cartella Object Orientation/uninafoodlab/:
# Compila e installa le dipendenze
mvn clean install
# Esegui l'applicazione (assicurati che il mainClass sia configurato nel pom.xml)
mvn exec:java