Il sistema di parcheggio deve consentire all’utente di:
prenotare un posto auto in anticipo;
effettuare il pagamento della prenotazione;
parcheggiare il veicolo nel posto riservato;
uscire anticipatamente rispetto alla durata prevista della prenotazione;
effettuare il check-in e il check-out ai cancelli di ingresso e uscita;
gestire i casi in cui l’utente non si presenti entro il tempo stabilito, classificandoli come no-show;
aggiornare in tempo reale la disponibilità dei posti auto;
supportare diversi tipi di veicoli, come auto, moto, SUV e veicoli per persone con disabilità.
Il sistema deve inoltre rispettare i seguenti vincoli non funzionali:
Bassa latenza: le operazioni ai cancelli devono essere eseguite rapidamente, per evitare code e rallentamenti.
Affidabilità: prenotazioni, pagamenti e assegnazione dei posti devono essere gestiti in modo corretto e consistente.
Scalabilità: il sistema deve poter funzionare anche in presenza di un elevato numero di posti, pi ù piani e più parcheggi.
Concorrenza: non devono verificarsi assegnazioni doppie dello stesso posto a veicoli diversi nello stesso momento.
Alta disponibilità: il servizio deve restare operativo anche in caso di guasti parziali o malfunzionamenti temporanei.
Sicurezza: i dati relativi ai pagamenti e all’accesso devono essere protetti da accessi non autorizzati.
Manutenibilità: il sistema deve essere facilmente aggiornabile, monitorabile e gestibile nel tempo.
Client / App Utente: serve all’utente per prenotare e pagare.
Server: gestisce le richieste e controlla tutto il sistema.
Prenotazioni: salva e controlla i posti riservati.
Gate: gestisce ingresso e uscita delle auto.
Database: memorizza prenotazioni, pagamenti e disponibilità dei posti.
L’architettura del sistema è composta da un client, un server, un sistema di prenotazioni, il controllo dei cancelli e un database. Il client permette all’utente di prenotare un posto e pagare, il server gestisce la logica principale, il gate controlla l’ingresso e l’uscita delle auto e il database salva tutte le informazioni.
Define the APIs expected from the system. This is your chance to analyze and define the read and write paths so that you can come up with the high-level design...
Client / App Utente: serve all’utente per prenotare e pagare.
Server: gestisce le richieste e controlla tutto il sistema.
Prenotazioni: salva e controlla i posti riservati.
Gate: gestisce ingresso e uscita delle auto.
Database: memorizza prenotazioni, pagamenti e disponibilità dei posti.
L’architettura del sistema è composta da un client, un server, un sistema di prenotazioni, il controllo dei cancelli e un database. Il client permette all’utente di prenotare un posto e pagare, il server gestisce la logica principale, il gate controlla l’ingresso e l’uscita delle auto e il database salva tutte le informazioni.
I componenti principali sono:
Prenotazioni: gestisce la richiesta del posto.
Pagamento: controlla se la prenotazione è stata pagata.
Gate: gestisce l’ingresso e l’uscita delle auto.
Database: salva tutte le informazioni.
Assegnazione posto: sceglie un posto libero e compatibile.
Il componente Prenotazioni crea e controlla la prenotazione dell’utente.
Il componente Pagamento verifica che il pagamento sia andato a buon fine.
Il componente Assegnazione posto assegna un posto libero in base al tipo di veicolo.
Il componente Gate controlla l’accesso al parcheggio.
Il Database memorizza prenotazioni, pagamenti e disponibilità dei posti.
Il sistema è composto da pochi componenti principali: prenotazioni, pagamento, assegnazione del posto, gate e database. Le prenotazioni gestiscono la richiesta dell’utente, il pagamento conferma l’acquisto, l’assegnazione del posto sceglie un posto libero e compatibile, il gate controlla ingresso e uscita e il database salva tutti i dati necessari al funzionamento del sistema.