|
@ -204,6 +204,10 @@ REST API έτσι ώστε να μπορούν να επικοινωνούν ε |
|
|
* Το όνομα χρήστη (username). |
|
|
* Το όνομα χρήστη (username). |
|
|
* Έναν κωδικό πρόσβασης (password). |
|
|
* Έναν κωδικό πρόσβασης (password). |
|
|
|
|
|
|
|
|
|
|
|
Τέλος σε έναν τρίτο πίνακα καταχωρούμε ένα ιστορίκό για την διαθεσιμότητα άρα και για την ζήτηση που έχει το parking. |
|
|
|
|
|
Ελέγχοντας κάθε φορά που αλλάζει η κατάσταση μίας θέσης του parking, το πλήθος των ελεύθερων θέσεων, το καταχωρούμε |
|
|
|
|
|
σε αυτόν τον πίνακα σε συνδυασμό με ένα timestamp, εκείνης τις στιγμής. |
|
|
|
|
|
|
|
|
[source, sql] |
|
|
[source, sql] |
|
|
---- |
|
|
---- |
|
|
CREATE TABLE IF NOT EXISTS PARKING ( |
|
|
CREATE TABLE IF NOT EXISTS PARKING ( |
|
@ -217,6 +221,13 @@ CREATE TABLE IF NOT EXISTS USERS ( |
|
|
USER_PASS VARCHAR(40) NOT NULL, |
|
|
USER_PASS VARCHAR(40) NOT NULL, |
|
|
PRIMARY KEY(USER_NO) |
|
|
PRIMARY KEY(USER_NO) |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS PARKING_USAGE ( |
|
|
|
|
|
PARKING_USAGE_NO INT(10) AUTO_INCREMENT, |
|
|
|
|
|
PARKING_METER INT(10) NOT NULL, |
|
|
|
|
|
PARKING_DATE DATETIME NOT NULL, |
|
|
|
|
|
PRIMARY KEY(PARKING_USAGE_NO) |
|
|
|
|
|
); |
|
|
---- |
|
|
---- |
|
|
|
|
|
|
|
|
==== Υλοποίηση Κόμβου |
|
|
==== Υλοποίηση Κόμβου |
|
@ -239,6 +250,32 @@ WEB Server στη Python όπου η εκτέλεση θα πραγματοπο |
|
|
[{"no": 1, "status": false}, {"no": 2, "status": false}, {"no": 3, "status": false}, {"no": 4, "status": true}, {"no": 5, "status": false}, {"no": 6, "status": false}, {"no": 7, "status": false}, {"no": 8, "status": false}] |
|
|
[{"no": 1, "status": false}, {"no": 2, "status": false}, {"no": 3, "status": false}, {"no": 4, "status": true}, {"no": 5, "status": false}, {"no": 6, "status": false}, {"no": 7, "status": false}, {"no": 8, "status": false}] |
|
|
---- |
|
|
---- |
|
|
|
|
|
|
|
|
|
|
|
* /chart [GET]: επιστρέφει ένα array από JSON objects, το καθένα από τα οποία εκφράζουν το πλήθως των ελεύθερων parking και |
|
|
|
|
|
το αντίστοιχο timestamp της ενημέρωσης. Αυτή η υπηρεσία θα μας βοηθήσει στο να σχεδιάσουμε ένα γράφημα με ματρήσεις ενός 24 ώρου, |
|
|
|
|
|
της ημέρας. |
|
|
|
|
|
|
|
|
|
|
|
[source, json] |
|
|
|
|
|
---- |
|
|
|
|
|
[ |
|
|
|
|
|
{ |
|
|
|
|
|
"usage": 6, |
|
|
|
|
|
"time": "2020-01-23 01:15:52" |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"usage": 1, |
|
|
|
|
|
"time": "2020-01-23 01:22:29" |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"usage": 0, |
|
|
|
|
|
"time": "2020-01-23 01:22:33" |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"usage": 1, |
|
|
|
|
|
"time": "2020-01-23 01:23:01" |
|
|
|
|
|
} |
|
|
|
|
|
] |
|
|
|
|
|
---- |
|
|
|
|
|
|
|
|
* /parkingStatus [POST] (content-type = "application/json"): που μας επιτρέπει να αλλάξουμε την κατάσταση μίας θέσης parking. Στο POST τα δεδομένα |
|
|
* /parkingStatus [POST] (content-type = "application/json"): που μας επιτρέπει να αλλάξουμε την κατάσταση μίας θέσης parking. Στο POST τα δεδομένα |
|
|
ορίζονται στο body σε αναπαράσταση JSON, έτσι ώστε ο Server να είναι ικανός να τα επεξεργαστεί και να τα αποθηκεύσει |
|
|
ορίζονται στο body σε αναπαράσταση JSON, έτσι ώστε ο Server να είναι ικανός να τα επεξεργαστεί και να τα αποθηκεύσει |
|
|
στη βάση δεδομένων που χρησιμοποιούμε. |
|
|
στη βάση δεδομένων που χρησιμοποιούμε. |
|
@ -347,6 +384,9 @@ flask run --host=[IP-v4] --port=8080 |
|
|
Σκοπός αυτής είναι η αναπαράσταση της κατάστασης του Parking σε ένα γραφικό, φιλικό προς τον χρήστη περιβάλλον. |
|
|
Σκοπός αυτής είναι η αναπαράσταση της κατάστασης του Parking σε ένα γραφικό, φιλικό προς τον χρήστη περιβάλλον. |
|
|
Η σελίδα λοιπόν επεικονίζει για κάθε θέση parking με χρώμα κόκκινο την "μη ελεύθεση" και με πράσινο την "ελεύθερη". |
|
|
Η σελίδα λοιπόν επεικονίζει για κάθε θέση parking με χρώμα κόκκινο την "μη ελεύθεση" και με πράσινο την "ελεύθερη". |
|
|
|
|
|
|
|
|
|
|
|
Ακόμα, μέσω της υπηρεσία /charts [GET] του REST API, απεικονίσεται ένα διάγραμμα με βάση την διαθεσιμότητα του parking |
|
|
|
|
|
το τελευταίο 24 ώρο, πιο συσκεκριμένα την τελευταία μέρα. |
|
|
|
|
|
|
|
|
Ένα παράδειγμα μέσω στιγμιοτύπου παρουσιάζεται παρακάτω. |
|
|
Ένα παράδειγμα μέσω στιγμιοτύπου παρουσιάζεται παρακάτω. |
|
|
|
|
|
|
|
|
[.float-group] |
|
|
[.float-group] |
|
|