The system in question comprised of two separate applications; one, that would be tailored for patients and the other, that would be customized for moderators and healthcare professionals. With an intensive discussion over which technology. to build this project in, React Native was the ideal choice. With that choice made, it was another task to choose the best backend tech that would complement usage and add to the efficiency of the app. According to our experts, Firebase & NodeJS were the two choices and since Node, combined with FeatherJS, is a JS based backend framework and gelled well with React Native, it was the obvious choice. The app was also required to be Health Insurance Portability and Accountability Act (HIPAA) compliant, which meant that the entire projects should adhere to the guidelines set by HIPAA.
The entire project was divided into 12 milestones, which ranged in duration and accomplished a set of tasks individually. The first 3 & the 6th milestone dealt with the creation and completion of a working UI with three focused on integration and the rest for adding finesse to the apps in question. The app was to have 3 major types of users: Patients, Semi-Moderators (recovered patients) & Moderators, each with their own set views, privileges and features. Some basic features of the app include an able chat messenger for patients to chat on, form creation and sending capabilities for moderators to send them to patients to fill and adding them to the relevant groups based on their choices and the ability to flag and add reactions to messages that may be intercepted by semi-moderators and acted upon, amongst many others.
In the development of the app, a combination of React, React Native & FeatherJS was used with Redux & mobx-state-tree to manage states. The first features that were implemented were account creation and authentication based (sign-up, sign-in, forgot password etc.), followed by chat room creation, adding/removing users, waiting screens, forms creation, filling and response storage, crash reports, customization tools, dark mode et cetera. A new feature of icebreakers was added in the apps which were introductory messages for new patients in a user group. All these features were discussed on by the client and the dev. team for application, feasibility and relevance before actual implementation. The feature was then created, shared with the client and then integrated with the entire app.
The UI was not an issue as an app did exist previously and the UI screens were pre-designed by the client, so the design team had no involvement in the project.
After successful integration of features, the build was passed on to the testing team which performed manual testing on the app using Sentry. The feature was rigorously tested under all imaginable circumstances to make sure that it is stable, and through every iteration, existing features were re-tested to ensure stability. Once tested and approved by the client, the feature was pushed into production , where some critical features were tested again in production environment.