\section{Σενάριο δοκιμής της εφαρμογής}

Δημιουργία νέου λογαριασμού χρήστη: Ο χρήστης βρίσκεται στην αρχική οθόνη σύνδεσης σε υπάρχων λογαριασμό αλλά πατάει στο κείμενο ``or sign up'', εάν είναι συνδεδεμένος σε κάποιο λογαριασμό κάνει πρώτα Logout, συμπληρώνει τα στοιχεία του και μετά πατάει το κουμπί (SIGN UP).

Σύνδεση χρήστη σε υπάρχων λογαριασμό:  Ο χρήστης βρίσκεται στην αρχική οθόνη σύνδεσης σε υπάρχων λογαριασμό, συμπληρώνει το Username του ή το e-mail του και τον κωδικό του και πατάει το κουμπί (LOGIN).

Εμφάνιση επιλογών της εφαρμογής: Ο χρήστης πατάει το πάνω αριστερά κουμπί ή κάνει ``Swipe Right'' από την αριστερή άκρη της οθόνης για την εμφάνιση των επιλογών.

Πλοήγηση στα διαθέσιμα εστιατόρια της βάσης: Ο χρήστης κάνει εμφάνιση επιλογών πατάει το κουμπί ``Home'' και πλέον βρίσκεται στην οθόνη της λίστας των καταστημάτων. Ο χρήστης μπορεί να κάνει πλοήγηση στο χάρτη της εφαρμογής. Έπειτα εφαρμόζει κάποιο φίλτρο στα διαθέσιμα καταστήματα εάν αυτός/η επιθυμεί. Ο χρήστης επιλέγει ένα από τα διαθέσιμα καταστήματα της λίστας καταστημάτων.

Πλοήγηση στο χάρτη της εφαρμογής: Ο χρήστης βρίσκεται στην οθόνη της λίστας των καταστημάτων και πατάει το 2ο κουμπί στην πάνω δεξιά μεριά της οθόνης ή κάνει ``Swipe Left'' από την δεξιά άκρη της οθόνης. Έπειτα μπορεί να επιστρέψει ξανά στη λίστα των καταστημάτων πατώντας το 2ο κουμπί στην πάνω δεξιά μεριά της οθόνης ή το φυσικό κουμπί ``Πίσω''.

Φιλτράρισμα διαθέσιμων καταστημάτων: Ο χρήστης βρίσκεται στην λίστα καταστημάτων ή στον χάρτη προβολής των διαθέσιμων καταστημάτων και πατάει το 1ο κουμπί στην πάνω δεξιά μεριά της οθόνης. Κατά το φιλτράρισμα ο χρήστης μπορεί να επιλέξει 1. συγκεκριμένα είδη καταστημάτων ή 2. καταστήματα τα οποία έχουν απόσταση σε μέτρα από την θέση του μικρότερη ή ίση της τιμής που αυτός εισάγει στο αναδυόμενο παράθυρο (η εφαρμογή κάποιες φορές δεν ανακτά την θέση της συσκευής οπότε η λειτουργία αυτή ενδέχεται να μην δουλεύει πάντα) ή 3. καταστήματα τα οποία προσφέρουν πιάτα των οποίων οι θερμίδες δεν ξεπερνούν μια τιμή την οποία ο χρήστης εισάγει στο αναδυόμενο παράθυρο.

Προσθήκη/Πρόταση προσθήκης νέου καταστήματος: Ο χρήστης βρίσκεται στην οθόνη της λίστας των καταστημάτων και πατάει το κουμπί (+). Έπειτα μετακινεί το στίγμα στο χάρτη στη θέση στην οποία βρίσκεται το κατάστημα, εισάγει το όνομα του καταστήματος, επιλέγει είδος καταστήματος και εισάγει το ωράριο λειτουργίας του, τέλος πατάει το κουμπί (ADD RESTAURANT). 

Προσθήκη/Πρόταση προσθήκης νέου πιάτου/ποτού σε κατάστημα: Ο χρήστης επιλέγει ένα κατάστημα έπειτα από πλοήγηση στα διαθέσιμα καταστήματα, μεταβαίνει στην καρτέλα FOOD/DRINK και και πατάει το κουμπί (+). Έπειτα εισάγει το όνομα του πιάτου/ποτού και μια περιγραφή του. Στην συνέχεια προσθέτει τα συστατικά τα οποία περιέχει το πιάτο/ποτό και τέλος πατάει το κουμπί (ADD FOOD/DRINK)

Προσθήκη νέου συστατικού στη βάση: Ο χρήστης μεταβαίνει στην οθόνη της λίστας των συστατικών της βάσης αφού κάνει εμφάνιση επιλογών της εφαρμογής και πατήσει το κουμπί Ingredients. Έπειτα πατάει το κουμπί (+), εισάγει το όνομα του συστατικού και εάν αυτό περιέχει αλκοόλ, τέλος πατάει το κουμπί (ADD INGREDIENT).

Προσθήκη/Πρόταση προσθήκης νέας δίαιτας στη βάση: Ο χρήστης μεταβαίνει στην οθόνη της λίστας των δίαιτων της βάσης αφού κάνει εμφάνιση επιλογών της εφαρμογής και πατήσει το κουμπί Diets. Έπειτα πατάει το κουμπί (+), εισάγει το όνομα της δίαιτας, μια περιγραφή της και την λίστα των απαγορευμένων συστατικών της δίαιτας. Τέλος πατάει το κουμπί (ADD DIET).

Τροποποίηση της λίστας των δίαιτων που ακολουθεί ο χρήστης:  Ο χρήστης μεταβαίνει στην οθόνη της λίστας των δίαιτων της βάσης και πατάει το κουμπί προσθήκης για τις δίαιτες τις επιθυμεί να ακολουθήσει. Για τις δίαιτες τις οποίες θέλει να σταματήσει να ακολουθεί πατάει το κουμπί της διαγραφής.

Τροποποίηση της λίστας απαγορευμένων συστατικών του χρήστη: Ο χρήστης μεταβαίνει στην οθόνη της λίστας των συστατικών της βάσης και πατάει το κουμπί προσθήκης/διαγραφής για τα συστατικά τα οποία θέλει να προσθέσει/αφεραίσει από τη λίστα των απαγορευμένων του συστατικών

Αξιολόγηση καταστήματος: Ο χρήστης επιλέγει ένα κατάστημα έπειτα από πλοήγηση στα διαθέσιμα καταστήματα, μεταβαίνει στην καρτέλα RATINGS και πατάει το κουμπί (+). Έπειτα επιλέγει την βαθμολογία αξιολόγησης (1-5) και την προσβασιμότητα σε ΑμΕΑ, επιλέγει προαιρετικά μια δίαιτα με βάση την οποία αξιολογεί το κατάστημα και εισάγει προαιρετικά ένα σχόλιο αξιολόγησης και τέλος πατάει το κουμπί (RATE)

Αξιολόγηση πιάτου/ποτού καταστήματος: Ο χρήστης επιλέγει ένα κατάστημα έπειτα από πλοήγηση στα διαθέσιμα καταστήματα, μεταβαίνει στην καρτέλα FOOD/DRINK και επιλέγει το πιάτο/ποτό το οποίο επιθυμεί να αξιολογήσει, μεταβαίνει στην καρτέλα RATINGS και πατάει το κουμπί (+). Έπειτα επιλέγει την βαθμολογία αξιολόγησης (1-5) και το μέγεθος της μερίδας του πιάτου/ποτού και εισάγει προαιρετικά ένα σχόλιο αξιολόγησης, τέλος πατάει το κουμπί (RATE)

Αποσύνδεση χρήστη: Ο χρήστης εκτελεί την εμφάνιση επιλογών και έπειτα πατάει το κουμπί (Logout)

Αλλαγή ρόλου ενός χρήστη σε διαχειριστή: Ο sysadmin του συστήματος συνδέεται στην ιστοσελίδα διαχείρισης της βάσης Django Administration με διεύθυνση IP:8181/admin. Μεταβαίνει στην τροποποίηση του πίνακα Users και επιλέγει τον χρήστη του οποίου θέλει να αλλάξει τον ρόλο και αλλάζει το χαρακτηριστικό ``Role'' του χρήστη από ``Role object(0)'' σε ``Role object(1)''.

Αποδοχή των προτάσεων προσθήκης καταστημάτων, πιάτων/ποτών και δίαιτων από διαχειριστές: Όταν ο διαχειριστής μεταβαίνει στις οθόνες της λίστας των καταστημάτων, λίστας των πιάτων/ποτών ενός καταστήματος ή της λίστας των δίαιτων της βάσης μπορεί να δει όλα τα αντικείμενα της λίστας, ακόμη και όσα δεν έχουν εγκριθεί. Για τα αντικείμενα τα οποία δεν έχουν εγκριθεί ακόμη υπάρχει ένα κουμπί έγκρισης το οποίο ο διαχειριστής μπορεί να πατήσει για όποια αντικείμενα θεωρεί πως είναι έγκυρα.

Σημείωση: Για τις λειτουργίες προσθήκης οι όποιες αναφέρονται ως πρόταση προσθήκης, όταν οι ενέργειες εκτελούνται από απλούς χρήστες το αποτέλεσμα στην όψη των απλών χρηστών για τις νέες προτάσεις θα είναι διαθέσιμο όταν κάποιος διαχειριστής εγκρίνει αυτή την πρόταση.