Giter VIP home page Giter VIP logo

smartalert's Introduction

SmartAlert

Σύγχρονα Θέματα Τεχνολογίας Λογισμικού

  1. Δομή εργασίας Θέμα: Στην παρούσα εργασία θα πρέπει να κατασκευάσετε μια εφαρμογή με τίτλο «SmartAlert», άμεσης ειδοποίησης πολιτών σε έκτακτες περιστάσεις υψηλού κινδύνου. Παραδοχές: Θα θεωρήσετε ότι την εφαρμογή που θα δημιουργήσετε θα την έχει εγκατεστημένη ένας πολύ μεγάλος αριθμός από χρήστες, σε όλη την Ελλάδα. Λογική: Η εφαρμογή σας θα είναι σε θέση να ενημερώνει εγγεγραμμένους χρήστες αλλά και άλλους εμπλεκόμενους (βλέπε τους παρακάτω ρόλους χρηστών) για καταστάσεις κινδύνου, όπως αυτές που περιγράφονται στη συνέχεια. Η ενημέρωση θα γίνεται μέσω γραπτού μηνύματος σε ένα σύνολο από παραλήπτες (εφόσον πληρούνται συγκεκριμένα κριτήρια, όπως θα δείτε παρακάτω). Σε κάθε ειδοποίηση θα περιλαμβάνεται η κατάσταση ανάγκης (με την όποια πληροφορία συνοδεύεται), η γεωγραφική θέση του τρέχοντος event, ένα timestamp (ημερομηνία/ώρα), καθώς και οδηγίες από την πολιτική προστασία. Ρόλοι χρηστών: • Εγγεγραμμένος Χρήστης: Ο εγγεγραμμένος χρήστης θα έχει 2 υπό-ρόλους: ➢ Τον ρόλο του χρήστη που ειδοποιεί για ένα περιστατικό υψηλού κινδύνου ➢ Τον ρόλο του χρήστη που πρόκειται να ειδοποιηθεί για ένα περιστατικό υψηλού κινδύνου • Υπάλληλος πολιτικής προστασίας: Ο ρόλος του υπαλλήλου πολιτικής προστασίας είναι ιδιαίτερα σημαντικός. Ο συγκεκριμένος ρόλος θα «βλέπει» τις υποβληθείσες καταστάσεις υψηλού κινδύνου και αναλόγως με το δείκτη επικινδυνότητας (αναλύεται), θα επιλέγει την αυτόματη ειδοποίηση των χρηστών που βρίσκονται σε μικρή ακτίνα από το περιστατικό υψηλού κινδύνου, ή θα απορρίπτει τον συναγερμό, ή θα εξετάζει το περιστατικό με άλλους τρόπους και πάλι θα επιλέγει την ειδοποίηση χρηστών, ή την απόρριψη του περιστατικού. Καταστάσεις Υψηλού Κινδύνου: Πιο αναλυτικά θα κατασκευάσετε μια εφαρμογή, η οποία θα ικανοποιεί τις παρακάτω προδιαγραφές σχετικά με πιθανές καταστάσεις κινδύνου. Πιθανές καταστάσεις υψηλού κινδύνου είναι: Πλημμύρες, Πυρκαγιές, Σεισμοί, Άλλες φυσικές καταστροφές (π.χ. Ανεμοστρόβιλος). Τις συγκεκριμένες κατηγορίες θα τις επιλέξετε εσείς και θα υπάρχουν μέσα στο σύστημα καταγραφής περιστατικών υψηλού κινδύνου. Προδιαγραφές:
  2. Η εφαρμογή σας θα δίνει τη δυνατότητα στον εγγεγραμμένο χρήστη να υποβάλλει ένα περιστατικό υψηλού κινδύνου στο σύστημα “SmartAlert”. Η εν λόγω υποβολή θα συνοδεύεται από σχόλια του χρήστη, από το είδος του κινδύνου (πυρκαγιά, πλημμύρα, κ.λπ.)(θέλουμε οι κατηγορίες να προϋπάρχουν, όπως αναφέρεται παραπάνω), από την τοποθεσία του χρήστη (αυτόματα από το κινητό), από χρονοσφραγίδα και από πιθανή επισυναπτόμενη φωτογραφία. Επίσης, θα εμφανίζεται με toast message το σχετικό μήνυμαεπαλήθευσης. Η υποβολή θα γίνεται σε remote DB/backend της επιλογής σας, για περαιτέρω έλεγχο από τον υπάλληλο πολιτικής προστασίας.
  3. Όπως προαναφέρθηκε και στους ρόλους των χρηστών, ο υπάλληλος πολιτικής προστασίας θα πρέπει να ελέγχει, να απορρίπτει, ή να επικυρώνει μια κατάσταση υψηλού κινδύνου. Για την επιλογή του θα λαμβάνει σοβαρά υπόψη και τη «σύσταση» του backend συστήματος σας, ως προς την κατάταξη του κάθε υποβληθέντα κινδύνου.
  4. Η εφαρμογή σας θα πρέπει να διαθέτει ένα backend module, βασική λειτουργία του οποίου θα είναι η κατάταξη των υποβληθέντων περιστατικών με βάση το επίπεδο συναγερμού, το οποίο θα υπολογίζεται ως εξής: Για τα υποβληθέντα περιστατικά θα υπάρχουν δύο κριτήρια «βαρύτητας». Το 1ο είναι το πλήθος των χρηστών που έχουν υποβάλλει το συγκεκριμένο περιστατικό κινδύνου (όσο περισσότερα άτομα, τόσο πιο «έγκυρο» το περιστατικό), σε συγκεκριμένο εύρος χρόνου (δεν μπορεί να υποβάλουν μια πλημμύρα με χρονική απόσταση μιας ημέρας). Το 2ο είναι η γεωγραφική απόσταση μεταξύ των υποβληθέντων περιστατικών (δεν μπορεί μια πυρκαγιά να έχει απόσταση 200 χιλιομέτρων). Τόσο για το 1ο, όσο και για το 2ο κριτήριο, τα βάρη θα υπολογιστούν από εσάς.
  5. Εφόσον, ο υπάλληλος πολιτικής προστασίας επιλέξει την ειδοποίηση των χρηστών, τότε θα ειδοποιηθούν μόνο οι χρήστες οι οποίοι βρίσκονται σε συγκεκριμένη απόσταση από το περιστατικό (επιλέγετε εσείς την απόσταση). Θα λάβουν μήνυμα κινδύνου με τις απαραίτητες πληροφορίες
  6. Η εφαρμογή σας, εκτός από τα ελληνικά θα πρέπει να υποστηρίζει και ακόμα μια γλώσσα. Θα πρέπει να την τροποποιήσετε έτσι, ώστε οι πληροφορίες να μπορούν να εμφανιστούν σε συνολικά 2 γλώσσες, μαζί με τα αγγλικά (τυχόν ηχητικά μηνύματα δεν χρειάζεται να αλλαχθούν).
  7. Στην εφαρμογή σας, οι χρήστες θα πρέπει να κάνουν login με Authentication της επιλογής σας. Σημαντικά: ➢ Όλα τα περιστατικά υψηλού κινδύνου θα πρέπει να καταγράφονται σε βάση δεδομένων. Απαίτηση είναι να γίνεται είτε στη firebase, είτε σε δικό σας web service (π.χ. Java Spring Boot), ενώ προαιρετικά μπορείτε να διατηρείτε και τοπική βάση (sqlite, shared preferences). Το feature αυτό είναι βασικό (firebase ή web service και πιάνει 2 μονάδες), για να μπορέσουμε να έχουμε την συγκέντρωση δεδομένων από πολλαπλούς χρήστες. Αν δεν τα καταφέρετε, χρησιμοποιήστε τοπική ΒΔ μόνο. ➢ Θα διαθέτει ξεχωριστό Activity προβολής στατιστικών, όπου θα μπορεί ο κάθε χρήστης πόσες φορές έχει ενεργοποιηθεί συμβάν κινδύνου. Προαιρετικά, οι πληροφορίες θα μπορούν να δοθούν με φίλτρα βάσει χρόνου και κατηγορίας συμβάντος. ➢ Προαιρετικά μπορείτε να υλοποιήσετε και κάποιες εντολές και φωνητικά (π.χ. το πέρασμα από μια οθόνη σε μια άλλη). Για όλα τα παραπάνω θα πρέπει να φροντίσετε να γίνονται οι απαραίτητοι έλεγχοι μέσα στον κώδικά σας (π.χ. θα αποθηκεύσετε κάτι στη ΒΔ, εάν δεν έχετε στίγμα εκείνη τη στιγμή;), ώστε η εφαρμογή σας να μπορεί να λειτουργήσει με όσο το δυνατόν λιγότερα προβλήματα (ιδανικά χωρίς καθόλου προβλήματα). Η εφαρμογή σας θα πρέπει να ελεγχθεί σε διαφορετικούς emulators, για smartphones και tablets ώστε να φροντίσετε να μην «αλλοιώνεται» το UI της.2. Ανάλυση και σχεδιασμός

smartalert's People

Contributors

dependabot[bot] avatar en0l1c avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.