Comprensione traccia progetto

di il
6 risposte

Comprensione traccia progetto

Buongiorno, ho difficoltà a capire una traccia per il progetto di un esame e non riesco ad avere chiara la logica di business dell'applicazione.

Applicazione scritta in ASP.NET Mvc con finalità di portale fornitori. Di seguito le funzionalità necessarie
	- Gestione dei fornitori : Possibilità di inserire/modificare ed eliminare i fornitori
	-Gestione degli utenti : Possibilità di inserire/modificare ed eliminare gli utenti
	- Gestione dei permessi degli utenti : Possibilità di attribuire ad un utente specifici permessi. Ogni permesso dovrà essere una funzionalità
	- Pubblicazione dei documenti : Permettere il caricamento di documenti ad un determinato fornitore
	- Ogni fornitore potrà visualizzare i documenti che gli sono stati resi disponibili
	- Prevedere una funzione di audit necessaria per sapere quale fornitore ha scaricato o meno un determinato documento
Sicuramente nell'applicazione ci sarà bisogno dell'autenticazione, ma non penso della registrazione perché dai primi due punti capisco che ci sarà un admin che gestisce tutto.
La parte della gestione dei permessi non mi è molto chiara, non capisco se le funzionalità legate ai permessi sono le tre successive, oppure le devo inventare.
Nel caso in cui le tre funzionalità siano quelle elencate, sarebbe corretto gestire i ruoli come amministratore, utente non autenticato, utente autenticato e per i permessi avrò utente standard e fornitore?

Grazie in anticipo dell'aiuto

6 Risposte

  • Re: Comprensione traccia progetto

    squizzi ha scritto:


    ...
    1) Sicuramente nell'applicazione ci sarà bisogno dell'autenticazione, ma non penso della registrazione perché dai primi due punti capisco che ci sarà un admin che gestisce tutto.
    2) La parte della gestione dei permessi non mi è molto chiara, non capisco se le funzionalità legate ai permessi sono le tre successive, oppure le devo inventare.
    3) Nel caso in cui le tre funzionalità siano quelle elencate, sarebbe corretto gestire i ruoli come amministratore, utente non autenticato, utente autenticato e per i permessi avrò utente standard e fornitore?
    1) NO: non si dice nulla riguardo l'autenticazione, QUINDI non serve
    3) NO: i ruoli sono SOLO 2: "utente" e "fornitore". Non si parla di autenticazione, QUINDI non servono i ruoli "amministratore", "utente autenticato" e "utente non autenticato". NON c'e' l'autenticazione!!
    2) i permessi hanno a che fare con i "documenti" e con la "azioni" che possono essere fatte sui documenti. Ad esempio

    a) inserire un documento: OVVIAMENTE un fornitore puoi inserire un documento, ma NON un utente
    b) cancellare un documento: OVVIAMENTE un fornitore puo' cancellare un documento, ma NON un utente
    c) pubblicazione/depubblicazione di un documento: si puo' immaginare che un documento abbia lo stato:"privato", "pubblico" che OVVIAMENTE puo' essere cambiato dal fornitore ma NON dall'utente
    d) visualizzaione di un documento: OVVIAMENTE un fornitore PUO' vedere TUTTI i suoi documenti, MA potrebbe vedere o meno vedere i documenti PUBBLICI di altri fornitori.

    Allo stesso modo, un cliente puo' o meno vedere i documenti pubblici di un determinato fornitore.

    Si puo' fare cosi': ogni utente appartire ad una o piu' categorie e puo' vedere SOLO i documenti pubblici delle categorie a cui appartiene, ed un fornitore permette la visibilita' di SPECIFICI documenti in SPECIFICHE categorie.

    Se ci pensi, ma a questo punto non serve perche' ci ho pensato io, un "fornitore" puo' essere un utente che PUO' inserire/cancellare/pubblicare/depubblicare documenti SOLO nelle categorie assegnate. Inoltre il fornitore puo' vedere TUTTI i suoi documenti, mentre un utente puo' vedere SOLO i documenti pubblici.
    Nota che "modificare" un documento puo' essere modellato ANCHE con una cancellazione ed un inserimento della nuova versione. Quinid la modifica non ti serve

    L'amministratore ha SOLO il compito di configurare "utenti" e "fornitori", o se vuoi, "membri", "categorie" e "permessi". Non serve che sia un "ruolo", perche' il "ruolo" serve per modellare utenti e fornitori, mentre l'amministratore non e' NE un utente, NE un fornitore, perche' non ha nessuna necessita' di avere a che fare con i documenti.

    Per semplificare, puoi ragionare in termini di un'unica categoria, che coincide con il fornitore, tutti i documenti sono pubblici, MA un utente puo' vedere i documenti SOLTANTO dei fornitore per il quale ha il permesso.

  • Re: Comprensione traccia progetto

    Grazie della risposta, però senza autenticazione come faccio a capire quale utente che visita il sito è fornitore o cliente?
  • Re: Comprensione traccia progetto

    Utenti e fornitori avranno un nome diverso per ogn'uno.
    ti basta una paginetta di login SENZA password, giusto per saper il nome dell'utente/fornitore corrente.

    Programmare vuol dire TROVARE SOLUZIONI A PROBLEMI non solo scrivere codice!
  • Re: Comprensione traccia progetto

    Il professore ha buttato giù una bozza dove tutto era protetto da authorized e ti riportava alla pagina di login con user e password.
    Anche nella tabella utenti del professore erano presenti email e password per login.
    Il mio problema è che non so cosa deve fare l'applicazione, non ne capisco la logica visto che può essere vista in mille modi differenti quella traccia.
    Per esempio il professore nella bozza aveva creato la tabella "utenti" con il riferimento alla tabella "fornitori" che può essere nullable.
    Ora le possibilità sono che l'utente non è un cliente, ma un dipendente e quindi fa riferimento ad un solo fornitore e il campo nullable è stato messo perché non gestiva i fornitori nell'applicazione di prova.
    Oppure utenti è utilizzato per riconoscere il fornitore, ma in questo caso aveva più senso mettere un riferimento a utente sul fornitore e non viceversa. Quindi un fornitore si identifica dal fatto che ha valorizzato idfornitore all'interno della tabella utenti.
    So che programmare è trovare soluzioni a problemi, ma se non capisco il problema difficilmente riesco a trovare una soluzione, nel primo messaggio ho dimenticato di scrivere che il professore già aveva iniziato l'applicazione durante il corso e aveva gestito il crud degli utenti, l'autenticazione con login e aveva buttato giù le tabelle del db.
    Siccome non risponde alle mail per chiarimenti non so.che direzione prendere, la soluzione sarebbe che fisso io delle regole, ma se le regole poi non gli vanno bene?
  • Re: Comprensione traccia progetto

    Il progetto e' ragionevolmente complesso.
    I progetti complessi non si implementano in un colpo solo, ma si realizza una versione preliminare con le funzionalita' base e poi si migliora/corregge/estende fino ad avere la versione definitiva.

    Inizia con le cose piu' semplici e poi aggiungi quello che manca.

    SE hai letto il post precedente, hai TUTTO quello che serve per iniziare.

    SE non lo hai letto o letto e non capito, beh, questo e' un bel guaio!
  • Re: Comprensione traccia progetto

    Nono, già ho iniziato. Ho fatto una scaletta delle funzionalità e ora le implemento piano piano.
    Alla fine è un esame da sei crediti e non mi danno l'anima per farlo.
    Solo che sinceramente non capendo quello che dovevo fare non sapevo da dove iniziare.
    Penso che quando si dà una traccia da sviluppare bisogna essere chiari, sicuramente il professore ha tanta esperienza in questo ambito e quindi per lui è banale come funziona, ma io che sto lavorando in tutt'altro ambito faccio fatica a capire come potrebbe funzionare un portale fornitori
Devi accedere o registrarti per scrivere nel forum
6 risposte