Ψηφιοποίηση εγγράφων και διασφάλιση γνησιότητας με χρήση της τεχνολογίας blockchain
Document digitation and validation using blockchain technology
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Γνησιότητα εγγράφων ; Blockchain ; OCRΠερίληψη
Η παρούσα διπλωματική εργασία εκπονήθηκε στα πλαίσια του Προγράμματος Μεταπτυχιακών Σπουδών “Προηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού και Τεχνητής Νοημοσύνης”, και έχει ως στόχο την υλοποίηση web εφαρμογής, για την ψηφιοποίηση εγγράφων βαθμολογίας φοιτητών και τίτλων σπουδών πανεπιστημίου, αξιοποιώντας την τεχνολογία blockchain.
Έχει αναπτυχθεί κατάλληλο περιβάλλον χρήστη front-end σε angular framework προκειμένου να ανεβάζει αρχεία κατάλληλα εξουσιοδοτημένος υπάλληλος πανεπιστημίου, ο οποίος έχει επίσης δικαίωμα αναζήτησης των φοιτητών, των εγγράφων τους αλλά και των πληροφοριών όλων των blocks του blockchain. Οι φοιτητές μπορούν με την είσοδό τους στην εφαρμογή να κάνουν αναζήτηση των δικών τους εγγράφων και να δουν πληροφορίες των blocks που είναι εγγεγραμμένη η δική τους πληροφορία. Επίσης οι φοιτητές μπορούν να δουν στοιχεία επικοινωνίας των υπαλλήλων - καθηγητών του πανεπιστημίου. Οι ρόλοι των χρηστών μπορούν να επεξεργαστούν από τον διαχειριστή (admin) του συστήματος, ο οποίος μπορεί να τροποποιήσει το ρόλο των εγγεγραμμένων χρηστών.
Το backend έχει αναπτυχθεί σε αρχιτεκτονική microservices με Spring Webflux, χρησιμοποιώντας ασύγχρονες κλήσεις προς τα microservices, ενώ χρησιμοποιήθηκε MongoDB για ασύγχρονη αναζήτηση και αποθήκευση των εγγράφων. Εκτός από την απευθείας κλήση μεταξύ των microservices χρησιμοποιήθηκε message broker (RabbitMQ) ώστε να διασφαλιστεί η απρόσκοπτη επικοινωνία μεταξύ τους, και να εξασφαλιστεί ότι δεν θα υπάρξει απώλεια δεδομένων. Για την αποθήκευση εγγράφων, είναι αποδεκτά αρχεία τύπου pdf αλλά και PNG, JPG τα οποία μετατρέπονται σε PDF με τη χρήση OCR, ενώ για το tracing των requests χρησιμοποιήθηκε zipkin.
Τέλος για την ασφάλεια της εφαρμογής χρησιμοποιήθηκε keycloak server ο οποίος εκδίδει Json Web Tokens (JWT) για κάθε κλήση των συνδεδεμένων χρηστών στο front-end και επιβεβαιώνει την εγκυρότητα του στο back-end. O server χρησιμοποιεί postgres βάση δεδομένων για την αποθήκευση των χρηστών.