% ===== ===== % Use case 3 % ===== ===== \subsection{Σενάριο χρήσης 3: Δημιουργία νέου θέματος} \label{subsection:3-4-use-case-create-topic} Το σενάριο χρήσης 3, <ΣΧ-3>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την δημιουργία ενός θέματος. Στους πίνακες \ref{table:3-4-use-case-create-topic} και \ref{table:3-4-use-case-create-topic-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-3> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-create-topic-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής. \useCaseTable {Δημιουργώ νέο θέμα} {Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο θέμα.} {\ref{srs:functional-srs-create-topic}, \ref{srs:functional-srs-create-polls}} {\ref{srs:non-functional-srs-minimize-fees}} {Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.} {Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην αρχική σελίδα.} {Σενάριο χρήσης 3, δημιουργία νέου θέματος.} {\label{table:3-4-use-case-create-topic}} % ===== Base flow ===== \useCaseBaseFlowTable { 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Θέματος''. \\ [0.5ex] \midrule 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα στο blockchain. \\ [0.5ex] \midrule 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex] } {Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} {Σενάριο χρήσης 3 - Βασική ροή} {\label{table:3-4-use-case-create-topic-base-flow}} \begin{figure}[H] \centering \input{tikz/chapter-3/3-4-use-case-create-topic-sequence-diagram} \caption{Σενάριο χρήσης 3 - Διάγραμμα βασικής ροής} \label{figure:3-4-use-case-create-topic-base-flow-sequence-diagram} \end{figure} % ===== Alternate flow ===== Το <ΣΧ-3> περιέχει επίσης δύο εναλλακτικές ροές που μπορεί να προκύψουν βάσει των επιλογών του χρήστη και οι οποίες περιγράφονται στους πίνακες \ref{table:3-4-use-case-create-topic-alternate-flow-1} και \ref{table:3-4-use-case-create-topic-alternate-flow-2}. Η εναλλακτική ροή 1 φαίνεται επίσης στο σχήμα \ref{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} όπου παρουσιάζεται το διάγραμμα ροής της. \useCaseAlternateFlowTable {1} {Ο χρήστης δημιουργεί ψηφοφορία.} {Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Προσθήκη Ψηφοφορίας'' το σύστημα ανανεώνει την σελίδα προσθέτοντας τα επιπλέον πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''.} { 1 & Ο χρήστης, αφού συμπληρώσει τη φόρμα ``Δημιουργία Θέματος'', πατάει το κουμπί ``Προσθήκη ψηφοφορίας'' & Το σύστημα ανανεώνει τη σελίδα με τα πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''. \\ [0.5ex] \midrule 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει το νέο θέμα καθώς και τη νέα ψηφοφορία στο blockchain. \\ [0.5ex] \midrule 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος και της ψηφοφορίας στις προσωπικές βάσεις OrbitDb του χρήστη. } {Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} {Σενάριο χρήσης 3 - Εναλλακτική ροή 1} {\label{table:3-4-use-case-create-topic-alternate-flow-1}} \begin{figure}[H] \centering \input{tikz/chapter-3/3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} \caption{Σενάριο χρήσης 3 - Διάγραμμα εναλλακτικής ροής 1} \label{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} \end{figure} \useCaseAlternateFlowTable {2} {Ο χρήστης πατάει το κουμπί ``Άκυρο''.} {Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής ή στη γραμμή 2 της Εναλλακτικής Ροής 1 επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.} { 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. } {Το σενάριο χρήσης τερματίζεται.} {Σενάριο χρήσης 3 - Εναλλακτική ροή 2} {\label{table:3-4-use-case-create-topic-alternate-flow-2}}