# Οδηγίες Εγκατάστασης-Εκτέλεσης Εφαρμογής
Για την εκτέλεση της εφαρμογής είναι απαραίτητο να είναι εγκατεστημένο στο σύστημα του χρήστη το περιβάλλον εκτέλεσης Node js και το npm καθώς εκτελείται πρόγραμμα Node js στο επίπεδο του host(εκτός docker) με σκοπό την δημιουργία container οχημάτων ανάλογα με την είσοδο του χρήστη μέσω της web εφαρμογής. Η εφαρμογή εκκινεί με την εκτέλεση του script "start.sh". Το script "start.sh" αρχικά δημιουργεί τα docker images των κόμβων με βάση τα αντίστοιχα Dockerfile και το δίκτυο των container. Στην συνέχεια δημιουργεί ένα container για τις βάσεις δεδομένων, ένα container για το REST API, 8 containers για τους φωτεινούς σηματοδότες, 40 containers για τους αισθητήρες κίνησης, ένα container για τον κόμβο συντονιστή και ένα container για τον web server. Τέλος εγκαθιστά τα κατάλληλα modules για το πρόγραμμα(entry handler) που εκτελείται στο επίπεδο του host και το θέτει σε λειτουργία αναμένοντας αιτήματα από τον χρήστη. Μεταβαίνοντας στην διεύθυνση 127.0.0.1:8080 ο χρήστης μπορεί να εισάγει νέα οχήματα και να παρατηρεί την κατάσταση του έξυπνου οδικού δικτύου. Η εφαρμογή σταματάει με την εκτέλεση του script "stop.sh". Το script "stop.sh" σταματάει τα container που δημιουργήθηκαν και στην συνέχεια τα διαγράφει. Ο χρήστης μπορεί να σταματήσει την εκτέλεση του προγράμματος(entry handler) που εκτελείται στο επίπεδο του host κλείνοντας το τερματικό στο οποίο εκτελείται το script "start.sh"(ή πατώντας τον συνδυασμό πλήκτρων CTRL+C). Είναι σημαντικό να σημειωθεί ότι λόγω του πλήθους των container και των αιτημάτων που πραγματοποιούνται στο REST API, η εφαρμογή καταναλώνει αρκετή επεξεργαστική ισχύ. Επομένως προτείνεται σε χρήστες που έχουν περιορισμένη επεξεργαστική ισχύ να αυξήσουν τον χρόνο αναμονής(να διπλασιάσουν το όρισμα της μεθόδου time.sleep) στους κόμβους αισθητήρων κίνησης(αρχείο sensor.py) και στους κόμβους οχημάτων(αρχείο vehicle.py) πριν θέσουν σε λειτουργία την εφαρμογή. Αυτό θα έχει σαν αποτέλεσμα οι αισθητήρες κίνησης να δειγματοληπτούν σε μικρότερο βαθμό και τα οχήματα να κινούνται με μικρότερη ταχύτητα.