\section { Σενάρια χρήσης} \label { section:3-4-use-cases}
Βασικό μέρος της σχεδίασης της πλατφόρμας ήταν η καταγραφή των απαιτήσεων η οποία έγινε στο προηγούμενο κεφάλαιο (\ref { section:3-3-requirements} ) καθώς και η σχεδίαση και ανάπτυξη των σεναρίων χρήσης. Τα σενάρια χρήσης αντιστοιχίζουν πιθανές ενέργειες των χρηστών με αποκρίσεις του συστήματος. Μέσω της αντιστοίχισης αυτής παρουσιάζεται η λειτουργικότητα του συστήματος και περιγράφονται τόσο οι λειτουργικές όσο και οι μη λειτουργικές απαιτήσεις του συστήματος.
Παρατίθενται εδώ τα σενάρια χρήσης που δίνουν τις απαραίτητες πληροφορίες για την κατανόηση της λειτουργίας του συστήματος.
% ===== =====
% 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 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο χρήστη. \\ [0.5ex]
\midrule
3 & - & Το σύστημα εμφανίζει την φόρμα ``Πληροφορίες Χρήστη''. \\ [0.5ex]
\midrule
4 & Ο χρήστης συμπληρώνει τις προσωπικές του πληροφορίες και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει τις πληροφορίες χρήστη. \\ [0.5ex]
}
{ Το σύστημα μεταβαίνει στην αρχική σελίδα της εφαρμογής.}
{ Σενάριο χρήσης 1 - Βασική ροή}
{ 3-4-use-case-sign-up-base-flow}
% ===== =====
% 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 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα. \\ [0.5ex]
}
{ Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.}
{ Σενάριο χρήσης 2 - Βασική ροή}
{ 3-4-use-case-create-topic-base-flow}
% ===== =====
% 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 & Ο χρήστης πατάει σε ένα από τα θέματα της λίστας. & Το σύστημα ανακτά τις πληροφορίες του θέματος. \\ [0.5ex]
}
{ Το σύστημα μεταβαίνει στην σελίδα του θέματος.}
{ Σενάριο χρήσης 3 - Βασική ροή}
{ 3-4-use-case-fetch-topic-base-flow}
% ===== =====
% 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 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο μήνυμα. \\ [0.5ex]
}
{ Το σύστημα παραμένει στη σελίδα του θέματος εμφανίζοντας το νέο μήνυμα.}
{ Σενάριο χρήσης 4 - Βασική ροή}
{ 3-4-use-case-create-post-base-flow}
% ===== =====
% 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 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο. \\ [0.5ex]
}
{ Το σύστημα ανανεώνει τις πληροφορίες της ψηφοφορίας.}
{ Σενάριο χρήσης 5 - Βασική ροή}
{ 3-4-use-case-vote-in-poll-base-flow}
% ===== =====
% 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 & Ο χρήστης πατάει στο κουμπί υπερψήφισης ή καταψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος. \\ [0.5ex]
}
{ Το σύστημα ανανεώνει τις ψήφους του μηνύματος.}
{ Σενάριο χρήσης 6 - Βασική ροή}
{ 3-4-3-4-use-case-vote-post-base-flow}