Overview

Since we have completed the primary research of infusion pumps, finalised the UI and the MoSCoW requirements, this week our team started discussing the development process of the application and considered several system architecture options.

Tech Stack

To choose the tech stack, we considered our previous experiences and preferences, carefully evaluating the suitability of this project by constantly referring to the MoSCoW requirements. It was important for us that the language or technology had good documentation and had many available open-source resources that we can benefit from.

Our team has gone for the following tech-stack:

  • Front End: React
  • Back End: NodeJS (Express)

While not everyone in the team was familiar with that tech stack, we chose it because of the following:

  • React: stable, efficient, beginner-friendly JavaScript framework, which makes creating a user-friendly, scalable, and dynamically changing interface simple. There are a ton of useful libraries and resources available, and the documentation is very well written. Since React is modern and popular, there will be no problems for incoming developers to maintain the codebase.

  • NodeJS: a JavaScript runtime environment, easy to get up and running as a back end. Open source, and has a lot of libraries, support, convenient package manager, and thorough documentation.

Using the same language both in the front-end will save time learning more technologies and will make the development process simpler, allowing us to focus more on the quality of the project instead.

We will be using a relational database management system, PostgreSQL.

Backend

We have also considered using Django on the backend. However, we went with NodeJS as it aids the simplicity by having both the back end and front end in JavaScript. Also, though Python and JavaScript are both single-threaded, NodeJS has asynchronous functions, while Django does not. This makes NodeJS a more efficient and convenient solution. From our previous experience, NodeJS is relatively quick to get up and running, and choosing it is a wise decision, given the time constraints of the project.

Database

For storing and managing the data, we decided to use PostgreSQL DBMS. This is because we covered relational databases and SQL in detail during Term 1 of this academic year. We chose PostgreSQL over other relational databases because of many features to protect data integrity and to build fault-tolerant environments in addition to being highly extensible.

Next Steps

We will think about the JSON data model that the back end would respond to the front end with.

Throughout the next week, we will spend some time refreshing and learning React concepts.

We will then start implementing reusable React components following the prototype designed on Figma.