-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
113 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# Agave `Progetto SIW 2015` | ||
|
||
-------------- | ||
* Gaetano Bonofiglio | ||
* Veronica Iovinella | ||
* Andrea Salvoni | ||
|
||
-------------- | ||
|
||
### Estensioni | ||
* Quando il **cliente** effettua il login, l'applicazione lo ricorda fino al logout. | ||
* Un cliente può registrarsi da solo al sito. | ||
* Ad ogni prodotto può essere associata una serie di **recensioni** di altri clienti. | ||
* Una recensione è composta da un **commento**, una **valutazione** da 1 a 5 e un *autore* (un cliente). | ||
* Nella pagina del singolo prodotto è mostrato l'elenco delle recensioni. | ||
* Nella pagina con l'elenco dei prodotti è mostrata la media delle valutazioni per ogni prodotto. | ||
* Quando l'**amministratore** effettua il login, l'applicazione lo ricorda fino al logout. | ||
* Se l'amministratore non è loggato non può accedere al **pannello admin**. | ||
* Quando un amministratore invia un nuovo prodotto deve **caricare un'immagine** che poi verrà mostrata nel riepilogo del prodotto. | ||
* Quando un cliente effettua un **ordine**, ogni prodotto (*riga ordine*) selezionato viene salvato temporaneamente nel **carrello** fino alla conferma o alla cancellazione (di fatto, il carrello rappresenta l'ordine *aperto* delle specifiche originali). | ||
* Carrello, ordini e ordini evasi sono comunque di tipo *Orders*, ma sono differenziati in base alla loro associazione a Customer, con diversa cardinalità (il carrello rappresenta l'ordine in creazione, quindi è 1 a 1). | ||
* Il carrello può essere svuotato o confermato. Alla conferma l'ordine diventa effettivo e il carrello viene comunque svuotato. Questo provoca un cambiamento dell'associazione. | ||
|
||
|
||
### Specifiche Originali | ||
|
||
* Si vuole realizzare un sistema informativo su Web per la gestione degli ordini di una piccola azienda che effettua una attività di e-commerce dei propri prodotti | ||
* Oltre agli utenti occasionali, due tipologie di attori interagiscono con il sistema: i clienti e l'amministrazione | ||
* Il cliente può svolgere le seguenti operazioni (è possibile introdurne altre): | ||
* Consultazione catalogo prodotti | ||
* Creazione di un ordine | ||
* Consultazione dei propri ordini | ||
* L'amministrazione può svolgere le seguenti operazioni: | ||
* Inserimento di un prodotto nel catalogo | ||
* Inserimento di un cliente nella anagrafica clienti | ||
* Evasione di un ordine | ||
|
||
* Per ogni prodotto sono di interesse un nome, un codice, una descrizione, un costo, la quantità in magazzino | ||
* Ogni prodotto può essere fornito da uno o più fornitori, ogni fornitore può fornire uno o più prodotti | ||
* Ogni fornitore ha una partita iva e un indirizzo, telefono, indirizzo di posta elettronica | ||
* Ogni cliente ha nome, cognome, data di nascita, data di registrazione, indirizzo, indirizzo di posta elettronica | ||
|
||
* Un ordine si compone di più righe: ogni riga riporta un prodotto, il prezzo unitario del prodotto e la quantità ordinata (ad es. penne, 1€, 400) | ||
* Per ogni ordine è necessario memorizzare: | ||
* la data in cui l'ordine è stato aperto dal cliente | ||
* la data in cui l'ordine è stato chiuso dal cliente (da quel momento in poi l'ordine non verrà modificato e l'amministrazione può procedere ad evadere l'ordine) | ||
* la data in cui l'ordine è stato evaso (cioè la data in cui i prodotti ordinati sono stati prelevati dal magazzino e spediti al cliente) | ||
* I clienti che vogliono effettuare gli ordini devono essere registrati nella anagrafica dei clienti della azienda: solo i clienti identificati e autenticati possono effettuare ordini | ||
* Il catalogo dei prodotti può essere consultato da clienti non autenticati | ||
|
||
* Segue una bozza dei principali casi d'uso | ||
* I casi d'uso dovranno essere estesi e completati a piacere (giustificando ogni scelta) | ||
* NB: ipotizziamo che i pagamenti vengano gestiti off-line | ||
|
||
* Caso d'uso UC1: consulta listino | ||
* Attore primario: utente non registrato | ||
* Scenario principale di successo: | ||
* L'utente consulta il catalogo dei prodotti | ||
* L'utente sceglie un prodotto e ne richiede i dettagli | ||
* Il sistema mostra i dettagli del prodotto scelto | ||
* L'utente ripete i passi precedenti un numero indefinito di volte | ||
|
||
* Caso d'uso UC2: effettua ordine | ||
* Attore primario: cliente (utente registrato) | ||
* Scenario principale di successo: | ||
* Il cliente crea un ordine | ||
* Il cliente consulta il catalogo dei prodotti | ||
* Il cliente sceglie un prodotto e aggiunge codice e quantità del prodotto scelto all'ordine | ||
* Il sistema imposta il prezzo unitario del prodotto scelto al prezzo corrente di listino | ||
* Il sistema registra la riga ordine | ||
* Il cliente ripete i due passi precedenti finché necessario | ||
* Il cliente "chiude" l'ordine | ||
* Il sistema registra l'ordine | ||
* Precondizioni: il cliente è identificato e autenticato | ||
|
||
* Caso d'uso UC3: consulta i propri ordini | ||
* Attore primario: cliente | ||
* Scenario principale: | ||
* Il cliente consulta l'elenco dei propri ordini | ||
* Il sistema mostra al cliente l'elenco dei suoi ordini | ||
* Il cliente chiede il dettaglio di un ordine | ||
* Il sistema mostra il dettaglio dell'ordine | ||
* Il cliente ripete i due passi precedenti finché necessario | ||
* Precondizioni: il cliente è identificato e autenticato | ||
|
||
* Caso d'uso UC4: inserimento prodotti nel catalogo | ||
* Attore primario: amministrazione | ||
* Scenario principale: | ||
* L'amministratore inserisce un nuovo prodotto nel catalogo specificandone i dettagli | ||
* Il sistema registra il prodotto | ||
* I punti precedenti vengono ripetuti fino a che necessario | ||
* Precondizioni: l'amministratore è identificato e autenticato | ||
|
||
* Caso d'uso UC5: recupera indirizzo cliente | ||
* Attore primario: amministrazione | ||
* Scenario principale: | ||
* L’amministratore fornisce l'id di un ordine | ||
* Il sistema mostra all’amministratore i dati del cliente che ha effettuato l’ordine | ||
* Precondizioni: l’amministratore è identificato e autenticato | ||
|
||
* Caso d'uso UC6: evasione ordine | ||
* Attore primario: amministrazione | ||
* Scenario principale: | ||
* Il sistema presenta all'amministratore gli ordini chiusi, ma non evasi | ||
* L'amministratore sceglie un ordine | ||
* Il sistema evade l'ordine: aggiorna l'ordine inserendo la data di spedizione e aggiorna la quantità dei prodotti in magazzino (sottraendo la quantità di prodotti usati per l'ordine) | ||
* Precondizioni: | ||
* l'amministratore è identificato e autenticato | ||
* Eccezioni: | ||
* alcuni prodotti potrebbero non essere presenti in magazzino nella quantità specificata dall'ordine. In questo caso l'ordine rimane in sospeso | ||
|
||
|
||
|