Technical stack (Front-end)
Patient mobile application
Proposed Tech Stack
Technologies
React Native
Component/theme are based on Google Material Design for Android and iOS style for iOS devices
Recommended End-user requirements
iOS 12 or newer
Android 6.1 or newer
Benefits
Chosen technologies are all rooted in free Open Source projects
The components are popular and widely used in Android and iOS
Support wide range of mobile versions, maximizing the reach and usability of the app
Choosing React Native means that the system can be developed and compiled for both iOS and Android instead of built separately
Mobile App Framework
Technologies
React Native
Benefits
Free Open Source
Proven success and long-term sustainability. React Native is being used world wide by many huge brands.
Created by Facebook, adopted and supported by huge community
Easy to learn for software developers meaning it is easy to find software companies to further develop and scale the solution
Third Party Applications
While the final list of 3rd-parties to be used will be finalized during the project planning phase, we can highlight a few below:
Commonly used NPM packages which adds more functionality to React Native.
Rocket Chat for online messaging, audio and video conference
Our approach is to speed up the development process, and avoid re-inventing the wheel. By using free open source projects like popular packages in NPM and messaging tool like Rocket Chat, the final product will be built with simple, easy to maintain code which doesn't have a risk to become obsolete in the short-term.
Therapist web application and Administrator web application
Client Side
The client side means to be the look and appearances of the app which will be seen and used by the users. This will be developed independent of the the server side and will be communicated via API. This is a part of micro-services as stated above.
Technologies
ReactJS
Google Material Design
Benefits
All are free open source
Modern (HTML5, CSS3, JSX support)
Having loose coupling between client and server, the Therapist web application is interoperability ready. HI could add more clients such as a mobile app for therapists, or for exchanging data with with other partner organizations.
Server Side
As stated in the client side section, the server is to be developed as independent system and as part of the micro-services. This will make the Therapist web app a very versatile system which satisfies HI's requirements for scalability. For instance, HI can develop a mobile app for the Therapists which connects to the online system without further development work on the server side.
This will greatly reduce the risk of server failure if there is any bug/issue in the client side or vice versa.
Technologies
Laravel framework for API
Zuul for API Gateway
Keycloak for Identity and Access Management
Swagger for API documentation
Benefits
All are free open source and popular for enterprise-class software development
Robust in terms of reliability and security
Widely known by software developers and easy to find software suppliers for future maintenance or enhancements
Technical stack (Back-end)
...
Item
...
Technology
...
Comment
...
Item
...
Technology
...
Comment
...
Hosting
...
Table of Contents | ||||
---|---|---|---|---|
|
Introduction
OpenTeleRehab was designed and implemented based on the following guiding principles:
A future system must be conceptualized and implemented with the needs of the end-users in mind. This means actors have the chance to test early, providing valuable feedback for definition and refinement
The system should use a modular system design and micro-services architecture to make it easier to implement changes in the future
A thorough and stable implementation and early piloting are achieved incrementally through agile development. It assures strict orientation at business value and improves quality through regular development, validation and learning cycles
The information must be integrated and centralized ideally, in the cloud. This decreases vulnerability to local system failure, increases scalability and allows for wider access, process improvement and automation
The key approach for OpenTeleRehab is using micro-services architecture that leaves the door open for integration of other third-party applications that may be able to provide cost-effective solutions for certain components. For example, Google Calendar can be used appointment system instead of custom made solution when the majority of users want to only have one calendar. Or another example, Moodle could be used for the Education Management Service, saving costs and resources over a custom made solution. This approach will enable future extension, scalability and stability to ensure the growth of the app users and coverage from one county to the global expansion. Offline data can be synced thanks to API support. Accessing to the internet in rural areas is challenging, and we have worked with government ministries and organizations to solve this by using mobile applications to store and sync offline data.
Micro-Services Architecture
Micro-services, also known as the micro-services architecture, is an architectural style that structures an application as a collection of services that are highly maintainable and testable, loosely coupled, independently deployable and organized around business capabilities. See https://hidsi.atlassian.net/wiki/spaces/OpenTeleRehab/pages/8718218/Architecture+Details+and+Diagrams#Micro-services-Architecture .
OpenTeleRehab Modules
The OpenTeleRehab application is a combination of 3 modules that interact with each other to help therapists and patients with rehabilitation treatment. The first module is a web application for Administrators that can manage the contents and users of the system. The second module is a web application for Therapists where they can manage their patients and manage their treatment plans. Lastly, the third module is a mobile application for Patients to help them follow the treatment plan given by their therapist and contact them for consultations.
Admin Portal and Therapist Portal
Are web applications for organizational administrators and therapists who manage other users of the system and provide the clinical content to support therapists to create treatment plans for patients. These portals enables administrators and therapists to manage all content related to other modules. The frontend is developed using ReactJS and Google Material Design following an initial Figma Design prepared by HI. See Initial Figma Designs. The backend of the portal is developed separately and follow the micro-services architecture mentioned above that allows all three modules to connect to these micro-services independently. These micro-services uses technologies like Laravel framework, Restful APIs, Identity and Access Management systems and other open-sourced third-party systems that can easily be integrated as a micro-service using Restful APIs.
Patient Mobile App
The Patient Mobile App is designed to assist patients to follow the treatment plan given by the therapist. It displays the scheduled activities for the day and appointments and the progress the patients have made. It also supports chat and call features that allow the patients to be in contact with their therapists. The mobile app was developed using ReactNative and Google Material Design components that follows the initial Figma Design prepared by HI. See Initial Figma Designs. A kid friendly theme for the mobile app was also developed.
Chosen technologies are all rooted in free Open Source projects and the components are popular and widely used in Android and iOS. Choosing ReactNative means that the system can be developed and compiled for both iOS and Android instead of being built separately.
Technology Stack
Item | Technology | Comments |
---|---|---|
Hosting | Amazon Web Services (AWS) provides a wide range of services with option to upscale the match with the peak demands.
Experience: Web Essentials has implemented AWS for both national projects in Cambodia and enterprise customers in Europe (cf. Case Study). | |
Operating system and webserver | Many operation services we proposed (database, firewall, never-proxy, ...) are available as SaaS and operating system is not needed. In case we added extra services which requires OS, our default and preferred OS is Ubuntu which has been used worldwide. | |
Programming language and frameworkPHP Laravel Framework | We have implemented multiple successful Laravel projects for governments and NGOs, including the multilateral health-related solution IDPoor - please see the references in the "Qualifications of the Service Provider" as part of this proposal | |
DatabaseMaria DB | Our chosen database for this project is MariaDB, however we are flexible in the final choice. A high-level comparison of the two solutions: MariaDB: open-source, well-maintained by community, frequent security fixes MySQL: open-source but maintained by Oracle which increases dependency |