MoSCoW List Achievements

Functional Requirements
Number Description Priority Status Contributor(s)
1 Multiple Dashboards Feature Must Sarvesh , Nathan
2 Create Read Update and Delete Dashboards Feature Must Sarvesh , Nathan
3 Improve User Interface to be useable for desktop and mobile devices(responsive) Must Sarvesh , Nathan
4 Department Managers create new dashboards for all clinicians within a department Must Sarvesh , Nathan
5 Clinicians and department managers are able to answer likert scale questions for their self-assessment Must Sarvesh , Nathan
6 Clinicians and department managers can visualise their progress via a line chart Must Sarvesh , Nathan
7 Clinician self-reporting results remain anonymous. Must Sarvesh , Nathan
8 Platform Administrators should be able to add new hospitals and healthboards Must Sarvesh , Nathan
9 Platform Administrators create new dashboards for all departments on the entire system Should Sarvesh , Nathan
10 List of dashboards should be easily accessible by being searchable Should Nathan
11 Test front-end, backend and end-to-end(e2e) Should Sarvesh , Nathan
12 Include non health and care standards Won't N/A
13 Non Likert-Scale questions for the self-report Won't N/A


Non-Functional Requirements
Number Description Priority Status Contributor(s)
14 New Entity Relation Diagram Must Sarvesh
15 Include deployment Documentation Must Sarvesh , Nathan
16 The System must have a user manual to help assist navigation of the website Must Sarvesh , Nathan
17 Re-new prisma schema for more than one dashboard rather than just care quality alone Must Sarvesh , Nathan
18 Include a simple User interface Should Sarvesh , Nathan
19 Secure Platform to Avoid Data Breach Should Sarvesh , Nathan
Known Bugs List

Number Bug Description Priority
1 A rare case of deleting a dashboard with the same name as a previously deleted dashboard will cause an error. This bug does not hinder the overall experience of our web application Low
2 Signing out and trying to log into the system again using a different account, quickly will automatically sign the previous user back into the system.(This bug is caused by keycloak) Low
Individual Contribution Table

Task Description Daniel Nathan Sarvesh Yipeng
Project Client Liason 5% 45% 45% 5%
Requirements Analysis 25% 25% 25% 25%
Project Research 33% 33% 33% 0%
User Interface Design 25% 25% 25% 25%
Programming Main Project 0% 50% 50% 0%
Deployment 0% 50% 50% 0%
Report Website Editing 30% 20% 20% 30%
Project Testing 0% 40% 60% 0%
Video Editing 25% 25% 25% 25%
OVERALL CONTRIBUTION 20% 32.5% 32.5% 15%
Main Roles Report website Editor, Researcher Front End Developer, Tester, Researcher Backend Developer, Tester, Researcher Report Website Editor
Critical Project Evaluation

We were able to incrementally re-structure the previous front-end of the website to adjust for the multidashboard feature. We would show our client and our users the updates on a weekly basis, to ensure that the fine details and design choices were up to standard and provided a good user experience. We also included better media queries to support different mobile devices which have varying screen sizes.

For some visualisations, such as displaying tables with many coloumns, mobile devices would need to rotate their screens, therefore if there was a way to indicate (via an alert dialog) to the user to rotate their screen, it would improve the overall user experience of our web application.

Furthermore, the overall theme was kept consistent and the dark mode works as expected and is intuitive to use. Where possible we tried to reduce the amount of whitespace, but there is still improvement in this area.

Overall, we successfully focused on usability while maintaining HCI design principles such as visibility, consistency, and mapping throughout the front-end development of the web application.
All requirements of our system have been met, and clinicians can begin using the system. Our application is scalable which means that platform adminsitrators can easily add new health boards and hospitals into the system and their respective users to control their accounts. From which Health board users can add new hospitals and Hospital users can create new departments. Finally, Department Managers can add new clincians. All invitations are done by superiors sending a single join url to their staff and the registration process is carried out by keycloak. This could have been improved if the invitation system was handled automatically by our system via an email, rather than the user having to manually do it themselves, which would save time for users.

All dependencies used in our web application are popular and open-source. Our authentication and role-assignment processes are offloaded to Keycloak, which is also open-source, making it highly improbable to have security vulnerabilities.
Overall, our application is stable and is able to run smoothly on all devices. The tests written to render individual front-end components help to support the stability of the application.

The application is currently running on a Linode server with only 1 Core and 1GB of RAM. Therefore, it is limited in terms of handling a high number of requests to the server. In the future, upgrading the current server to a new one with more processing power and storage space will be a priority.

Other factors that can rarely affect stability on the user's end include:
  1. poor internet connection
  2. poor system hardware
  3. Accessing the web application on an unsupported web browser
From our requirements we wanted our web application to be responsive as most users will be using it on range of devices. Therefore, we were able to achieve this using media queries.

Our project aimed to be accessible by all clincians via most web browsers. Currently, our end-to-end tests use the puppeteer api to instantiate visual tests of the firefox and google chrome browsers. From our tests, we can conclude that our project is compatible with chromium web browsers. For future development, we could conduct the same tests for other web browsers(such as Safari) to ensure full functionality accross all web browsers. In terms of accessibility we could have improved our project by using the ARIA and WAI-ARIA standards. This would have been a priority for future development.
Going into the project, we knew that the level of code quality had to be maintained and improved where necessary. We wanted to prevent any confusion for future developers who undertake the next iteration of the project.

Technologies used to help maintain code quality:
a) Prettier - To ensure code formatting was kept consistent (spacing, line wrapping, indentation) accross most files in our project.

b) Eslint - To detect and fix general quality issues, such as unused variables and functions, missing semicolons, etc.

Along with our code quality tools, we further extended our documentation on our github repository in the form of README files, which highlight the architecture, deployment and getting started for the next developers who take on the project.

During development major changes were made to the backend, therefore using swagger and the OpenAPI specification we could document the REST API including the responses and parameters. It is currently hosted on our github pages and can be found here

We also included workflows built in to our github repository so that changes made to the main branch would automatically generate documentation for our API, Test frontend components and deploy to our linode server. We could have developed this further to include automated tests for the backend and e2e. Although, on our local machines we are able to pass all unit tests.
We primarily used trello to communicate with our client about general updates and and to keep track of our progress in stages. It also helped us monitor completed tasks from each member during the development of the project.

The team created our own telegram group chat for effective daily communications

For immediate responses to our client we used a whatsapp group chat.

The team would meet via zoom to discuss about deliverables needed for the module, conduct pair programming and talk about future steps we would take in order to achieve our goals.

While we thought that the team had continuous and effective communication with one another, we encountered bugs during our development stage. Therefore, the use of github issues would have been great to keep track of new tasks and existing bugs on our system.
Possible Future Work
  1. Fixing known bugs

  2. Include expiry date for clinician join codes - This would prevent a user from unintentionally sharing an active link to many people

  3. Include a way to differentiate dashboards created by departments and adminstrators

  4. The ability to automatically save answers to self-report will be very helpful for users - Users on our system can be busy and may want to answer a self-report at a later stage