/weather-api

A Msc project that emulated a weather api

Primary LanguageJava

Quarkus master build passed master build passed master build passed

forecast-provider Coverage-forecast-provider forecast service Coverage-forecast user service Coverage-user


issues

INF138 Weather app

Η εφαρμογή αναπτύσσεται στα πλαίσια εργασίας στο μάθημα "ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ"

Linux installer located at installer.sh

Contributors

  • Βασίλειος Κωνσταντίνου. Α.Μ: p3312006
  • Εμμανουήλ Σφενδουράκης A.M. p3312015
  • Σώζων Λεβεντόπουλος A.M. p3312007

Contributors second assingment

  • Βασίλειος Κωνσταντίνου. Α.Μ: p3312006
  • Ιωάννης Γκουζιώκας A.M. p3312011
  • Γιώργος Παπανόντας A.M. p3312009

Περιγραφή προβλήματος

Η υπηρεσία θα προσφέρει στους χρήστες τη δυνατότητα ενημέρωσης για προγνωστικά καιρού για περιοχές της επικράτειας αξιοποιώντας πολλαπλές πλατφόρμες πρόγνωσης (π.χ. Accuweather, ΕΜΥ, Meteo.gr). Μετά την εγγραφή και δημιουργία του προφίλ του στο σύστημα, ο χρήστης θα μπορεί να αναζητεί στοιχεία πρόγνωσης καιρού για συγκεκριμένες περιοχές. Τα στοιχεία πρόγνωσης θα αφορούν τον τρέχοντα καιρό, ωριαία πρόγνωση για τις επόμενες 3 ώρες και ημερήσια πρόγνωση για τις επόμενες 3 ημέρες με 3 προγνώσεις ανά ημέρα (στις 08:00, 15:00 και 21:00). Ο χρήστης θα έχει τη δυνατότητα λήψης αναλυτικών στοιχείων πρόγνωσης (η δυνατότητα λήψης αναλυτικών στοιχείων αναφέρεται στη λήψη μιας απόκρισης από το σύστημα που περιλαμβάνει δύο ή περισσότερες προγνώσεις, μια από κάθε υπηρεσία πρόγνωσης) ή συγκεντρωτικών που θα προκύπτουν από στάθμιση των δεδομένων των επιμέρους υπηρεσιών (π.χ. επιστροφή της πρόγνωσης με τον υψηλότερο αριθμό αξιολογήσεων από τους χρήστες). Ο χρήστης κατά τη δημιουργία του προφίλ του θα επιλέγει τις υπηρεσίες πρόγνωσης που θέλει να χρησιμοποιήσει. Ο χρήστης θα έχει τη δυνατότητα να αξιολογεί εκάστοτε πρόβλεψη σε κλίμακα 1 (καθόλου ικανοποιημένος) έως 5 (απόλυτα ικανοποιημένος). Οι αξιολογήσεις των χρηστών θα αξιοποιούνται για τον υπολογισμό της συγκεντρωτικής πρόβλεψης ανά περιοχή (ανάλογα με τις εκάστοτε αξιολογήσεις το σύστημα θα προτείνει στο χρήστη πρόβλεψη από την (ή τις) υπηρεσίες με το μεγαλύτερο σκορ). Για την αποδοτική απόκριση στις αναζητήσεις, το σύστημα θα λαμβάνει περιοδικά και θα αποθηκεύει τα στοιχεία προγνώσεων από όλες τις συνεργαζόμενες υπηρεσίες. Για το σκοπό αυτό θα παρέχει κατάλληλο API το οποίο θα καλείται από τις συνεργαζόμενες υπηρεσίες με σκοπό την ενημέρωση προγνώσεων ανά περιοχή, όταν προκύπτουν κάποιες αλλαγές σε αυτές. Τέλος, η εφαρμογή θα έχει την δυνατότητα αποστολής προειδοποιητικών μηνυμάτων στο χρήστη σε περίπτωση κακοκαιρίας (μόνο σε περιπτώσεις κινδύνου ζωής) για όλες τις περιοχές ενδιαφέροντος που έχει καταχωρίσει στο προφίλ τους

Σύνδεσμοι σε αρχεία προδιαγραφών.

Σύνδεσμοι σε διαγράμματα ροής

Use case diagram

usecase diagram

Domain Model diagram

Domain model

Class diagram

Class Diagram

Χρήσιμες εντολές:

Η διαχείριση της οικοδόμησης του έργου μπορεί να γίνει με μια σειρά βασικών εντολών:

  • mvn: εκτελεί τον προκαθορισμένο κύκλο οικοδόμησης
  • mvn test: εκτελεί τα unit tests του project
  • mvn site: παράγει την τεκμηρίωση του project σε μορφή HTML. Τα παραγόμενα αρχεία είναι διαθέσιμα στην τοποθεσία target/site/
  • mvn umlet:convert -Dumlet.targetDir=src/site/markdown/uml: παράγει αρχεία εικόνας png για όλα τα διαγράμματα που βρίσκονται στην τοποθεσία src/site/markdown/uml. Συστήνεται η κλήση της εντολής πριν την υποβολή μιας νέας έκδοσης διαγραμμάτων στο git repository (git commit). Ως αποτέλεσμα τα παραγόμενα αρχεία εικόνας των διαγραμμάτων συνοδεύουν τα πηγαία αρχεία έτσι ώστε να είναι εύκολη η πλοήγηση στην τεκμηρίωση του project μέσω του github.