Nella vita di uno studente ci sono tanti Selfie, ma anche tanti Sbatti!
A cura di:
- Mirco Quartieri, mirco.quartieri@studio.unibo.it (Eventi, Mobile View, Note, Notifiche, Pomodoro Timer, To Do);
- Lorenzo Raffini, lorenzo.raffini2@studio.unibo.it (Calendario, Eventi, Gestione Utenti, Login, Mobile View, Note, Time Machine);
- Alessandro Zanaglia, alessandro.zanaglia@studio.unibo.it (Calendario, Eventi, Mobile View, Routine, Testing);
Partendo da una situazione di competenze disomogenee, il gruppo ha fatto il possibile per dividersi equamente i compiti lungo quasi un anno di lavoro.
Tutti i membri del gruppo hanno contribuito al debugging, alle scelte e alle modifiche estetiche, mentre le scelte implementative che seguono sono merito di Lorenzo Raffini.
Il progetto si trova caricato sul sito dell'UniBo (pobabilmente per un periodo di tempo limitato)
Sono previsti degli account di test per bypassare il login UniBo, in particolare username: asPM, password: 12345678.
Il database del progetto si può trovare su SbattiDB.
Oltre allo stack MERN indicato dai requisiti del progetto, ci siamo affidati a Firebase (FCM) e node-cron per la gestione delle notifiche.
Di seguito la lista di pacchetti utilizzati, ottenuti tramite npm:
- axios
- cheerio
- cors
- express
- firebase-admin
- mongoose
- node-cron
Dopo un'attenta analisi del traffico della rete ed il permesso del professor Vitali di proseguire per questa strada, si è sostituito il classico accesso utente e password registrati via form con il Login DSA Unibo, il quale aggiunge la possibilità di selezionare gli insegnamenti di interesse dello studente, creando successivamente gli eventi relativi ad essi nel calendario.
Si è scelto di spostare le funzionalità di un'eventuale home page in una sidebar sempre visibile, con l'intenzione di risparmiare qualche click ai nostri colleghi e mantenere un ambiente essenziale con meno distrazioni possibili, senza però rinunciare alla comodità di avere sempre le proprie attività sotto controllo ed ogni funzionalità raggiungibile.
L'applicazione è sviluppata in React+TypeScript per godere della tipizzazione statica, insieme a tanti altri vantaggi, permettendoci di lavorare con maggiore manutenibilità e sicurezza, oltre che a facilitare le frequenti modifiche e riadattamenti fondamentali per portare avanti un progetto dinamico come questo.
In aggiunta ai pacchetti fondamentali React, eccone alcuni che abbiamo scelto di utilizzare (per la lista completa si veda il relativo file):
- @fullcalendar
- @mui/material
- dayjs
- firebase
- react-dom
- react-scripts
L'obbiettivo iniziale era l'estensione 18-33, successivamente per sovrapposizione con altri progetti durante l'anno accademico si è optato per 18-27: essendo lo scheletro di alcune funzionalità già esistente al momento del cambio di rotta, si è comunque scelto di lasciare quanto fatto anche se non completamente funzionante, così da offrire una visione della web-app completa.