diff --git a/report/REPORT.md b/report/REPORT.md index eb4624d..5c55d37 100644 --- a/report/REPORT.md +++ b/report/REPORT.md @@ -85,7 +85,7 @@ However, there were a few downsides of using the Monolithic architecture which l To enable UniBasement to meet the described architecturally significant requirements, a layered architecture comprised of four layers was implemented. The highest layer was the Presentation Layer, which was comprised of our front-end, built with Next.js using Tailwind. These technologies were chosen as they are industry standard which enables easier contribution. Components within the front-end were designed to be generic and extensible where possible whilst maintaining a maximum of 300 lines to minimise complexity. Unit tests were implemented through the integration tests to ensure that functionality was as expected. The business layer was implemented to handle the application logic, business rules, and objectives; it handles the logic and enables the functionality of the application. This was implemented within Node.js and tested through Jest which are both industry standard. The Persistence Layer manages requests and interacts with the database (DB). Through the use of TypeORM, the developer experience is enhanced whilst adding a protective barrier for the DB. By abstracting the database interactions, the DB technology is interchangerable and it also streamlines development. The DB Layer was implemented via PostgreSQL as it’s an industry-standard relational database management system (RDBMS). PostgreSQL ensures data security and provides robust features for managing data. -![UniBasement Layered Architecture Implementation](../report/Images/Layered Architecture Implementation.png) +![UniBasement Layered Architecture Implementation](./Images/Architecture.png) UniBasement has been implemented in a manner to ensure that the architecturally significant requirements are achieved. A key focus is placed on the maintainability of the application through the use of industry wide technologies. This is evident through the implementation of actions running our unit tests, and providing documentation to ease the developer into the project. Additionally, reliability has been ensured through the implemention of thorough integration testing, the use of an ORM to provide abstraction which enables higher-level control of the DB, and through scaling of the application. The availability of the application is ensured through the deployment methodology.