Research collaborate build

Marigold Health Logo
Support Group Therapy App For Marigold Health
Helping a healthcare organization promote mental health with their concept of text-based support groups for people with mental ailments.
Client
Client
Marigold Health
Timeline
Timeline
Ongoing
Industry
Industry
Healthcare App Development Services
Location
Location
USA
Project
Project
Development
Year
Year
2020
  1. Strategy

    We were honoured to have been part of our partners noble contribution to mental health by collaborating with them on a project following the fixed scope and timeline project to build an interactive app.

    1
  2. Analysis Planning

    The goal of the project was to introduce the concept of text-based groups for those ailing from mental health and the in-house team came to the conclusion that React, React Native & FeatherJS used with Redux & mobx-state-tree to manage states was the apt technology for the application.

    2
  3. UI/UX

    The in-house team lay easy on the UI/UX aspect of the project as the designs were previously decided upon by the client.

    3
  4. Development

    The project involved the development of features for account creation and authentication, followed by chat room creation, adding/removing users, waiting screens, forms creation, filling and response storage, crash reports, customization tools, dark mode etc along with an added feature for sending icebreaker messages to new patients.

    4
  5. Testing

    The dev team conducted rigorous checks to ensure perfection using Sentry as the testing tool. After the initial testing, the product was delivered to the client for testing before being pushed into production.

    5
  6. Delivery

    Our continuing engagement with the client marks the success of the product. The Marigold Health app has been launched with new features being integrated into this absolutely unique project ever so often.

    6
About the Client

Since 2017, Marigold Health has been working day and night under founder, Ravi Shah, to tackle one of the most prevalent health conditions in the world today, mental health. Named as 'One of the most disruptive startups by the APA in 2018, Marigold health wants to bring attention to mental health and provide care to people suffering from it using technology and mobility. Marigold Health gives patients with mental health or substance abuse issues 24/7 access to a text-based group support with healthcare professionals that can help them talk their problems out, catch clinical complications early, and increase the capacity of current providers.

The Problem

In 2019, in his hunt to find the best establishment to help him with his mission, he came across NativeBase, our UI Library for React Native, which led him to us. He explored our past experiences and the work that we had done for our clientele, which won him over and brought him to our mailbox.

In our first discussion, we convinced him that we were the right people for the job and took the transaction forward. He explained his mission and his requirements to us, which, if plainly put, was an overhaul of the existing app for Marigold using the latest technology and divide functionality of the platform into two separate apps. To make this happen, we decided on a fixed scope & timeline engagement, spread across multiple phases. The first phase would last for 7 weeks, which would include development and release of both apps.

The phases that would follow would include addition of new features for the app and support for the released product through another engagement, which is ongoing.

Team On-Call

With a fixed time model engaged for the project, there was a lot of work to be done in a fixed amount of time. The project was of a sensitive nature and needed great expertise and finesse when being developed. To make it happen, we employed 3 developers who were experts in React to handle the tasks, with a Product Manager spearheading the process, who were all being supervised by an Engineering Manager. Keeping availability and other engagements in mind, the developers were rotated with prior knowledge of the client.

Requirements

Two mobile apps built in React Native. One for moderators and one for members.

The app needed to be HIPAA compliant.

Features such as group chat rooms, moderator privileges and synchronous chat controls.

Development of additional features and support for released products.

Development

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.

Overcoming Challenges

With so much to do, challenges and obstacles crept in during the development of the product. The first challenge was to make sure that the push notification delivered to users were encrypted. This was achieved through the process being done within the native layer of the extensions used for push notifications. Another one surfaced while using Mixpanel where the events were synchronised for different clients with different decryption keys at the native layer itself. The chat feature was to serve more functionality when compared to traditional chat applications in the market, so realtime performance was an issue. This was solved by implementing an efficient codebase underneath the chat APIs. Finally, one feature that stood out was the 'Synchronous Chat', which enabled moderators to pause all activities of users in a group chat to give the spotlight to a single user. This was a tricky feature to implement but our developers thought throught their heads and made it happen.

In bird's eye view
  • PubNub was the API used to enable chat services.
  • MixPanel was used for application behavior management.
  • Bitrise was the choice of tool for CI & delivery, with Aptible for compliance assurance.
  • A total of 12 milestones were set and completed to see the product reach fruition.
Final Impression

Marigold health is currently ongoing with new features coming in and support being offered for the existing apps. Overall, the client is extremely happy with how the product turned out. He gave special emphasis to the team's ability to undertake and adapt to changes during the development cycle and integrating all features till date seamlessly and effectively. Till now, the product released works as intended. We are glad to be a part of Marigold Health's noble endeavour to bring awareness towards the importance of mental health and provide support and help to people suffering from it on a 24x7 clock. With the platform becoming more robust and versatile by the day, we're eager to explore the possibilities it can bring.