Skip to content

pbougou/fsociety

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fsociety logo

Fun Society - Περιγραφή Πλατφόρμας

  1. Ανάλυση Απαιτήσεων
  2. Τεχνικές Προδιαγραφές

Σκοπός - Ιδέα

Η δημιουργία της διαδικτυακής αυτής πλατφόρμας (Fun Society) στοχεύει στην καλύτερη επιλογή δραστηριοτήτων από τους γονείς για τα παιδιά τους. Με την εφαρμογή αυτή οι γονείς θα μπορούν να επιλέξουν μέσα από μία μεγάλη γκάμα δραστηριοτήτων (αθλητικών, καλλιτεχνικών, εκπαιδευτικών κ.α.) αυτή που αντιπροσωπεύει κατά κύριο λόγο τις ανάγκες και τα ενδιαφέροντα των παιδιών τους. Πώς ακριβώς όμως μπορεί να επιτευχθεί αυτό;

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

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

Περιγραφή του συστήματος

Η πλατφόρμα μας πρόκειται για μια διαδικτυακή εφαρμογή στην οποία ο χρήστης έχει πρόσβαση μέσω ενός browser. Η εφαρμογή υλοποιείται εξ'ολοκλήρου στα ελληνικά με σκοπό να στοχεύσει χρήστες και επιχειρήσεις εντός Ελλάδας.

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

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

Επίσης, η πλατφόρμα Fun Society είναι ένα αποτελεσματικό μέσο προώθησης των παρόχων εκπαιδευτικών και ψυχαγωγικών δραστηριοτήτων. Μέσω της διαδικτυακής παρουσίας τους, τους δίνεται η δυνατότητα να απευθυνθούν σε ένα ευρύ κοινό και να προσελκύσουν περισσότερους πελάτες στους οποίους δεν θα μπορούσαν να απευθυνθούν με παραδοσιακά μέσα.

Κατηγορίες και λειτουργίες χρηστών

Ανώνυμος χρήστης

Ο ανώνυμος χρήστης έχει την δυνατότητα περιήγησης στο site χωρίς να κάνει εγγραφή σε αυτό (sign up ή log in). Συγκεκριμένα, θα είναι σε θέση να δει όλες τις υπηρεσίες που παρέχει το site όπως παιδότοπους, γυμναστήρια, κολυμβητήρια, κέντρα δημιουργικής απασχόλησης καθώς και πιθανές προσφορές ή περιορισμούς που καθορίζουν οι πάροχοι των υπηρεσιών αυτών. Η διαφορά του με τον εγγεγραμμένο χρήστη είναι ότι δεν θα μπορεί να κάνει online κράτηση. Τέλος, έχει τη δυνατότητα εγγραφής και εισόδου στο site με τη συμπλήρωση κατάλληλης φόρμας sign up που αναλύεται στη συνέχεια.

Γονέας

Βασικός χρήστης της εφαρμογής είναι ο γονέας που επιθυμεί να κάνει κράτηση για κάποια δραστηριότητα για το παιδί του. Ο απλός χρήστης-γονέας έχει την δυνατότητα να κάνει εγγραφή στο site συμπληρώνοντας μια φόρμα sign up. Ενδεικτικά, κάποια στοιχεία που θα μπορούσαν να ζητηθούν από το γονέα είναι τα εξής:

  • Ονοματεπώνυμο
  • Διεύθυνση
  • Ε-mail
  • Τηλέφωνο
  • Username
  • Password

Ο χρήστης αυτός έχει τη δυνατότητα να κάνει είσοδο στο σύστημα γράφοντας σωστά το username και το password του μέσα από κατάλληλη φόρμα log in.

Μπορεί να έχει πλήρη πρόσβαση στη λίστα των υπηρεσιών. Του δίνεται η δυνατότητα να εξειδικεύσει τα αποτελέσματα αυτής της λίστας κάνοντας αναζήτηση σε αυτήν χρησιμοποιώντας κατάλληλα πεδία-φίλτρα. Ενδεικτικά, αναφέρονται τα εξής:

  • Ηλικιακή κατηγορία (π.χ. προσχολική)
  • Είδος δραστηριότητας
  • Κόστος (Εύρος τιμών)
  • Περιοχή χώρου διεξαγωγής

Ο γονέας έχει τη δυνατότητα να δει τις κενές θέσεις και να κάνει κράτηση στη δραστηριότητα της επιλογής του. Η κράτηση και η χρέωση γίνεται κάνοντας χρήση των πόντων που έχει στο ηλεκτρονικό πορτοφόλι του.

Ακόμα, μπορεί να επικοινωνήσει με τους πάροχους των υπηρεσιών μέσω των στοιχείων επικοινωνίας που έχουν δημοσιοποιήσει οι ίδιοι για περαιτέρω πληροφορίες.

Μετά από μία online κράτηση, έχει την δυνατότητα να λάβει σε εκτυπώσιμη μορφή τα αντίστοιχα εισιτήρια.

Τέλος, κατά την έξοδο του μπορεί να κάνει log out.

Πάροχος υπηρεσιών

Ο πάροχος υπηρεσιών έχει την δυνατότητα να κάνει εγγραφή στο site συμπληρώνοντας μία διαφορετική φόρμα sign up. Ενδεικτικά πεδία είναι τα εξής:

  • Τίτλος επιχείρησης
  • Τηλέφωνο
  • E-mail
  • Καταστατικό επιχείρησης (προκειμένου να μπορεί να γίνει έλεγχος από το διαχειριστή ότι η επιχείρηση είναι νόμιμη και οι σχετικές υπηρεσίες, συστήματα ή πρόσωπα συμμορφώνονται µε τις απαιτήσεις που καθιερώνονται από το υπάρχον νομικό πλαίσιο)

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

  • Σύνοπτική περιγραφή
  • Τιμή κράτησης
  • Διαθέσιμο ωράριο

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

Τέλος, στον πάροχο παρουσιάζεται μηνιαία αναφορά με αριθμό κρατήσεων-εσόδων ανά δραστηριότητα καθώς και χρήσιμα στατιστικά όπως επισκεψιμότητα των σελίδων των δραστηριοτήτων (μέσω click) και αριθμός εισιτηρίων ανά ηλικία και ανά θεματική κατηγορία δραστηριοτήτων.

Διαχειριστής

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

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

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

Έμμεσα εμπλεκόμενοι

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

Βιωσιμότητα - Κέρδος

Η πλατφόρμα θα υποστηρίζει ένα ηλεκτρονικό «πορτοφόλι», το οποίο θα δημιουργείται κατά την εγγραφή του χρήστη-γονέα. Θεωρούμε ότι στα πλαίσια της εργασίας οι συναλλάγες θα είναι εικονικές και δεν περιλάμβανουν φυσικές συναλλαγές μέσα από κάποιο τραπεζικό σύστημα. Πρακτικά αυτό σημαίνει ότι κάθε συναλλαγή με κάρτα θα επιτυγχάνει. Επίσης η πλατφόρμα υποστηρίζει σύστημα επιβράβευσης κατά το οποίο δίνεται στο γονέα η δυνατότητα να αποκτήσει εικονικά χρήματα στο ηλεκτρονικό του πορτοφόλι, τα οποία μπορεί να εξαργυρώσει σε αγορές στην εφαρμογή. Το σύστημα λειτουργεί ως εξής: Με κάθε αγορά χ ευρώ, προστίθενται στο χρήστη 10 * χ πόντοι. Όταν ξεπεράσει τους 1000 πόντους πιστώνονται στο πορτοφόλι του 10 ευρώ και αφαιρούνται 1000 πόντοι. Στην επόμενη αγορά του αφαιρούνται χρήματα από το πορτοφόλι του έως να τελειώσουν και όταν τελειώσουν, τότε εφαρμόζεται το ίδιο σύστημα. 1000 πόντοι = 10 ευρώ. Να σημειωθεί οτι κάθε εισιτήριο δίνει τη δυνατότητα συμμετοχής μόνο σε συγκεκριμένη δραστηριότητα τις ώρες και μέρες της αντίστοιχης κράτησης. Δεν είναι δυνατή οποιαδήποτε ακύρωση εισιτηρίου έπειτα απο την έκδοση του ή επιστροφή χρημάτων μετά από κατάθεση και μετατροπή τους σε fpoints.

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

Απαιτήσεις

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

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

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

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

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

Τέλος, η διεπαφή της εφαρμογής μας θα πρέπει να είναι εύχρηστη και φιλική για όλους. Αυτό σημαίνει ότι η χρήση της θα είναι απλή και εύκολη χωρίς να δημιουργεί προβλήματα στο χρήστη και ο καθένας θα μπορεί να βρει άμεσα τις πληροφορίες που χρειάζεται καθώς και να πραγματοποιήσει συναλλαγές. Βασικό στοιχείο για τη ευχρηστεία της εφαρμογής είναι και η προσαρμογή του γραφικού της περιβάλλοντος στα χαρακτηριστικά της οθόνης του κάθε χρήστη(responsive design).

Σύνδεση τεχνικών προδιαγραφών με ανάλυση απαιτήσεων

  • Επειδή η εφαρμογή απευθύνεται σε μαμάδες, χρειαζόμαστε εύχρηστο UI και όσο το δυνατόν καλύτερο UX, για να είναι η εφαρμογή προσιτή και ευχάριστη στο κοινό. Επίσης ο χρήστης θα είναι σε θέση να ανοίγει την εφαρμογή από οποιαδήποτε συσκευή(κινητό, tablet laptop, ...). Το responsive design θα καλυφθεί με χρήση του Bootstrap framework.
  • Η αγορά εισιτηρίου από το γονέα προυποθέτει να μην πληρώσει κάποιος εισιτήριο που δεν είναι διαθέσιμο. Αυτό παραπέμπει σε consistency σε πεδίο της βάσης και άρα επιλέγουμε μια βάση που υποστηρίζει ACID(Atomic Consistent Isolation Durability) transactions και συγκεκριμένα τη MySQL.
  • Από την άλλη, η επικοινωνία του συστήματος με το Google Maps API δημιουργεί την ανάγκη για υποστήριξη από το DBMS για geospatial μεταβλητές. Ταυτόχρονα όμως ζητείται και η υλοποίηση ενός full text search, το οποίο για να είναι γρήγορο χρειαζόμαστε μια βάση που έχει πιο γρήγορη αναζήτηση από τη MySQL, όπως μια NoSQL βάση. Επιλέγουμε MongoDB σε αυτό, η οποία υποστηρίζει και geospatial μεταβλητές και γρήγορο search για να είναι η εφαρμογή ευχάριστη στο χρήστη και να μην τον κουράζει.
  • Για την απαίτηση για φορητότητα ικανοποιείται με τη χρήση της Virtual Machine της Java(JVM), όπου ο κώδικας της εφαρμογής γίνεται compile σε ένα μηχάνημα και τρέχει σε όλα όσα έχουν JVM, ανεξαρτήτως λειτουργικού και αρχιτεκτονικής.
  • Σχετικά με την ασφάλεια προσωπικών δεδομένων, χρησιμοποιούμε το πρωτοκόλλο HTTPS, το οποίο προστατεύει τα προσωπικά δεδομένα του κάθε χρήστη που κυκλοφορούν στο δίκτυο και μπορεί να πέσουν στα χέρια κακόβουλων χρηστών.

Αρχιτεκτονική του λογισμικού

Patterns

  • Η υλοποίηση ακολουθεί το pattern των microservices(συγκεκριμένα Java microservices), όπου processes επικοινωνούν η μία με την άλλη μέσω δικτύου. Αυτά μπορούν να ανήκουν σε έναν ή περισσότερους servers. Είναι ανεξάρτητα το ένα με το άλλο, αλλά χωρίς κάποιο η εφαρμογή μας δε θα είχε την επιθυμητή λειτουργικότητα. Να σημειωθεί ότι στο πλαίσιο της άσκησης λόγω περιορισμού πόρων, πιθανότατα να τρέχουν στο ίδιο φυσικό μηχάνημα.
  • Πρόκειται για RESTful εφαρμογή, όπου η διαλειτουργικότητα των ξεχωριστών υποσυστημάτων του λογισμικού μας αναπαριστάται με ένα state που δηλώνεται από κάποιο url. Η χρήση του REpresantational State Transfer ικανοποιεί δύο σκοπούς(βλ. επόμενη ενότητα αναλυτικότερα για frameworks):
  1. Διευκολύνει το integration μεταξύ frontend και backend. Συγκεκριμένες σελίδες του frontend καταναλώνουν ή παράγουν (ή ίσως και τα δύο) serialized αρχεία json για την επίτευξη της λειτουργικότητας της εφαρμογής.
  2. Πρόκειται για web εφαρμογή, οπότε απαιτείται η άμεση επαφή με το HTTP πρωτόκολλο. Μία REST εφαρμογή κάνει άμεση και αποτελεσματική χρήση των δυνατοτήτων του πρωτοκόλλου, όπως των διαφορετικών requests που υποστηρίζει ανάλογα με την ανάγκη του προγραμματιστή.
  • Φυσικά, αναφέρουμε ότι κρύβεται η λογική του αρχιτεκτονικού pattern MVC(Model View Controller), όπου στο model κρύβεται όλο το business logic της εφαρμογής και γίνονται όλοι οι εσωτερικοί υπολογισμοί του συστήματος. Σε αυτό έρχονται δεδομένα από το χρήστη με τη βοήθεια του Controller και το Model επιστρέφει ένα View, όπου το βλέπει ο χρήστης για να κάνει την επόμενη επιλογή του. Στην περίπτωσή μας λόγω REST, κάθε Controller αναπαρίσταται με κάποιο διαφορετικό url, το οποίο ο προγραμματιστής επιλέγει για να χρησιμοποιήσει στο frontend.

Επιλογή γλωσσών προγραμματισμού, frameworks, build automation tool, IDE

  • Όσον αφορά το backend, χρησιμοποιούμε τη Java (v8) ως γλώσσα υλοποίησης στα πλαίσια του Spring Boot Framework. Χρησιμοποιούμε υποσυστήματα που συνεργάζονται με το framework, όπως το hibernate, jpa για την επικοινωνία με τη βάση σύμφωνα με το Object Relational Model(ORM). Τη στιγμή συγγραφής του εγγράφου δεν έχει αποφασιστεί ακόμα, ο τρόπος με τον οποίο θα γίνεται το user authentication και authorization. Δεν αποκλείεται η χρήση ενός ακόμα υποσυστήματος, του OAuth2, το οποίο μαζί με το Spring Security θα κάνει τη συγκεκριμένη δουλειά. Ο λόγος που δεν έχει οριστικοποιηθεί είναι γιατί απ' ότι έχουμε καταλάβει γι' αυτό στην παρούσα φάση, ίσως χρειαστεί να αλλάξουμε το layout της βάσης και να προσθέσουμε ένα ακόμα επίπεδο στο backend ώστε να διαχωρίζει τους 4 ρόλους χρηστών που υπάρχουν στην πλατφόρμα. Υπάρχει και ο τρόπος που τα credentials του χρήστη θα είναι attributes στον http header, στο session του κάθε χρήστη.
  • Όσον αφορά το frontend, χρησιμοποιούμε το frontend framework Angular 4 για να κάνουμε consume τα http services που έχουν υλοποιηθεί στο backend και την html των σελίδων που θα εμφανίζονται στον browser. Η γλώσσα που χρησιμοποιούμε είναι η TypeScript που έχει καθιερωθεί από το Angular 2. Επίσης σε συνεργασία με την HTML5 χρησιμποιούμε το bootstrap για πιο όμορφη και ευχάριστη εμπειρία χρήσης καθώς και για υποστήριξη responsive design στην εφαρμογή.
  • To build automation tool στο κομμάτι του backend είναι ο gradle ενώ στο frontend είναι ο npm. Και τα δύο λειτουργούν κάτω από την εποπτεία του Spring Boot με το npm να έχει ορισμένα task στο build.gradle ώστε να ξεκινά το frontend αυτόματα και να παρακολουθεί και να κάνει rebuild τις αλλαγές κατά τη φάση του developpment.
  • Ο IDE της επιλογής μας ήταν ο Eclipse.

Class Diagram

class diagram

Component Diagram

component diagram

E-R Diagram

er diagram

Use Case Diagram

use case diagram

Wireframes

Αρχική Σελίδα

front page

Περιγραφή

front page

Ομάδα

team

Επικοινωνία

contact

Σύνδεση

login

Εγγραφή Παρόχου

provider reg

Εγγραφή Γονέα

parent reg

Σελίδα Αναζήτησης (Ανώνυμος χρήστης)

search_anon page

map_anon page

Σελίδα Αναζήτησης (Γονέας)

search page

search_parent page

Κράτηση Γονέα

event page

Κράτηση Ανώνυμου

event_anon page

Προφίλ Παρόχου

provider profile page

Προσθήκη Event

new event page

Προφίλ Γονέα

parent profile page

Ιστορικό Κρατήσεων (Γονέα)

parent history page

Ηλεκτρονικό Πορτοφόλι (Γονέα)

wallet page

Σελίδα Διαχειριστή

admin page

Packages

No packages published

Languages

  • TypeScript 29.6%
  • Java 29.3%
  • HTML 25.1%
  • CSS 15.5%
  • JavaScript 0.5%