User Interface
Since our users are clinicians and patients, most of them only have very elementary experience in using computers and do not understand how the web app functions. Therefore, a good UI design is very important here. When we design the UI, we always try to make it simple and clear for the users to effectively interact with the interface. In specific, they would understand how to interact with the components to accomplish a specific action. To achieve this, we have made many attempts, such as removing redundant buttons to reduce confusion for the user. Besides, consistency is also a key point of our UI design. For instance, we unified the colour style and font of the web app. This will eliminate distractions on the UI and give a pleasant feeling to the users.
Functionalities
Referring to our MoSCoW list, we have tried our best at the back-end side to cover the requirements on the list as many as we can. We are delighted to see that we are successful in covering most of them. For more information about the functionalities, please check out our demo video and go to the Design page to figure out what functions and features are available in this application and its system architecture.
Stability
Undetected bugs are potential trouble for users. Especially since our web app is supposed to be used in the children hospital, which puts forward higher requirements for the stability of our product, it is worth paying attention to. For example, in our earlier version, we didn't validate the user's input, such as, if a user leaves his name blank, the server will crash. We quickly noticed the issue and conducted thorough testing on our program to find out whether the actual results match the expected results and make sure the system is defect-free. We then confirmed that the server will not crash by adopting automatic testing to check for all possible outcomes by covering each branch.
Efficiency
Efficiency and performance have also been reviewed by us. Even if all the functionalities are working properly, the app should not feel sluggish to the users. These may include stutters or long loading times, which will greatly affect the user experience. We have ensured that there will not be any of them and also kept the response time within 200ms, thus providing a smooth experience for the user.
Compatibility
Software compatibility is also an important index to measure the quality of software. First, for the compatibility of the operating system, the ideal software should be platform-independent. Since the dependencies of our web app contain React, according to the official documentation, React supports most popular browsers, including Internet Explorer 9 and above. Another point is the compatibility of the database, for instance, if the user wants to adopt MySql instead of PostgreSQL, he just needs to change few words, like changing 'TIMESTAMP' to 'DATETIME' and then run 'database.sql'.
Maintainability
In this project, all of our dependencies are open source technology and have official documents. Users can consult relevant technical materials at any time. Meanwhile, during the implementation bit, we also adopted some programming skills to improve the readability of the source code, such as adding documentation. Besides, we comply with the principle of single responsibility to ensure that the code is maintainable.
Project Management
Offline cooperation becomes impossible due to our team members come from different cities in different time zones. Hence, online cooperation on such a complicated project is a new challenge for us. We decided to use Microsoft Teams for the subsequent meetings and online cooperation. This is mainly because that MT provides remote meeting rooms that support sharing screens, which greatly improves team cooperation efficiency.