diff --git a/chapters/3.application-design/3.4.use-cases.tex b/chapters/3.application-design/3.4.use-cases.tex index 824bb70..551ed23 100644 --- a/chapters/3.application-design/3.4.use-cases.tex +++ b/chapters/3.application-design/3.4.use-cases.tex @@ -4,298 +4,9 @@ Παρατίθενται εδώ τα σενάρια χρήσης που δίνουν τις απαραίτητες πληροφορίες για την κατανόηση της λειτουργίας του συστήματος. -% ===== ===== -% Use case 1 -% ===== ===== -\subsection{Σενάριο χρήσης 1: Εγγραφή χρήστη} \label{subsection:3-4-use-case-signup} - -\useCaseTable -{Εγγράφομαι στο σύστημα} -{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης να μπορεί να εγγραφεί στο σύστημα ως χρήστης.} -{TODO} -{TODO} -{Ο επισκέπτης πατάει το κουμπί εγγραφή.} -{Ο επισκέπτης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.} -{Σενάριο χρήσης 1, εγγραφή χρήστη στο σύστημα.} -{3-4-use-case-sign-up} - -\useCaseBaseFlowTable -{ - 1 & Ο χρήστης πατάει το κουμπί εγγραφή. & Το σύστημα εμφανίζει την φόρμα ``Εγγραφή Χρήστη''. \\ [0.5ex] - \midrule - 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο χρήστη στο blockchain. \\ [0.5ex] - \midrule - 3 & - & Το σύστημα δημιουργεί τις προσωπικές βάσεις βάσεις δεδομένων OrbitDb του χρήστη. \\ [0.5ex] - \midrule - 4 & - & Το σύστημα εμφανίζει την φόρμα ``Πληροφορίες Χρήστη''. \\ [0.5ex] - \midrule - 5 & Ο χρήστης συμπληρώνει τις προσωπικές του πληροφορίες και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει τις πληροφορίες χρήστη στην προσωπική του βάση OrbitDb. \\ [0.5ex] -} -{Το σύστημα μεταβαίνει στην αρχική σελίδα της εφαρμογής.} -{Σενάριο χρήσης 1 - Βασική ροή} -{3-4-use-case-sign-up-base-flow} - -\useCaseAlternateFlowTable -{1} -{Τα στοιχεία χρήστη είναι λανθασμένα.} -{Εφόσον ο χρήστης στη γραμμή 2 δεν συμπληρώσει το πεδίο ονόματος χρήστη ή συμπληρώσει ένα όνομα χρήστη το οποίο είναι ήδη σε χρήση στο σύστημα, το σύστημα πρέπει να επιστρέψει σχετικό μήνυμα σφάλματος.} -{ - 1 & - & Το σύστημα εμφανίζει μήνυμα σφάλματος. -} -{Το σύστημα επιστρέφει στη γραμμή 1 της βασικής ροής.} -{Σενάριο χρήσης 1 - Εναλλακτική ροή 1} -{3-4-use-case-sign-up-alternate-flow-1} - -\useCaseAlternateFlowTable -{2} -{Ο χρήστης πατάει το κουμπί ``Άκυρο''.} -{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.} -{ - 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. -} -{Το σενάριο χρήσης τερματίζεται.} -{Σενάριο χρήσης 1 - Εναλλακτική ροή 2} -{3-4-use-case-sign-up-alternate-flow-2} - -\useCaseAlternateFlowTable -{3} -{Ο χρήστης πατάει το κουμπί ``Παράληψη''.} -{Εφόσον ο χρήστης στη γραμμή 5 της Βασικής Ροής επιλέξει ``Παράληψη'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.} -{ - 1 & Ο χρήστης πατάει το κουμπί ``Παράληψη'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. -} -{Το σενάριο χρήσης τερματίζεται.} -{Σενάριο χρήσης 1 - Εναλλακτική ροή 3} -{3-4-use-case-sign-up-alternate-flow-3} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-sign-up-sequence-diagram} - \caption{Σενάριο χρήσης 1 - Διάγραμμα βασικής ροής} - \label{figure:3-4-use-case-sign-up-base-flow-sequence-diagram} -\end{figure} - -% ===== ===== -% Use case 2 -% ===== ===== -\subsection{Σενάριο χρήσης 2: Δημιουργία νέου θέματος} \label{subsection:3-4-use-case-create-topic} - -\useCaseTable -{Δημιουργώ νέο θέμα} -{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο θέμα.} -{TODO} -{TODO} -{Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.} -{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην αρχική σελίδα.} -{Σενάριο χρήσης 2, δημιουργία νέου θέματος.} -{3-4-use-case-create-topic} - -\useCaseBaseFlowTable -{ - 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Θέματος''. \\ [0.5ex] - \midrule - 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα στο blockchain. \\ [0.5ex] - \midrule - 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex] -} -{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} -{Σενάριο χρήσης 2 - Βασική ροή} -{3-4-use-case-create-topic-base-flow} - -\useCaseAlternateFlowTable -{1} -{Ο χρήστης δημιουργεί ψηφοφορία.} -{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Προσθήκη Ψηφοφορίας'' το σύστημα ανανεώνει την σελίδα προσθέτοντας τα επιπλέον πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''.} -{ - 1 & Ο χρήστης, αφού συμπληρώσει τη φόρμα ``Δημιουργία Θέματος'', πατάει το κουμπί ``Προσθήκη ψηφοφορίας'' & Το σύστημα ανανεώνει τη σελίδα με τα πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''. \\ [0.5ex] - \midrule - 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει το νέο θέμα καθώς και τη νέα ψηφοφορία στο blockchain. \\ [0.5ex] - \midrule - 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος και της ψηφοφορίας στις προσωπικές βάσεις OrbitDb του χρήστη. -} -{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} -{Σενάριο χρήσης 2 - Εναλλακτική ροή 1} -{3-4-use-case-create-topic-alternate-flow-1} - -\useCaseAlternateFlowTable -{2} -{Ο χρήστης πατάει το κουμπί ``Άκυρο''.} -{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής ή στη γραμμή 2 της Εναλλακτικής Ροής 1 επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.} -{ - 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. -} -{Το σενάριο χρήσης τερματίζεται.} -{Σενάριο χρήσης 2 - Εναλλακτική ροή 2} -{3-4-use-case-create-topic-alternate-flow-2} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-create-topic-sequence-diagram} - \caption{Σενάριο χρήσης 2 - Διάγραμμα βασικής ροής} - \label{figure:3-4-use-case-create-topic-base-flow-sequence-diagram} -\end{figure} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} - \caption{Σενάριο χρήσης 2 - Διάγραμμα εναλλακτικής ροής 1} - \label{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} -\end{figure} - -% ===== ===== -% Use case 3 -% ===== ===== -\subsection{Σενάριο χρήσης 3: Ανάκτηση θέματος} \label{subsection:3-4-use-case-fetch-topic} - -\useCaseTable -{Ανακτώ ένα θέμα} -{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης ή ο χρήστης να μπορεί να ανακτήσει ένα θέμα.} -{TODO} -{TODO} -{Ο επισκέπτης ή χρήστης πατάει σε ένα από τα θέματα.} -{Ο επισκέπτης ή χρήστης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.} -{Σενάριο χρήσης 3, ανάκτηση θέματος.} -{3-4-use-case-fetch-topic} - -\useCaseBaseFlowTable -{ - 1 & Ο χρήστης πατάει σε ένα από τα θέματα της λίστας. & Το σύστημα ανακτά τις πληροφορίες του θέματος από το blockchain. \\ [0.5ex] - \midrule - 2 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex] -} -{Το σύστημα μεταβαίνει στην σελίδα του θέματος.} -{Σενάριο χρήσης 3 - Βασική ροή} -{3-4-use-case-fetch-topic-base-flow} - -\useCaseAlternateFlowTable -{1} -{Το θέμα περιέχει ψηφοφορία.} -{Εφόσον το θέμα που ανακτήθηκε στη γραμμή 1 της Βασικής Ροής περιέχει ψηφοφορία ανακτώνται οι πληροφορίες της.} -{ - 1 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex] - 2 & - & Το σύστημα ανακτά την ψηφοφορία από το blockchain. \\ [0.5ex] - 3 & - & Το σύστημα ανακτά τις πληροφορίες της ψηφοφορίας αντιγράφοντας την προσωπική βάση OrbitDb του συγγραφέα. \\ [0.5ex] - 4 & - & Το σύστημα επιβεβαιώνει τις πληροφορίες της ψηφοφορίας με βάση το hash που έχει ανακτηθεί από το blockchain. \\ [0.5ex] -} -{Το σενάριο χρήσης τερματίζεται.} -{Σενάριο χρήσης 3 - Εναλλακτική ροή 1} -{3-4-use-case-fetch-topic-alternate-flow-1} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-fetch-topic-sequence-diagram} - \caption{Σενάριο χρήσης 3 - Διάγραμμα βασικής ροής} - \label{figure:3-4-use-case-fetch-topic-base-flow-sequence-diagram} -\end{figure} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} - \caption{Σενάριο χρήσης 3 - Διάγραμμα εναλλακτικής ροής 1} - \label{figure:3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} -\end{figure} - -% ===== ===== -% Use case 4 -% ===== ===== -\subsection{Σενάριο χρήσης 4: Δημιουργία νέου μηνύματος} \label{subsection:3-4-use-case-create-post} - -\useCaseTable -{Δημιουργώ νέο μήνυμα} -{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο μήνυμα.} -{TODO} -{TODO} -{Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος.} -{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος.} -{Σενάριο χρήσης 4, δημιουργία νέου μηνύματος.} -{3-4-use-case-create-post} - -\useCaseBaseFlowTable -{ - 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Μηνύματος''. \\ [0.5ex] - \midrule - 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο μήνυμα στο blockchain. \\ [0.5ex] - \midrule - 3 & - & Το σύστημα εισάγει τις πληροφορίες του μηνύματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex] -} -{Το σύστημα παραμένει στη σελίδα του θέματος εμφανίζοντας το νέο μήνυμα.} -{Σενάριο χρήσης 4 - Βασική ροή} -{3-4-use-case-create-post-base-flow} - -\useCaseAlternateFlowTable -{1} -{Ο χρήστης πατάει το κουμπί ``Άκυρο''.} -{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στη σελίδα του θέματος.} -{ - 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στη σελίδα του θέματος. -} -{Το σενάριο χρήσης τερματίζεται.} -{Σενάριο χρήσης 4 - Εναλλακτική ροή 1} -{3-4-use-case-create-post-alternate-flow-1} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-create-post-sequence-diagram} - \caption{Σενάριο χρήσης 4 - Διάγραμμα βασικής ροής} - \label{figure:3-4-use-case-create-post-base-flow-sequence-diagram} -\end{figure} - -% ===== ===== -% Use case 5 -% ===== ===== -\subsection{Σενάριο χρήσης 5: Ψήφιση σε ψηφοφορία} \label{subsection:3-4-use-case-vote-in-poll} - -\useCaseTable -{Ψηφίζω σε ψηφοφορία} -{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να ψηφίσει σε μία ψηφοφορία.} -{TODO} -{TODO} -{Ο χρήστης πατάει το κουμπί ψηφοφορίας.} -{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει ψηφοφορία.} -{Σενάριο χρήσης 5, ψήφιση σε ψηφοφορία.} -{3-4-use-case-vote-in-poll} - -\useCaseBaseFlowTable -{ - 1 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο στο blockchain. \\ [0.5ex] -} -{Το σύστημα ανανεώνει τις πληροφορίες της ψηφοφορίας.} -{Σενάριο χρήσης 5 - Βασική ροή} -{3-4-use-case-vote-in-poll-base-flow} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-vote-in-poll-sequence-diagram} - \caption{Σενάριο χρήσης 5 - Διάγραμμα βασικής ροής} - \label{figure:3-4-use-case-vote-in-poll-base-flow-sequence-diagram} -\end{figure} - -% ===== ===== -% Use case 6 -% ===== ===== -\subsection{Σενάριο χρήσης 6: Ψήφιση μηνύματος} \label{subsection:3-4-use-case-vote-post} - -\useCaseTable -{Ψηφίζω σε μήνυμα} -{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να υπερψηφίσει ή καταψηφίσει ένα μήνυμα.} -{TODO} -{TODO} -{Ο επισκέπτης πατάει το κουμπί υπερψήφισης ή καταψήφισης.} -{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει τουλάχιστον ένα μήνυμα το οποίο δεν έχει δημιουργήσει ο ίδιος.} -{Σενάριο χρήσης 6, ψήφιση μηνύματος.} -{3-4-use-case-vote-post} - -\useCaseBaseFlowTable -{ - 1 & Ο χρήστης πατάει στο κουμπί υπερψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος στο blockchain. \\ [0.5ex] -} -{Το σύστημα ανανεώνει τις ψήφους του μηνύματος.} -{Σενάριο χρήσης 6 - Βασική ροή} -{3-4-use-case-vote-post-base-flow} - -\begin{figure}[H] - \centering - \input{tikz/chapter-3/3-4-use-case-vote-post-sequence-diagram} - \caption{Σενάριο χρήσης 6 - Διάγραμμα βασικής ροής} - \label{figure:3-4-use-case-vote-post-base-flow-sequence-diagram} -\end{figure} +\input{chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up} +\input{chapters/3.application-design/3.4.use-cases/3.4.2.use-case-create-topic} +\input{chapters/3.application-design/3.4.use-cases/3.4.3.use-case-fetch-topic} +\input{chapters/3.application-design/3.4.use-cases/3.4.4.use-case-create-post} +\input{chapters/3.application-design/3.4.use-cases/3.4.5.use-case-vote-in-poll} +\input{chapters/3.application-design/3.4.use-cases/3.4.6.use-case-vote-post} diff --git a/chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up.tex b/chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up.tex new file mode 100644 index 0000000..c32cf91 --- /dev/null +++ b/chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up.tex @@ -0,0 +1,70 @@ +% ===== ===== +% Use case 1 +% ===== ===== +\subsection{Σενάριο χρήσης 1: Εγγραφή χρήστη} \label{subsection:3-4-use-case-signup} + +\useCaseTable +{Εγγράφομαι στο σύστημα} +{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης να μπορεί να εγγραφεί στο σύστημα ως χρήστης.} +{TODO} +{TODO} +{Ο επισκέπτης πατάει το κουμπί εγγραφή.} +{Ο επισκέπτης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.} +{Σενάριο χρήσης 1, εγγραφή χρήστη στο σύστημα.} +{3-4-use-case-sign-up} + +\useCaseBaseFlowTable +{ + 1 & Ο χρήστης πατάει το κουμπί εγγραφή. & Το σύστημα εμφανίζει την φόρμα ``Εγγραφή Χρήστη''. \\ [0.5ex] + \midrule + 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο χρήστη στο blockchain. \\ [0.5ex] + \midrule + 3 & - & Το σύστημα δημιουργεί τις προσωπικές βάσεις βάσεις δεδομένων OrbitDb του χρήστη. \\ [0.5ex] + \midrule + 4 & - & Το σύστημα εμφανίζει την φόρμα ``Πληροφορίες Χρήστη''. \\ [0.5ex] + \midrule + 5 & Ο χρήστης συμπληρώνει τις προσωπικές του πληροφορίες και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει τις πληροφορίες χρήστη στην προσωπική του βάση OrbitDb. \\ [0.5ex] +} +{Το σύστημα μεταβαίνει στην αρχική σελίδα της εφαρμογής.} +{Σενάριο χρήσης 1 - Βασική ροή} +{3-4-use-case-sign-up-base-flow} + +\useCaseAlternateFlowTable +{1} +{Τα στοιχεία χρήστη είναι λανθασμένα.} +{Εφόσον ο χρήστης στη γραμμή 2 δεν συμπληρώσει το πεδίο ονόματος χρήστη ή συμπληρώσει ένα όνομα χρήστη το οποίο είναι ήδη σε χρήση στο σύστημα, το σύστημα πρέπει να επιστρέψει σχετικό μήνυμα σφάλματος.} +{ + 1 & - & Το σύστημα εμφανίζει μήνυμα σφάλματος. +} +{Το σύστημα επιστρέφει στη γραμμή 1 της βασικής ροής.} +{Σενάριο χρήσης 1 - Εναλλακτική ροή 1} +{3-4-use-case-sign-up-alternate-flow-1} + +\useCaseAlternateFlowTable +{2} +{Ο χρήστης πατάει το κουμπί ``Άκυρο''.} +{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.} +{ + 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. +} +{Το σενάριο χρήσης τερματίζεται.} +{Σενάριο χρήσης 1 - Εναλλακτική ροή 2} +{3-4-use-case-sign-up-alternate-flow-2} + +\useCaseAlternateFlowTable +{3} +{Ο χρήστης πατάει το κουμπί ``Παράληψη''.} +{Εφόσον ο χρήστης στη γραμμή 5 της Βασικής Ροής επιλέξει ``Παράληψη'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.} +{ + 1 & Ο χρήστης πατάει το κουμπί ``Παράληψη'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. +} +{Το σενάριο χρήσης τερματίζεται.} +{Σενάριο χρήσης 1 - Εναλλακτική ροή 3} +{3-4-use-case-sign-up-alternate-flow-3} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-sign-up-sequence-diagram} + \caption{Σενάριο χρήσης 1 - Διάγραμμα βασικής ροής} + \label{figure:3-4-use-case-sign-up-base-flow-sequence-diagram} +\end{figure} diff --git a/chapters/3.application-design/3.4.use-cases/3.4.2.use-case-create-topic.tex b/chapters/3.application-design/3.4.use-cases/3.4.2.use-case-create-topic.tex new file mode 100644 index 0000000..ad79236 --- /dev/null +++ b/chapters/3.application-design/3.4.use-cases/3.4.2.use-case-create-topic.tex @@ -0,0 +1,66 @@ +% ===== ===== +% Use case 2 +% ===== ===== +\subsection{Σενάριο χρήσης 2: Δημιουργία νέου θέματος} \label{subsection:3-4-use-case-create-topic} + +\useCaseTable +{Δημιουργώ νέο θέμα} +{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο θέμα.} +{TODO} +{TODO} +{Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.} +{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην αρχική σελίδα.} +{Σενάριο χρήσης 2, δημιουργία νέου θέματος.} +{3-4-use-case-create-topic} + +\useCaseBaseFlowTable +{ + 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Θέματος''. \\ [0.5ex] + \midrule + 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα στο blockchain. \\ [0.5ex] + \midrule + 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex] +} +{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} +{Σενάριο χρήσης 2 - Βασική ροή} +{3-4-use-case-create-topic-base-flow} + +\useCaseAlternateFlowTable +{1} +{Ο χρήστης δημιουργεί ψηφοφορία.} +{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Προσθήκη Ψηφοφορίας'' το σύστημα ανανεώνει την σελίδα προσθέτοντας τα επιπλέον πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''.} +{ + 1 & Ο χρήστης, αφού συμπληρώσει τη φόρμα ``Δημιουργία Θέματος'', πατάει το κουμπί ``Προσθήκη ψηφοφορίας'' & Το σύστημα ανανεώνει τη σελίδα με τα πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''. \\ [0.5ex] + \midrule + 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει το νέο θέμα καθώς και τη νέα ψηφοφορία στο blockchain. \\ [0.5ex] + \midrule + 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος και της ψηφοφορίας στις προσωπικές βάσεις OrbitDb του χρήστη. +} +{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} +{Σενάριο χρήσης 2 - Εναλλακτική ροή 1} +{3-4-use-case-create-topic-alternate-flow-1} + +\useCaseAlternateFlowTable +{2} +{Ο χρήστης πατάει το κουμπί ``Άκυρο''.} +{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής ή στη γραμμή 2 της Εναλλακτικής Ροής 1 επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.} +{ + 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. +} +{Το σενάριο χρήσης τερματίζεται.} +{Σενάριο χρήσης 2 - Εναλλακτική ροή 2} +{3-4-use-case-create-topic-alternate-flow-2} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-create-topic-sequence-diagram} + \caption{Σενάριο χρήσης 2 - Διάγραμμα βασικής ροής} + \label{figure:3-4-use-case-create-topic-base-flow-sequence-diagram} +\end{figure} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} + \caption{Σενάριο χρήσης 2 - Διάγραμμα εναλλακτικής ροής 1} + \label{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} +\end{figure} diff --git a/chapters/3.application-design/3.4.use-cases/3.4.3.use-case-fetch-topic.tex b/chapters/3.application-design/3.4.use-cases/3.4.3.use-case-fetch-topic.tex new file mode 100644 index 0000000..1a7048f --- /dev/null +++ b/chapters/3.application-design/3.4.use-cases/3.4.3.use-case-fetch-topic.tex @@ -0,0 +1,52 @@ +% ===== ===== +% Use case 3 +% ===== ===== +\subsection{Σενάριο χρήσης 3: Ανάκτηση θέματος} \label{subsection:3-4-use-case-fetch-topic} + +\useCaseTable +{Ανακτώ ένα θέμα} +{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης ή ο χρήστης να μπορεί να ανακτήσει ένα θέμα.} +{TODO} +{TODO} +{Ο επισκέπτης ή χρήστης πατάει σε ένα από τα θέματα.} +{Ο επισκέπτης ή χρήστης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.} +{Σενάριο χρήσης 3, ανάκτηση θέματος.} +{3-4-use-case-fetch-topic} + +\useCaseBaseFlowTable +{ + 1 & Ο χρήστης πατάει σε ένα από τα θέματα της λίστας. & Το σύστημα ανακτά τις πληροφορίες του θέματος από το blockchain. \\ [0.5ex] + \midrule + 2 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex] +} +{Το σύστημα μεταβαίνει στην σελίδα του θέματος.} +{Σενάριο χρήσης 3 - Βασική ροή} +{3-4-use-case-fetch-topic-base-flow} + +\useCaseAlternateFlowTable +{1} +{Το θέμα περιέχει ψηφοφορία.} +{Εφόσον το θέμα που ανακτήθηκε στη γραμμή 1 της Βασικής Ροής περιέχει ψηφοφορία ανακτώνται οι πληροφορίες της.} +{ + 1 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex] + 2 & - & Το σύστημα ανακτά την ψηφοφορία από το blockchain. \\ [0.5ex] + 3 & - & Το σύστημα ανακτά τις πληροφορίες της ψηφοφορίας αντιγράφοντας την προσωπική βάση OrbitDb του συγγραφέα. \\ [0.5ex] + 4 & - & Το σύστημα επιβεβαιώνει τις πληροφορίες της ψηφοφορίας με βάση το hash που έχει ανακτηθεί από το blockchain. \\ [0.5ex] +} +{Το σενάριο χρήσης τερματίζεται.} +{Σενάριο χρήσης 3 - Εναλλακτική ροή 1} +{3-4-use-case-fetch-topic-alternate-flow-1} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-fetch-topic-sequence-diagram} + \caption{Σενάριο χρήσης 3 - Διάγραμμα βασικής ροής} + \label{figure:3-4-use-case-fetch-topic-base-flow-sequence-diagram} +\end{figure} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} + \caption{Σενάριο χρήσης 3 - Διάγραμμα εναλλακτικής ροής 1} + \label{figure:3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} +\end{figure} diff --git a/chapters/3.application-design/3.4.use-cases/3.4.4.use-case-create-post.tex b/chapters/3.application-design/3.4.use-cases/3.4.4.use-case-create-post.tex new file mode 100644 index 0000000..c317c17 --- /dev/null +++ b/chapters/3.application-design/3.4.use-cases/3.4.4.use-case-create-post.tex @@ -0,0 +1,44 @@ +% ===== ===== +% Use case 4 +% ===== ===== +\subsection{Σενάριο χρήσης 4: Δημιουργία νέου μηνύματος} \label{subsection:3-4-use-case-create-post} + +\useCaseTable +{Δημιουργώ νέο μήνυμα} +{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο μήνυμα.} +{TODO} +{TODO} +{Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος.} +{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος.} +{Σενάριο χρήσης 4, δημιουργία νέου μηνύματος.} +{3-4-use-case-create-post} + +\useCaseBaseFlowTable +{ + 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Μηνύματος''. \\ [0.5ex] + \midrule + 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο μήνυμα στο blockchain. \\ [0.5ex] + \midrule + 3 & - & Το σύστημα εισάγει τις πληροφορίες του μηνύματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex] +} +{Το σύστημα παραμένει στη σελίδα του θέματος εμφανίζοντας το νέο μήνυμα.} +{Σενάριο χρήσης 4 - Βασική ροή} +{3-4-use-case-create-post-base-flow} + +\useCaseAlternateFlowTable +{1} +{Ο χρήστης πατάει το κουμπί ``Άκυρο''.} +{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στη σελίδα του θέματος.} +{ + 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στη σελίδα του θέματος. +} +{Το σενάριο χρήσης τερματίζεται.} +{Σενάριο χρήσης 4 - Εναλλακτική ροή 1} +{3-4-use-case-create-post-alternate-flow-1} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-create-post-sequence-diagram} + \caption{Σενάριο χρήσης 4 - Διάγραμμα βασικής ροής} + \label{figure:3-4-use-case-create-post-base-flow-sequence-diagram} +\end{figure} diff --git a/chapters/3.application-design/3.4.use-cases/3.4.5.use-case-vote-in-poll.tex b/chapters/3.application-design/3.4.use-cases/3.4.5.use-case-vote-in-poll.tex new file mode 100644 index 0000000..c59403a --- /dev/null +++ b/chapters/3.application-design/3.4.use-cases/3.4.5.use-case-vote-in-poll.tex @@ -0,0 +1,29 @@ +% ===== ===== +% Use case 5 +% ===== ===== +\subsection{Σενάριο χρήσης 5: Ψήφιση σε ψηφοφορία} \label{subsection:3-4-use-case-vote-in-poll} + +\useCaseTable +{Ψηφίζω σε ψηφοφορία} +{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να ψηφίσει σε μία ψηφοφορία.} +{TODO} +{TODO} +{Ο χρήστης πατάει το κουμπί ψηφοφορίας.} +{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει ψηφοφορία.} +{Σενάριο χρήσης 5, ψήφιση σε ψηφοφορία.} +{3-4-use-case-vote-in-poll} + +\useCaseBaseFlowTable +{ + 1 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο στο blockchain. \\ [0.5ex] +} +{Το σύστημα ανανεώνει τις πληροφορίες της ψηφοφορίας.} +{Σενάριο χρήσης 5 - Βασική ροή} +{3-4-use-case-vote-in-poll-base-flow} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-vote-in-poll-sequence-diagram} + \caption{Σενάριο χρήσης 5 - Διάγραμμα βασικής ροής} + \label{figure:3-4-use-case-vote-in-poll-base-flow-sequence-diagram} +\end{figure} diff --git a/chapters/3.application-design/3.4.use-cases/3.4.6.use-case-vote-post.tex b/chapters/3.application-design/3.4.use-cases/3.4.6.use-case-vote-post.tex new file mode 100644 index 0000000..d8f46af --- /dev/null +++ b/chapters/3.application-design/3.4.use-cases/3.4.6.use-case-vote-post.tex @@ -0,0 +1,29 @@ +% ===== ===== +% Use case 6 +% ===== ===== +\subsection{Σενάριο χρήσης 6: Ψήφιση μηνύματος} \label{subsection:3-4-use-case-vote-post} + +\useCaseTable +{Ψηφίζω σε μήνυμα} +{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να υπερψηφίσει ή καταψηφίσει ένα μήνυμα.} +{TODO} +{TODO} +{Ο επισκέπτης πατάει το κουμπί υπερψήφισης ή καταψήφισης.} +{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει τουλάχιστον ένα μήνυμα το οποίο δεν έχει δημιουργήσει ο ίδιος.} +{Σενάριο χρήσης 6, ψήφιση μηνύματος.} +{3-4-use-case-vote-post} + +\useCaseBaseFlowTable +{ + 1 & Ο χρήστης πατάει στο κουμπί υπερψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος στο blockchain. \\ [0.5ex] +} +{Το σύστημα ανανεώνει τις ψήφους του μηνύματος.} +{Σενάριο χρήσης 6 - Βασική ροή} +{3-4-use-case-vote-post-base-flow} + +\begin{figure}[H] + \centering + \input{tikz/chapter-3/3-4-use-case-vote-post-sequence-diagram} + \caption{Σενάριο χρήσης 6 - Διάγραμμα βασικής ροής} + \label{figure:3-4-use-case-vote-post-base-flow-sequence-diagram} +\end{figure} diff --git a/thesis.pdf b/thesis.pdf index 0f75c3a..bcb689d 100644 Binary files a/thesis.pdf and b/thesis.pdf differ