High Level Architecture - HeartUoA/HeaRT GitHub Wiki

Software Architecture

Architecture Diagram

The Architecture of HeaRT can be broken down into 3 main parts.

1. Front-end

This represents the client's user interface. Users of HeaRT interact with this part of the application that allows them to create and compare charts. The front-end interface sends API calls back to the Express back-end when a user registers, logins in, creates a course, creates/updates a chart and its dimensions.

2. Express Back-end

This back-end receives requests from the front-end, translates the commands and updates/stores the correct items in MongoDB database.

3. MongoDB Database

MongoDB is a NoSQL-style database that utilises JSON-style documents which allows the team to use the Express JS back-end to communicate and persist critical information. This database is responsible for managing the users of HeaRT, as well as the courses and charts that the users create. When a user registers, they are stored in the database with a unique user ID. When they create a new course or chart, this is stored in the database with a unique course or chart ID alongside other information around the course or chart, which can be accessed later to understand users' usage of HeaRT. All this information is then accessed by the Express back-end when a command is invoked in the front-end.