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

View/ Open
Keywords
Microservices ; e-Commerce ; Stripe ; REST API ; API gateway ; OAuth2 ; Entity Framework Core ; Integration testing ; E2E testing ; NUnit ; Playwright ; Claims-based RBACAbstract
This thesis presents the design and implementation of a full-featured e-commerce management
application (EshopApp), with the primary goal of practically exploring the microservices architecture.
The project was developed as part of a personal progression through software architectural styles,
building on prior experience with monolithic and N-tier approaches.
The system was built using ASP.NET Core and consists of four independent microservices (auth,
data, email and transaction), an API Gateway serving as the central orchestration point, and an MVCbased frontend application. The system provides complete e-commerce functionality, covering
product management, orders, users, discounts, payments, and email communication. External
authentication via OAuth2, payment processing via the Stripe API, and a dynamic claims-based role
and permission authorization system were all implemented.
Particular emphasis was placed on backend reusability and clear separation of business concerns,
with several microservices having been reused with minimal modification in other projects. Backend
code quality was verified through extensive integration tests across all services, complemented by
targeted end-to-end tests covering critical authentication flows.
The thesis concludes with a critical evaluation of the microservices architecture, highlighting its
strengths in terms of service independence and reusability, while also documenting the practical
challenges arising from the absence of a message queuing system, the lack of distributed transaction
rollback mechanisms, and the increased operational complexity compared to simpler architectural
approaches.


