Autore: Dante Baiunco
Anno: 5° anno ITIS G. Peano 2023/2024
"Robot Scout: Tiger Tiger" è un'applicazione desktop sviluppata in C# utilizzando il motore Unity. L'applicazione interagisce con un database attraverso delle RESTful API fornite da un server scritto in Java, utilizzando JSON per lo scambio dei dati. Oltre alla gestione e visualizzazione dei dati, l'applicazione include un videogame integrato.
Il progetto completo è disponibile su GitHub.
Il database contiene le seguenti tabelle:
- Missioni:
id
,nome
,robot
,player
,punteggio
,dataInizio
,dataFine
. - Ritrovamenti:
id
,missione
,materiale
,data
. - Materiali:
id
,colore
,descrizione
. - Players:
id
,username
,role
,email
,punteggioTotale
,missioniCompletate
,hash
,salt
. - Robots:
nome
,seriale
,nPorte
,nRuote
.
- Players: Ogni giocatore tiene traccia del proprio punteggio totale e delle missioni completate. Le password sono protette con crittografia hash e salt per una maggiore sicurezza.
- Missioni: Ogni missione inizia con punteggio 0 e senza una data di fine. I giocatori possono aggiungere ritrovamenti fino al completamento della missione, momento in cui vengono assegnati il punteggio e la data di fine.
L'applicazione gestisce missioni spaziali con robot, include un sistema di autenticazione con ruoli di "user" e "admin" e offre una LeaderBoard dei giocatori con più punti.
- Profilo: Visualizza e modifica i propri dati e le missioni iniziate.
- Missions: Visualizza tutte le missioni nel database.
- Simulation: Consente di completare missioni o esplorare nuove missioni o ritrovamenti esistenti.
- Players: Permette agli admin di visualizzare e gestire i giocatori, inclusa la possibilità di promuoverli, modificare i dettagli e cancellarli.
Il servizio web, sviluppato in Java, utilizza l'architettura REST per l'interazione con l'applicazione desktop, e comprende tre parti principali:
- JavaBean: Classi per incapsulare i dati del database.
- DAO (Data Access Object): Classi per le operazioni CRUD sul database.
- API: Endpoint RESTful per autenticazione e gestione dati.
- Conoscenza approfondita: Familiarità con Unity.
- Interfaccia intuitiva: Facilità nella creazione di interfacce utente.
- Applicazione desktop: Desiderio di creare un'app desktop eseguibile.
- Integrazione di un videogioco: Unity è ideale per sviluppare giochi.
Il progetto è nato da un'esperienza PCTO, evolvendo verso un'applicazione che simula missioni spaziali gestite da robot. Originariamente orientato alla gestione di un robot fisico, il progetto si è poi trasformato in una simulazione virtuale e ha integrato elementi videoludici.
- UnityWebRequest: Utilizzato per inviare richieste API al server.
- Newtonsoft.Json: Utilizzato per la serializzazione JSON.
Per provare il progetto in locale, seguire questi passaggi:
-
Scaricare il progetto:
- Scaricare la ZIP del progetto da GitHub.
-
Scaricare il progetto JavaWebService:
- Trovato nella cartella omonima del progetto.
-
Importare in NetBeans:
- Aprire il progetto con NetBeans e importare i jar necessari dal file del server.
-
Configurare il server GlassFish:
- Aggiungere un server GlassFish versione 6.25 o inferiore.
-
Hostare il DBMS:
- Utilizzare MySql con Xamp e importare il file .sql presente nel progetto.
-
Installare l'applicazione:
- Installare la build dell'applicazione per il proprio sistema operativo.
Per eseguire il server da remoto, passare direttamente all'ultimo passaggio.
Questo progetto è concesso in licenza sotto i termini della licenza MIT. Vedi il file LICENSE per i dettagli.