Evaluation
Summary of Achievement
Completed Task in Term 1
- Gathering Requirements
- MosCoW Analysis
- Create Use Cases
- Platform Research
- Prototype
Completed Task in Term 2

Problems Encountered and Solution
During the development phase of this project, we have encountered a number of problems. Firstly, the inconsistency of JavaScript syntax used in different tutorials often was confusing. As a result we agreed to develop our code in ES6 standard. Furthermore, during the development of login page, we encountered conflicts with the asynchronous API calls on Firebase login system. We solved this problems by restructuring the configuration for the API calls in our system. Another problem we encountered is restrictions on the libraries used such as AdminLTE and ReactBoostrap. Our solution was to override the implementations of these libraries. We have also encountered a few problems during the development of form renderer. First, the JSON tree structure needs recursions to iterate, which leads to the nested form problem. So, we had to use another component class to act as the wrapper of the form and then iterate the child branches inside. The other problem we’ve encountered is that during the implementation of customisation functionalities, the up and down button actually needs to be one level higher than its child hierarchy however the delete button should be at the same level in the hierarchy. In order to put three buttons together, we changed the delete button so that it is now deleting by index passed to the function and it will go through the children and find the child to delete according to the index.
Critical Evaluation of the project
Architecture design
Our architectural design is based on our extensive research of design pattern as well as React.js component structure. Throughout the software development life cycle, we have produced a simple yet more concise architectural structure in order to efficiently implement the functionalities. This also will allow future developers to better understand our system. We implemented several design patterns in order to achieve good programming practice. This includes the separation of concern between the presentational component and the container component, which is in details in design section.
User interface design and user experience
Overall, our team is happy with the way the User Interface is structured. Being based on the PEACH design guide, it follows the standards described by our client and will look alike with the rest of PEACH applications. This will facilitate a better user journey as by learning the structure of one PEACH system, they would be able to easily understand the rest of components. In terms of future improvement, our team would consider adding asynchronous JSON popups to make the system even more informative and user-friendly
Stability, Efficiency and Compatibility
Our system is very efficient, as it is mainly coded in ReactJS. This enables the rendering of a virtual DOM tree with respect to the change, hence minimising the expensive DOM manipulation. Furthermore, React can be easily integrated with other system as it only serves as the view model, ensuring compatibility. Furthermore, we have agreed with other team members in the PEACH group to develop components using ReactJS, thus ensuring interoperability between the system. Our system has been stable throughout the software development life cycle and testing period. However, further system tests are required to be performed in order to guarantee its stability.
Evaluation of Testing
Our system fully meets its requirements in terms of functionality. It enables users to render forms from most of the basic templates available in EHRScape. Furthermore, during the testig stage we established that it successfully parses all the sample templates provided to us for this experimental purposes. However it could be further improved in terms of customisation functionalities - i.e. changing layout of the form. The specific details of future improvements can be found in the subsection of future work below.
Project management
We believed that we have established a strong relationship among the team members as well as with our clients. Our team always constantly updates each other regarding the progress of the project by any means. Furthermore, during the development of the project, we used several project management tools such as Ryver and Trello. This enables us to work efficiently while maintaining good communication with the relevant parties in this project.
Future Plans
Our Form Builder could be further extended by recognizing more input data types. Currently our form builder only recognizes four main types of data used in OpenEHR template data types. Furthermore, additional functionalities such as adding new fields and components to the form could be further integrated. Currently, we have only implemented basic customisation in the form. This does not allow a component to move from one container to the other, it only allows the form component to swap when they are in the same container level. If greater flexibility could be implemented in such a way that any components could be placed in valid areas of the form, it would significantly improve the functionality of the form builder. In order to make the form builder more sophisticated, the tree structure of the form generator could be displayed in addition to the form. This will allow users to understand the structure of the form better. Lastly, drag and drop functionality on form customisation could be implemented to enhance user experience.