3. Esecitazione Flutter
Realizzare una app Flutter chiamata MiaFarmacia, eseguibile su simulatore/browser o in modalità debug su dispositivo.
L’app deve implementare le principali caratteristiche definite nell’esercizio UML, in modalità semplificata. Si ignori la parte relativa alla Cybersecurity: autenticazione, ruoli e controlli di accesso possono essere simulati o semplificati tramite codici hardcoded, l'utente può essere autenticato direttamente nella app.
Il sistema deve consentire a paziente e caregiver di accedere tramite la stessa app mobile. Il medico, invece, aggiorna la lista dei medicinali del paziente tramite un’interfaccia separata, tramite server locale o tramite dati/API simulate.
L’app deve comunicare con un server API locale in forma semplificata, reperibile al repository github: https://github.com/marcoprenassi/medical_mockup_server, si rimanda al README.md per conoscere i servizi esposti tramite API REST.
La pagina di login deve richiedere username e password, ma le credenziali possono essere hardcoded come variabili costanti all’interno del codice.
Nota: il flusso dell’app deve favorire una consultazione semplice e ordinata. È sconsigliato realizzare tutta l’app in un singolo file; adottare una minima separazione tra interfaccia, modelli dati e comunicazione con il server.
È consentito utilizzare sistemi LLM o strumenti di generazione assistita del codice. Tuttavia, lo studente deve essere in grado di spiegare durante l’orale il codice consegnato o parti significative di esso, incluse le scelte implementative principali.
Il codice deve funzionare sotto Chrome (o browser a sua scelta) sul computer del candidato al momento dell'orale, per il collegamento con il server locale si può disattivare il controllo CORS (si rimanda al README.md del suddetto e alle lezioni in classe). Per qualsiasi problema relativo all'utilizzo del computer del candidato, si prega di contattare il docente prima dell'orale per concordare una modalità d'esame alternativa.
Requisiti tecnici
La app deve essere implementata usando il framework Flutter.
Il server API deve essere eseguito in locale, può essere modificato, il contratto endpoint API deve essere mantenuto.
La comunicazione tra app e server deve avvenire tramite richieste HTTP.