Skip to content

Architecture Modelling

flo0126 edited this page Apr 3, 2021 · 7 revisions

Design Decision: Layered Architecture

The backend of the RepairShop is divided into two layers, REST Controller and Business service respectively, where the REST Controller handles and responds to the REST API calls from the web front end and the Business Service interacts with all Business Entities stored in the Persistence layer.

Block Diagram

Description of the Key Functional Components

Frontend

There are two frontend components for this project: Web Frontend and Android Frontend. The frontend interacts with the backend through REST API calls. The frontend is the "client side" as opposed to the backend being the "server side". The frontend is important to make the application visually appealing and easy to navigate and use for the user. The frontend will send the entered data and requests to the backend, which handles the requests and pushes the data to the persistence. The web frontend is done in HTML, CSS, and JavaScript.

Backend

The backend of the RepairShop interacts with both the frontend and persistence through the REST Controller and Business service respectively. The backend is comprised of the following 5 managements: Person, Appointment, Bookable Service, Timeslot, and Business. Each of these corresponds to a service/controller class. The service class manipulates the business entities within the backend and the controller interacts with the frontend through REST API calls. The service and controller classes interact with each other, indirectly connecting the frontend to the persistence.

Persistence

The persistence is comprised of the Business Entities and the Database. The Business Entities are manipulated by the service classes in the backend. Then, the Business Entities will then be saved to the database, where the information is stored and organized for retrieval. Each instance of an entity represents a row within the database. The information from the database is retrieved from the IDs that were assigned to each object, also known as the primary key of the entity. For this project, all the IDs for the entities are generated values.