« Προηγούμενο - Έκδοση 40/52 (diff) - Επόμενο » - Τρέχουσα έκδοση
Ζήσης, Μιχάλης, 19/12/2014 12:08


Wiki

Welcome to the queue_system wiki!

Εισαγωγή

To e-Queue είναι ένα πρόγραμμα, το οποίο έχει ως σκοπό να αποφορτίζει τις ουρές αναμονής σε διάφορες υπηρεσίες, όπως η Εφορία ή ένα νοσοκομείο. Παρέχει στον ενδιαφερόμενο χρήστη, τη δυνατότητα να λαμβάνει σειρά στην ουρά είτε από κάποιο μηχάνημα της υπηρεσίας, είτε ηλεκτρονικά, από τον προσωπικό υπολογιστή του μέσω Internet, χωρίς να βρίσκεται απαραίτητα στο χώρο της υπηρεσίας. Ενημερώνει το χρήστη για την κατάσταση της ουράς κάθε χρονική στιγμή και προσφέρει μία εκτίμηση του χρόνου που θα χρειαστεί να περιμένει μέχρι να εξυπηρετηθεί.

Η εφαρμογή αυτή έχει αναπτυχθεί με 2 διαφορετικές εκδοχές.

1) Το σύστημα της εφαρμογής να είναι ενιαίο με το σύστημα της υπηρεσίας. Δηλαδή η web εφαρμογή να επικοινωνεί με το μηχάνημα της υπηρεσίας που βγάζει χαρτακια και να ακολουθεί την ροή της ουράς.Η προδιαγραφή απαιτήσεων αυτής της έκδοσης παρουσιάζεται παρακάτω.

2) Το σύστημα της εφαρμογής είναι ανεξάρτητο με το σύστημα της υπηρεσίας.Η web εφαρμογή δεν επικοινωνεί με το μηχάνημα της υπηρεσίας άλλα δημιουργεί μια δικιά της ηλεκτρονική ουρά μέσω της οποίας ο πελάτης μπορεί να λάβει χαρτάκι και να πάρει θέση στην ουρά.Έτσι η υπηρεσία αποκτά 2 ουρές , μία πραγματική όπου ο πελάτης βγάζει χαρτάκι από το μηχάνημα και μία ηλεκτρονική όπου ο πελάτης βγάζει χαρτάκι μέσω της web-εφαρμογής.

Το έγγραφο προδιαγραφής απαιτήσεων βρίσκεται εδώ : https://ma.ellak.gr/forge/projects/therino_sxoleip_oures/files

O κώδικας της εφαρμογής βρίσκεται εδώ : https://github.com/nsgeorgi/easy-ticket

To website βρίσκεται εδώ : http://nsgeorgi.webpages.auth.gr/dw

======================================================
Θέματα 1ης Εκδοχής:
302 - Ανάλυση Αναγκών | http://ma.ellak.gr/forge/issues/302
303 - Καθορισμός προδιαγραφών συστήματος | http://ma.ellak.gr/forge/issues/303

Θέματα 2ης Εκδοχής:
335 - Eγγραφή χρήστη-πελάτη | http://ma.ellak.gr/forge/issues/303 ======================================================

[!!!] Το παρακάτω έγγραφο αφορά την 1η εκδοχή!

Λειτουργίες

Παρακάτω παρουσιάζονται οι λειτουργίες που παρέχει το πρόγραμμα στους χρήστες. Οι χρήστες του προγράμματος είναι οι πελάτες της υπηρεσίας, στην οποία χρησιμοποιείται το e-queue και οι υπεύθυνοι υπάλληλοι της υπηρεσίας.

1. Το σύστημα προσφέρει στους πελάτες της υπηρεσίας μία ιστοσελίδα που είναι διαθέσιμη για όλα τα είδη ηλεκτρονικών υπολογιστών (desktop, smartphones κτλ), μέσω της οποίας ο ενδιαφερόμενος μπορεί να λάβει θέση στην ουρά δηλώνοντας τον αριθμό ΑΜΚΑ του.
Η ιστοσελίδα αποτελείται από τα εξής μέρη:
  • Την περιοχή με τις πληροφορίες σχετικά με την ουρά, δηλαδή ποιος αριθμός εξυπηρετείται και ποιος αριθμός εκδόθηκε τελευταίος.
  • Την περιοχή που αφορά την έκδοση νέου αριθμού, όπου περιέχεται η φόρα εισαγωγής ΑΜΚΑ.
  • Την περιοχή που εμφανίζονται μηνύματα σχετικά με την εγκυρότητα του ΑΜΚΑ και της έκδοσης αριθμού.

Κατά τη δήλωση ενός ΑΜΚΑ πραγματοποιούνται έλεγχοι εγκυρότητας οι οποίοι εντοπίζουν μη έγκυρους αριθμούς ΑΜΚΑ και βεβαιώνουν ότι σε κάθε αριθμό ΑΜΚΑ αντιστοιχεί ακριβώς μία θέση στην ουρά και επιτρέπεται να δοθεί νέο νούμερο μόνο αν έχει παρέλθει το προηγούμενο.

2. Για τους υπαλλήλους της υπηρεσίας υπάρχει επίσης μία σελίδα, μέσω της οποίας μπορούν να πραγματοποιήσουν τις παρακάτω λειτουργίες:
  • Να εμφανίζουν μία λίστα με τα ΑΜΚΑ που έχουν καταχωρηθεί καθώς και κάποιες επιπρόσθετες πληροφορίες για το καθένα, όπως τον αριθμό τους στην ουρά και την ημερομηνία και ώρα έκδοσης του εισιτηρίου.
  • Να καθαρίζουν την παραπάνω λίστα.

Υποδομές

Για να υλοποιηθεί το σύστημα χρειάστηκαν τα παρακάτω στοιχεία.
  • Μία βάση δεδομένων, η οποία αποθηκεύει τα ΑΜΚΑ για τα οποία εκδόθηκε εισιτήριο και πληροφορίες για αυτά. Η βάση αυτή χρησιμοποιείται για τους ελέγχους της εγκυρότητας των ΑΜΚΑ και για την εμφάνιση των στοιχείων στους υπαλλήλους της υπηρεσίας. Έχει στηθεί σε εξυπηρετητές του Α.Π.Θ. και η εφαρμογή συνδέεται σε αυτήν μέσω ssh tunneling.
  • Το σύστημα προορίζεται να συνδυαστεί με τα μηχανήματα που ήδη υπάρχουν στις διάφορες υπηρεσίες και εκδίδουν θέσεις στην ουρά. Προς το παρόν, επειδή δεν είναι δυνατή η χρήση ενός τέτοιου μηχανήματος, χρησιμοποιείται ένας προσομοιωτής, ο οποίος υπάρχει ως υλικό και συνδέεται με το πρόγραμμα μέσω σειριακής θύρας και ως λογισμικό που είναι μία τρισδιάστατη απεικόνιση του υλικού. Ο προσομοιωτής έχει δύο λειτουργίες: α) Δίνει θέση στην ουρά, β) ενημερώνει όταν μπορεί να εξυπηρετηθεί ο επόμενος πελάτης.

Απαιτήσεις Προγράμματος

1. Το πρόγραμμα απαιτεί την ύπαρξη μίας μεθόδου, η οποία θα ανανεώνει τις πληροφορίες σχετικά με την κατάσταση της ουράς και τον εκτιμώμενο χρόνο αναμονής του χρήστη ανά τακτά χρονικά διαστήματα. Η απαίτηση αυτή προκύπτει από τη δυναμική φύση των ουρών, οι οποίες μεταβάλλονται συνεχώς και σε τυχαίες χρονικές στιγμές.

2. Η εφαρμογή από τη μεριά του χρήστη θα υποστηρίζεται είτε από υπολογιστή είτε από κινητό. Κάθε συσκευή έχει διαφορετικό μέγεθος οθόνης. Επομένως, το πρόγραμμα θα πρέπει να αναγνωρίζει την ανάλυση της οθόνης της κάθε συσκευής και να ανακατευθύνει τον περιηγητή σε μία σελίδα με κατάλληλο μέγεθος για εμφάνιση στη συνδεδεμένη συσκευή. Οι σελίδες αυτές θα έχουν τις ίδιες ακριβώς λειτουργίες.

3. Για λόγους καλύτερης λειτουργίας του προγράμματος, θα πρέπει κάθε χρήστης να μπορεί να λάβει μία μόνο θέση στην ουρά. Για να επιτευχθεί αυτό απαιτείται κάποια μέθοδος ταυτοποίησης χρήστη, ώστε να εμποδίζεται ο χρήστης να λάβει και δεύτερη θέση, για ένα χρονικό διάστημα.

4. Το πρόγραμμα θα πρέπει να συνδυαστεί με το ήδη υπάρχον σύστημα ανάθεσης σειράς σε ουρά αναμονής. Τα δύο συστήματα (e-queue και παλιό σύστημα) θα πρέπει να αλληλεπιδρούν και να αλληλοενημερώνονται ώστε να αποφεύγεται η ανάθεση της ίδιας θέσης σε δύο διαφορετικά άτομα.

Github repository: https://github.com/ma-summer-school/queue_system

Δοκιμές προγράμματος

Οι δοκιμές που μπορούν να γίνουν είναι οι παρακάτω:

1. Έλεγχος εγκυρότητας του αριθμού ΑΜΚΑ. Κάθε αριθμός ΑΜΚΑ ξεκινάει από τα ψηφία της ημερομηνίας γέννησης του κατόχου του και αποτελείται ακριβώς από 11 ψηφία. Το σύστημα θα πρέπει να ελέγχει αν ο αριθμός που δίνεται από το χρήστη πληροί τις προϋποθέσεις αυτές. Επίσης, το σύστημα πρέπει να απορρίπτει τον αριθμό ΑΜΚΑ αν περιέχει χαρακτήρες οι οποίοι δεν είναι αριθμοί.

2. Κάποιος χρήστης προσπαθεί να λάβει θέση στη ουρά παραπάνω από μιά φορές. Το σύστημα θα πρέπει να απορρίψει τις επιπλέον αιτήσεις του.

3. Χρήση του προγράμματος από υπολογιστή ή από κινητό. Σε κάθε περίπτωση το πρόγραμμα θα πρέπει να αναγνωρίσει το μέγεθος της οθόνης και να εμφανίσει τη σελίδα στο κατάλληλο μέγεθος και με τις ίδιες λειτουργίες. Επίσης, οι τιμές της κατάστασης της ουράς θα πρέπει να συμφωνούν σε κάθε συσκευή.

Για τις δοκιμές μπορεί να χρησιμοποιηθεί ο προσομοιωτής του μηχανήματος το οποίο αποδίδει θέσεις στην ουρά και ορίζει τον επόμενο ενδιαφερόμενο προς εξυπηρέτηση, ο οποίος βρίσκεται στο σύνδεσμο που ακολουθεί: https://github.com/hikiko/eqemu