Applicazione desktop JavaFX per la gestione di un servizio di spesa a domicilio. Il progetto è stato realizzato per l'insegnamento di Laboratorio di Programmazione a Oggetti del corso di laurea in Informatica dell'Università degli Studi dell'Aquila, A.A. 2020/2021.
- registrazione e accesso degli utenti;
- catalogo dei prodotti con ricerca e filtri;
- carrello e creazione degli ordini;
- gestione di indirizzo e data di consegna;
- aggiornamento dello stato degli ordini e notifiche;
- gestione di prodotti, categorie e promozioni da parte dell'operatore;
- assegnazione degli ordini agli operatori addetti alla preparazione.
L'applicazione prevede tre ruoli: cliente, operatore e addetto alla preparazione degli ordini.
- Java 11
- JavaFX 17 e FXML
- Maven
- MySQL 8 come persistenza opzionale
- architettura organizzata nei livelli
controller,business,domaineview - implementazioni della persistenza in memoria, su file e su database
Sono necessari JDK 11 o successivo e Maven. Per avviare il progetto dalla cartella principale:
mvn clean javafx:runPer impostazione predefinita l'applicazione usa dati in memoria e non richiede un database.
| Ruolo | Utente | Password |
|---|---|---|
| Operatore | op |
op |
| Cliente | c |
c |
| Secondo cliente | c1 |
c1 |
È possibile creare altri clienti e addetti alla preparazione direttamente dall'applicazione.
La modalità può essere selezionata con la variabile d'ambiente FASTDELIVERY_STORAGE, usando uno dei valori ram, file o db.
Esempio per usare i file inclusi nel progetto:
FASTDELIVERY_STORAGE=file mvn javafx:runPer la modalità MySQL sono disponibili gli script nella cartella src/main/resources/db. La connessione si configura senza modificare il codice:
export FASTDELIVERY_STORAGE=db
export FASTDELIVERY_DB_URL='jdbc:mysql://localhost:3306/fastdelivery?serverTimezone=Europe/Rome'
export FASTDELIVERY_DB_USER='root'
export FASTDELIVERY_DB_PASSWORD='password-locale'
mvn javafx:run- Gabriele Di Egidio
- Luigi Iaconi
FastDelivery è un progetto universitario a scopo didattico. Gli account e i dati inclusi sono dimostrativi; l'applicazione non è pensata per l'uso in produzione.
