Appearance
2 - Requisiti
Di seguito sono riportati i principali requisiti che l’applicazione deve soddisfare.
2.1 - Requisiti di Business
- La piattaforma consente alle organizzazioni di creare e pubblicare post relativi agli eventi da loro promossi.
- Gli utenti possono utilizzare la piattaforma come punto di riferimento per scoprire eventi nelle vicinanze, in base alla località e ai propri interessi.
- Il sistema abilita la vendita online dei biglietti degli eventi fornendo alle organizzazioni uno strumento per monetizzare le proprie attività.
2.2 - Requisiti Funzionali
Tipologie di utenti supportate dal sistema:
- Utenti non registrati.
- Utenti registrati, che possono fruire dei contenuti della piattaforma.
- Utenti registrati come organizzazioni, che possono creare eventi, vendere biglietti e fruire dei contenuti della piattaforma.
Per tutti gli utenti:
- Visualizzare la schermata Home con le modalità di interazione: ricerca eventi, visualizzazione eventi popolari, prossimi eventi e nuove aggiunte.
- Visualizzare dalla schermata Esplora tutti gli eventi pubblicati sulla piattaforma, tutti gli utenti registrati e applicare filtri di ricerca.
Per utenti registrati:
- Ricevere un feed di eventi personalizzato, basato sugli interessi specificati.
- Mettere e togliere like a un evento.
- Mettere e togliere follow a un membro e a un’organizzazione.
- Acquistare biglietti per gli eventi.
- Lasciare una recensione dopo la partecipazione a un evento.
- Contattare direttamente le organizzazioni all’interno della piattaforma per richiedere supporto.
- Ricevere notifiche su:
- nuovo follower.
- pubblicazione di nuovo evento da parte di organizzazione seguita.
- nuovo messaggio.
Per utenti registrati come organizzazioni:
- Creare eventi, scegliendo se renderli pubblici o salvarli come bozza.
- Specificare collaboratori durante la creazione degli eventi.
- Ricevere notifiche su like e recensioni ai propri eventi.
2.3 - Requisiti Non Funzionali
- Accessibilità: l'interfaccia grafica deve essere accessibile.
- Portabilità: l'applicazione risulta responsive per adattarsi a schermi di diverse dimensioni pc/tablet/mobile.
- Deployability: il sistema in automatico deve aggiornarsi alla versione dell’ultima release.
- Availability: il sistema deve essere tollerante ai guasti per garantire la disponibilità, deve poter effettuare un recupero automatico in caso di errore e prevedere la ridondanza dei componenti critici per assicurare la continuità del servizio.
- Sicurezza: gli utenti del sistema devono autenticarsi per verificare la loro identità e saranno poi autorizzati ad accedere alle risorse in base alle regole definite. Inoltre per assicurare la confidenzialità delle password queste saranno salvate in modo cifrato.
- Robustezza: l'applicazione deve gestire input errati e generare errori coerenti.
- Affidabilità: l'applicazione deve essere stabile, evitando crash.
- Manutenibilità: il codice deve essere ben strutturato e ben documentato.
- Estendibilità: il progetto deve favorire la personalizzazione e l'aggiunta di funzionalità.
Inoltre si è scelto, anche per esigenze didattiche, di aggiungere come requisito architetturale lo sviluppo del sistema con un’architettura a microservizi.