Σχεδίαση και υλοποίηση ολοκληρωμένης εφαρμογής ηλεκτρονικού εμπορίου βασισμένης σε αρχιτεκτονική μικροϋπηρεσιών
Design and implementation of an integrated e-commerce application based on microservices architecture

Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Microservices ; e-Commerce ; Stripe ; REST API ; API gateway ; OAuth2 ; Entity Framework Core ; Integration testing ; E2E testing ; NUnit ; Playwright ; Claims-based RBACΠερίληψη
Η παρούσα πτυχιακή εργασία παρουσιάζει τον σχεδιασμό και την υλοποίηση μιας ολοκληρωμένης
εφαρμογής διαχείρισης ηλεκτρονικού καταστήματος (EshopApp), με κύριο στόχο την πρακτική
διερεύνηση της αρχιτεκτονικής microservices. Το έργο αναπτύχθηκε στο πλαίσιο μιας προσωπικής
πορείας εξοικείωσης με κατανεμημένα συστήματα, αποτελώντας φυσική συνέχεια προηγούμενης
εμπειρίας με μονολιθικές και N-tier αρχιτεκτονικές.
Το σύστημα υλοποιήθηκε με χρήση ASP.NET Core και αποτελείται από τέσσερις ανεξάρτητες
μικροϋπηρεσίες(αυθεντικοποίησης, δεδομένων, ηλεκτρονικής αλληλογραφίας και συναλλαγών), ένα
Gateway API ως κεντρικό σημείο ενορχήστρωσης, και μια εφαρμογή frontend βασισμένη στο MVC
αρχιτεκτονικό πρότυπο. Το σύστημα παρέχει πλήρη λειτουργικότητα ηλεκτρονικού καταστήματος,
καλύπτοντας διαχείριση προϊόντων, παραγγελιών, χρηστών, εκπτώσεων, πληρωμών και
ηλεκτρονικής αλληλογραφίας. Υλοποιήθηκαν εξωτερική αυθεντικοποίηση μέσω OAuth2, επεξεργασία
πληρωμών μέσω Stripe API, καθώς και ένα δυναμικό σύστημα διαχείρισης ρόλων και δικαιωμάτων
(claims-based authorization).
Ιδιαίτερη έμφαση δόθηκε στην επαναχρησιμοποίηση του backend και στον σαφή διαχωρισμό των
επιχειρησιακών λειτουργιών, με αποτέλεσμα ορισμένες από τις μικροϋπηρεσίες να έχουν
χρησιμοποιηθεί σχεδόν αναλλοίωτες σε άλλα έργα. Η ποιότητα του backend κώδικα διασφαλίστηκε
μέσω εκτεταμένων integration tests για όλες τις υπηρεσίες, με στοχευμένα end-to-end tests στις
κρίσιμες ροές αυθεντικοποίησης.
Η εργασία καταλήγει σε κριτική αποτίμηση της αρχιτεκτονικής microservices, αναδεικνύοντας τα
πλεονεκτήματά της σε επίπεδο ανεξαρτησίας και επαναχρησιμοποίησης, αλλά και τους πρακτικούς
περιορισμούς που προκύπτουν από την απουσία συστήματος ουρών μηνυμάτων, την έλλειψη
μηχανισμών κατανεμημένων συναλλαγών και την αυξημένη πολυπλοκότητα διαχείρισης σε σύγκριση
με απλούστερες αρχιτεκτονικές.


