ΠΜΣ 513 ΤΕΧΝΟΛΟΓΙΑ ΗΛΕΚΤΡΟΝ ΙΚΟΥ ΕΜΠΟΡΙΟΥ ΥΠΟΧΡΕΩΤΙΚΗ ΕΡΓΑΣΙΑ 2015 19 Ιουλίου 2015 Αντικείµενο της παρούσης εργασίας είναι η ανάπτυξη ενός πληροφοριακού συστήµατος για την υποστήριξη των λειτουργιών προσφοράς/ανάθεσης εργασιών µιας κοινότητας ειδικών και εργοδοτών. Το σύστηµα η-ελεύθερος Επαγγελµατίας αποτελεί κοινό σηµείο διασύνδεσης µιας κοινότητας ειδικών (ή ελευθέρων επαγγελµατιών απο εδώ και κάτω) και αποτελεί την πλατφόρµα, µέσω της οποίας ένας ελεύθερος επαγγελµατίας µπορεί να δηµοσιοποιήσει τις ικανότητες του και την εµπειρία του σε συγκεκριµένες τεχνολογίες ανάπτυξης πληροφοριακών συστηµάτων, πχ. Java, C/C++, Android, JXTA. Αντίστοιχα κάθε εργοδότης µπορεί να δηµοσιοποιήσει εργασίες για τις οποίες αναζητά να βρεί διαθέσιµους ειδικούς. Όπως σε κάθε µειοδοτικό διαγωνισµό στόχος από την µεριά του εργοδότη είναι η αναζήτηση ειδικών που προσφέρουν την χαµηλότερη τιµή και ρίσκο καθώς και τον µικρότερο χρόνο ολοκλήρωσης των εργασιών. Αντίθετα από την µεριά του ελεύθερου επαγγελµατία το ζητούµενο είναι η αναζήτηση του υψηλότερου τιµήµατος για τον ελάχιστο δυνατό χρόνο και κόπο. Για την υλοποίηση της συγκεκριµένης πλατφόρµας είναι απαραίτητη η ανάπτυξη µια σειράς λειτουργιών (υπηρεσιών) οι οποίες θα καλύπτουν απαραίτητες πτυχές του συστήµατος. Συγκεκριµένα η πλατφόρµα θα πρέπει να προσφέρει τις κάτωθι δυνατότητες: Εγγραφή και δηµιουργία προφίλ για τους ενδιαφερόµενους ελεύθερους επαγγελµατίες. Αντίστοιχη διαδικασία θα πρέπει να προσφέρεται και στους εργοδότες. Ιστορικό εργασιών στις οποίες έλαβαν µέρος καθώς και βαθµολογήσεις, σχόλια για τα προσόντα και τις ικανότητες του κάθε ειδικού από τους εργοδότες του κάθε έργου. Αντίστοιχα σε κάθε εργασία θα µπορούν να υπάρχουν σχόλια και βαθµολογίες από την µεριά των εργαζοµένων σχετικά µε την συµπεριφορά και την συνδιαλλαγή µε τον εκάστοτε εργοδότη. Λίστα ικανοτήτων. Η λίστα αυτή αποτελεί µια καθορισµένη οντολογία η οποία θα περιλαµβάνει ολες τις υποστηριζόµενες κατηγορίες και µια µικρή περιγραφή για κάθε µια απο αυτές. Εγγγραφή/προβολή διαγωνισµού εργασιας, των απαιτήσεων, π.χ. χρηµατικών/χρονικών ορίων, απαραίτητων τεχνολογιών ανάπτυξης (προσόντων) και παρακολούθησης της πορείας εξέλιξης του σχετικού µειοδοτικού διαγωνισµού, πχ. υπάρξη κατώτερης προσφοράς ή νέας προσφοράς. Για κάθε διαγωνισµό θα πρέπει να εµφανίζονται στοιχεία σχετικά µε τον εργοδότη, τους ειδικούς που έχουν καταθέσει προσφορά καθώς και τα στοιχεία της κάθε προσφοράς, πχ. τίτλος σύντοµη αλλά και εκτενής
περιγραφή εργασίας, µέγιστο επιτρεπόµενο όριο χρηµάτων (προεραιτικό), απαιτούµενο χρονικό διάστηµα ολοκλήρωσης. Επιπλέον για κάθε ανοιχτό διαγωνισµό θα πρέπει να παρουσιάζεται λίστα µειοδοτών µε όνοµα, τιµή προσφοράς, εκτιµώµενο χρόνο ολοκλήρωσης και σχετική εµπειρία Για την προώθηση των διαγωνισµών οι εργοδότες που δηµιουργούν διαγωνισµούς θα έχουν την δυνατότητα προώθησης προσκλήσεων συµµετοχής σε συγκεκριµένους επαγγελµατίες που µπορούν να επιλέξουν µετά από κατάλληλη αναζήτηση. Αναζήτηση o Διαγωνισµών: Η υπηρεσία αυτή θα χρησιµοποιηθεί από τους ειδικούς για την αναζήτηση διαθέσιµων ανοιχτών διαγωνισµοών. Οι διαθέσιµοι διαγωνισµοί που ανακτώνται εµφανίζονται µε σειρά προτεραιότητας µε βάση πρώτα την σχετικότητα του διαγωνισµού ως προς τις ικανότητες του κάθε ελεύθερου επαγγελµατία και έπειτα µε βάση τον χρόνο λήξης του διαγωνισµού. Από τα αποτελέσµατα αυτά ο κάθε ειδικός θα µπορεί να οδηγηθεί σε περισσότερες πληροφορίες για τον κάθε διαγωνισµό, π.χ. λίστα προσφορών, περιγραφές, κτλ. o Ειδικών: Με αυτή τη λειτουργία οι εργοδότες µπορούν να αναζήτησουν ειδικούς. Η υπηρεσία αυτή θα επιστρέφει λίστα µε ειδικούς ταξινοµηµένη µε βάση την σχετικότητα των ειδικών ως προς τους ανοιχτούς διαγωνισµούς του κάθε εργοδότη. Από τα αποτελέσµατα αυτά ο εργοδότης θα µπορεί να οδηγηθεί σε πληροφορίες σχετικά µε τις ικανότητες του ειδικού, τα έργα τα οποία έχει εργαστεί και το γενικότερο rating που του έχει αποδοθεί από την συµµετοχή του σε προηγούµενα έργα. Κάθε ειδικός, εφόσον το επιθυµεί, µπορεί να υποβάλει προσφορά για κάποιο ανοιχτό διαγωνισµό αφού πρώτα συµβουλευτεί την λίστα µε τις διαθέσιµες προσφορές. Η προσφορά του κάθε ειδικού διατηρείται τόσο στον εργοδότη όσο και στον ειδικού έτσι ώστε να µπορεί κανείς να τις αναζητήσει µε γρήγορο τρόπο. Σε κάθε περίπτωση ο ειδικός θα µπορεί να καταθέσει διορθωτικές προσφορές για έργα που τον ενδιαφέρουν ή και να αποσύρει την προσφορά του. Επιπλέον για όλα τα έργα που κάποιος εδικός έχει υποβάλει προσφορά, λαµβάνει συνεχώς ενηµερωτικά µηνύµατα σε σχέση µε τις µεταβολές του έργου, πχ υποβολή νέων προσφορών, ολοκλήρωση διαγωνισµού. Με βάση τις βαθµολογίες κάθε εργοδότη και εργαζόµενου υπολογίζεται ένα γενικό rating για τον κάθε συµµετέχοντα (ειδικό και εργοδότη) το οποίο δηµοσιοποιείται µαζί µε τα υπόλοιπα στοιχεία του κάθε συµµετέχοντα, π.χ. σε µια προσφορά εργασίας ή σε προτεινόµενο διαγωνισµό και αποτελεί το βασικό παράγοντα εκτίµησης ρίσκου. Στα πλαίσια της εργασίας ο βαθµός αυτός θα είναι ο µέσος όρος των βαθµών που έχουν αποδοθεί από τους χρήστες. Κατά το κλείσιµο ενός ανοιχτού διαγωνισµού ο εργοδότης επιλέγει µεταξύ των διαθέσιµων προσφορών και αναθέτει το έργο σε έναν ή περισσότερους ειδικούς. Τόσο οι ειδικοί όσο και ο εργοδότης µπορούν να καταθέσουν σχόλια και βαθµολογίες µόνο εφόσον γίνει ανάθεση του έργου. Οι ειδικοί που έχουν επιλεγεί λαµβάνουν την ανακοίνωση ανάθεσης, ενώ όλοι οι υπόλοιποι που υπέβαλλαν προσφορά, λαµβάνουν ενηµέρωση ολοκλήρωσης του διαγωνισµού.
Ανάπτυξη σε P2P μοντέλο Το σύστηµα αυτό θα είναι βασισµένο στην αρχιτεκτονική οµότιµου-προς-οµότιµο (peer-to-peer), ενώ θα υλοποιηθεί µε τη χρήση της γλώσσας προγραµµατισµού Java και της τεχνολογίας JXTA. Για τη λειτουργία του συστήµατος θα ορισθεί µια κλειστή οµάδα οµότιµων κόµβων (peer group) µε ελεγχόµενη πρόσβαση. Έτσι, προκειµένου ένας εργοδότης ή ειδκός να συµµετέχει στους διαγωνισµούς ή/και να δηµιουργεί νέους διαγωνισµούς, απαιτείται η πιστοποίησή του µε τη χρήση της κατάλληλης υπηρεσίας. Στα πλαίσια της υλοποίησης θα υπάρχει µια σχετική διαφήµηση για καθε διαγωνισµό και κάθε οντότητα. Ένας µειοδοτικός διαγωνισµός ξεκινά µε τη δηµιουργία και δηµοσίευση από κάποιο εργοδότη της αντίστοιχης διαφήµισης στο p2p δίκτυο. Η διαφήµιση θα περιλαµβάνει επιπλέον τα στοιχεία του οµότιµου κόµβου του εργοδότη που ξεκινά το διαγωνισµό, τον κωδικό του διαγωνισµού, τα απαραίτητα προσόντα και εµπερία, την ηµεροµηνία δηµιουργίας και λήξης του διαγωνισµού. Η ηµεροµηνία αυτή χρησιµοποιείται επίσης για τον προσδιορισµό του χρόνου ζωής (time-to-live) του αντίστοιχου εγγράφου διαφήµισης στο δίκτυο. Σηµειώνεται ότι για τους ανοιχτούς διαγωνισµούς θα υπάρχουν διαφηµίσεις µε χρόνο ζωής έως το χρονικό σηµείο λήξης του διαγωνισµού ενώ για τα έργα που έχουν δηµοπρατηθεί θα υπάρχουν διαφηµίσεις που παραµένουν για πάντα στο δίκτυο. Κατά την είσοδό του στο σύστηµα, κάθε οµότιµος κόµβος επιλέγει τον τρόπο µε τον οποίο θα λειτουργεί π.χ. εργοδότης ή ειδικός. Στην περίπτωση των κόµβων που θα λειτουργούν ως ειδικοί, ενεργοποιεί κατά την είσοδο µια διαδικασία συνεχούς αναζήτησης διαφηµίσεων ενεργών διαγωνισµών. Σε περίπτωση που ο εκάστοτε ειδικός ενδιαφέρεται για κάποιο διαγωνισµό µπορεί να αναζητήσει το πλήρες σύνολο των στοιχείων του διαγωνισµού µε την χρήση ξεχωριστής υπηρεσίας την οποία θα προσφέρουν όλοι οι κόµβοι που λειτουργούν ώς εργοδότες. Αντίστοιχα, κατά την είσοδο ενός εργοδότη κόµβου στο δίκτυο το σύστηµα ξεκινά µια διαδικασία αναζήτησης διαφηµίσεων ειδικών η οποία τελικά φιλτράρεται και εµφανίζει στον εργοδότη µόνο τους ειδικούς των οποίων τα χαρακτηριστικά (ικανότητες) ταιριάζουν µε τις απαιτήσεις των έργων τα οποία έχει δηµοσιεύσει. Από την λίστα αυτή ο εργοδότης µπορεί να επιλέξει κάποιον ειδικό και να στείλει πρόσκληση για την συµµµετοχή του ειδικού σε κάποιο συγκεκριµένο έργο. Για την λήψη προσκλήσεων θα πρέπει όλοι οι κόµβοι των ειδικών να προσφέρουν σχετική υπηρεσία. Επιπλέον για την αναζήτηση επιπλέον στοιχείων σε σχέση µε τον εκάστοτε ειδικό, οι κόµβοι των ειδικών θα προσφέρουν κατάλληλη υπηρεσία. Με βάση τα στοιχεία ενός έργου ο κάθε ενδιαφερόµενος θα µπορεί να αναζητήσει σχόλια από τον εργοδότη και τους εργαζοµένους του. Οι γενικές πληροφορίες του έργου θα διατηρούνται και θα προσφέρονται από τον κόµβο του εργοδότη ενώ τα σχόλια των συµµετεχόντων από τον αντίστοιχο κόµβο, πχ. τα σχόλια του εργοδότη για τους εργαζόµενους στον κόµβο του εργοδότη. Για την προσφορά των συγκεκριµένων πληροφοριών οι κόµβοι θα πρέπει να προσφέρουν αντίστοιχες υπηρεσίες.
Κάθε κόµβος ελεύθερου επαγγελµατία εφόσον υποβάλει προσφορά για κάποιο ανοιχτό διαγωνισµό, η προσφορά του διατηρείται τόσο στον κόµβο του όσο και στου εργοδότη. Για την συγκεκριµένη µορφή εργασίας δέν είναι απαραίτητη η ανάπτυξη ενός γραφικού περιβάλλοντος εκτέλεσης. Θα πρέπει όµως να προσφερθεί τουλάχιστο ένα απλό command line περιβάλλον το οποίο θα επιτρέπει την χρήση των λειτουργιών της εφαρµογής. Ανάπτυξη με Android Όλες οι λειτουργίες που περιγράφηκαν για το σύστηµα θα πρέπει να υλοποιηθούν ως REST υπηρεσίες οι οποίες θα προσφέρονται από έναν κεντρικό εξυπηρετητή και θα είναι διαθέσιµες στους χρήστες µε την ανταλλαγή JSON µηνυµάτων. Για την χρήση της εφαρµογής, είναι απαραίτητη η ανάπτυξη κατάλληλης διεπαφής η οποία θα µπορεί να εκτελεστεί σε τουλάχιστο δύο εκδόσεις του Android OS (v22 & v19) και διαφορετικές µορφές κινητών πλατφόρµων (tablet & phone). Το προσφερόµενο γραφικό περιβάλλον θα πρέπει να επιτρέπει την γρήγορη και εύκολη πλοήγηση προς τις λειτουργίες του συστήµατος µε την χρήση κατάλληλων µενού. Επιπλέον των λειτουργιών που αναφέρθηκαν στην αρχή της εκφώνησης και για την προσαρµογή των απαιτήσεων της εφαρµογής στις δυνατότητες των κινητών συσκευών, οι διαγωνισµοί που δηµοσιεύει κάποιος εργοδότης θα µπορούν να εξειδικευτούν και σε επίπεδο Χώρας και Περιοχής. Κάθε εργοδότης θα µπορεί να προσθέσει συγκεκριµένη περιοχή από την οποία θα πρέπει αναζητηθούν ειδικοί. Η τοποθεσία του κάθε ειδικού θα πρέπει να εξαχθεί από την θέση της κινητής συσκευής. Οπότε µόνο όσοι ειδικοί βρίσκονται εντός των οριών της καθορισµένης περιοχής θα µπορούν να υποβάλουν προσφορές. Τέλος, κατά την αναζήτηση ανοιχτών διαγωνισµών ή και ειδικών οι σχετικές υπηρεσίες αναζήτησης θα µπορούν να εξειδικευτούν και µε βάση την θέση. Τόσο οι ειδικοί όσο και οι εργοδότες θα µπορούν να αναζητήσουν διαγωνισµούς ή και ειδικούς σε συγκεκριµένες περιοχές εφόσον το επιλέξουν. Λοιπές Πληροφορίες Η εργασία είναι υποχρεωτική και µπορεί να πραγµατοποιηθεί είτε ατοµικά, ή από οµάδες των δύο (2) ατόµων. Το ποσοστό της επί του συνολικού βαθµού του µαθήµατος διαµορφώνεται σε 50%. Κάθε οµάδα θα πρέπει να επιλέξει µεταξύ των δύο εναλλακτικών υλοποιήσεων αλλά δεν απαγορεύεται και η ανάπτυξη µε βάση τον συνδυασµό των δύο τεχνολογιών. Η υλοποίηση όλων των λειτουργιών, και σχετικών υπηρεσιών µπορεί να πραγµατοποιηθεί µε τη χρήση της γλώσσας προγραµµατισµού Java και της τεχνολογίας JXTA ή του Android περιβάλλοντος αντίστοιχα. Αποκλειστικά και µόνο στην περίπτωση ανάπτυξης µε βάση το P2P µοντέλο, επιτρέπεται η χρήση και άλλων τεχνολογιών. Ωστόσο στην περίπτωση που χρησιµοποιηθεί άλλη τεχνολογία αντί του JXTA, θα πρέπει να αποδειχθεί ότι αυτή δεν καταστρατηγεί το µοντέλο οµότιµου-προς-οµότιµο. Επιπλέον στην περίπτωση χρήσης άλλων τεχνολογιών δέν µπορει να προσφερθεί τεχνική βοήθεια.
Οι εργασίες θα περάσουν από έλεγχο για αντιγραφή. Σε περίπτωση που διαπιστωθεί αντιγραφή µεταξύ δύο ή περισσοτέρων οµάδων, όλες οι εµπλεκόµενες εργασίες αυτοµάτως θα µηδενιστούν. Η εργασία θα παραδοθεί ηλεκτρονικά, αποκλειστικά µέσω της ιστοσελίδας e- class του µαθήµατος. Η υποβολή θα περιλαµβάνει ένα αρχείο.zip στο οποίο θα περιέχεται το Java project µε τον πηγαίο κώδικα, τις απαραίτητες βιβλιοθήκες, καθώς και ένα αρχείο, στο οποίο περιγράφονται οι σχεδιαστικές αποφάσεις, οι παραδοχές, καθώς και διάφορες άλλες λεπτοµέρειες υλοποίησης, εγκατάστασης και εκτέλεσης της εργασίας. Η εργασία θα πρέπει να παραδοθεί σύµφωνα µε τον ανωτέρω τρόπο το είτε στις 6 Ιουλίου ή στις 7 Σεπτεµβρίου 2015. Εργασίες που έχουν παραδοθεί µέχρι 6 Ιουλίου δεν µπορούν να παραδοθούν το Σεπτέµβριο.