Overview

This week we have done some further testing on our program to ensure the coverage and the quality of our app. More importantly, we have successfully deployed the app onto a server, so it can be used by the link https://dauletbatayev.com/.

Testing

End-to-end Tests

End-to-end testing was crucial in our project as it brings both the frontend and the backend together. Cypress is the tool we used for that. Cypress is a great end-to-end testing framework and provides time travel functionality which helped uncover subtle bugs in the system.

End-to-end Tests

User Acceptance Tests

For user acceptance tests, we were lucky to get feedback from the clinicians who would be using our application and from other people who fit our user persona.

Overall, every user has given very positive feedback, and our clients were ecstatic with the usability of the application and its HCI component.

Here are some examples of users’ feedback:

User Acceptance Tests

Responsive Design Tests

For responsive design testing, we used Chrome and Firefox developer tools and simulated several devices of different screen resolution.

Our application has proven to be very responsive and passed all the tests on different screen sizes.

The following are some of the screenshots:

Responsive Design Tests 1

Responsive Design Tests 2

Responsive Design Tests 3

Responsive Design Tests 4

Compatibility Tests

To ensure our application functions as intended regardless of the device, operating system, or software, we performed compatibility tests.

We tested the application on Windows 10, Ubuntu 20.04, Ubuntu 20.10, Pop.OS 20.10, macOS in all following browsers: Firefox, Google Chrome, Microsoft Edge, Safari.

We were excited to see that the application was compatible with different devices, browsers and operating systems!

Deployment Experience

Over the past week, we focused on deploying the application on the Virtual Private Server (VPS). We used Digital Ocean, as Daulet had previous experience deploying a full-stack application on there. We nicely wrapped up our code, added Dockerfiles, as well as extracted all the database credentials, admin passwords in environment variables, added baseURL variables, and prepared the codebase to be deployed.

There were some interesting problems along the way such as running out of RAM (we have a 1GB droplet) when running npm run build on the client-side, as well as naming of the jwtToken in the header of the request. Thankfully, we managed to find a way around them.

We have set up our PostgreSQL database on the server-side, and run the database.sql script to create the suitable schema. We seamlessly installed all the dependencies for the Node.js backend and used pm2 for running the Node.js server.

Then we have configured the Nginx web server and reverse proxy, and have successfully deployed the application at https://dauletbatayev.com/ for demonstration purposes.

We have also added a thorough ReadME in our GitHub repository https://github.com/COMP0016-Team6/NHS-Patient-Dashboard which has very detailed step-by-step instructions to run the application locally and to deploy it on a Linux VPS of any cloud providers (AWS, Digital Ocean, GCP, etc.)

We will also make sure the same deployment manual is available on our portfolio website.