Designing a top-level architecture for Book Heaven, our Online Bookstore Web Application, involves integrating several key features such as browsing, searching, account management, and online purchasing into a cohesive and scalable system. After reviewing the project requirements, our team found it helpful to decompose the problem into two main categories: user interaction and system management. This separation allowed us to better align each part of the system with appropriate technologies and architectural styles.
The first category focuses on the user-facing experience. This includes browsing books by category, searching by keywords, managing user accounts, adding items to the shopping cart, and completing purchases. These functions are implemented in the frontend, developed with React and TypeScript, to provide a responsive and intuitive single-page interface. The frontend communicates with backend services through RESTful APIs, ensuring smooth and secure interaction between the user and the system.
The second category centers on backend services and data management. Built with Java and Jakarta EE, the backend handles business logic such as user authentication, book catalog management, order processing, and payment integration. All persistent data users, books, and transactions are stored in a MySQL database, which ensures data reliability and consistency.
To enhance personalization, Book Heaven also includes an AI-based recommendation module powered by a Large Language Model (LLM). This component analyzes user behavior and book metadata to generate intelligent recommendations, improving user engagement and discovery.
By organizing the system into these functional layers frontend interface, backend services, and intelligent recommendations, Book Heaven achieves a modular, maintainable, and extensible design. This layered approach follows a three-tier architectural pattern, ensuring clear separation of concerns and a solid foundation for future scalability and enhancements.