Architecture Overview
Zynomi is at the forefront of clinical trial innovation, providing a mobile application that seamlessly integrates participants, healthcare providers, and clinical researchers. This document provides an overview of the solution and deployment architecture, laying the foundation for an understanding of the robust and scalable environment Zynomi operates within.
The solution architecture is centered around a React Native application for healthcare providers and an Ionic & Vue.js-based mobile website for patients and clinical trial volunteers. It ensures a consistent and responsive user experience across various platforms and devices.
Technology Stack
Frontend
Our application is built on the strength of Ionic for crafting exceptional mobile applications. For a seamless integration with native Android functionality, we utilize ReactJS Native Android Shell with WebView, enabling dynamic loading of the mobile website. This approach simplifies version upgrades to merely publishing a new website version. TailwindCSS is employed for its utility-first CSS framework, ensuring responsive and visually appealing designs. The interactive and efficient user interface is powered by Vue/NuxtJS and JavaScript, offering a reactive user experience. This strategy ensures broad accessibility for users across various devices without the need for separate native builds.
Backend
At the core of our application lies FrappeHealth, a no-code and headless Electronic Health Record (EHR) software built on the Frappe framework. Designed for high adaptability and scalability, FrappeHealth offers a wide array of functionalities such as patient management, billing, and electronic medical records. It is focused on intuitive usability and stringent data privacy, providing a solid and secure backend foundation for "Zynomi".
API Gateway
Our application's design incorporates KrakenD as the API gateway to unify our microservices architecture, which involves multiple cloud services from different vendors. Each service exposes its own REST APIs with various endpoints and authentication tokens, necessitating a unified REST endpoint. KrakenD standardizes these endpoints while enhancing security and offering typical API gateway features, such as aggregating responses from multiple REST calls to services like Supabase and Frappe into a single API call. This simplifies client-side interactions by allowing a single request to internally branch out to multiple services.
In-app Notifications
To keep users informed and engaged, "Zynomi" integrates real-time in-app notifications powered by Firebase. This ensures that users receive timely updates for essential alerts such as medication reminders and appointment changes. The reliable and efficient cloud messaging service from Firebase guarantees that no critical information is overlooked, significantly improving the user experience.
Deployment
Our deployment process is streamlined through Github Actions, enabling automated continuous integration and delivery. This ensures that "Zynomi" is consistently updated with the latest features and fixes, maintaining high availability and reliability for our users.
Deployment Architecture
The deployment architecture showcases a scalable and secure infrastructure, highlighting the use of serverless technologies and containerized applications. It illustrates the flow from mobile and web clients through an API gateway to cloud services, ensuring high availability and performance.
For a detailed understanding of each component and its role in the Zynomi ecosystem, developers and IT professionals should refer to the specific sections on solution architecture and deployment strategies within the full Zynomi documentation.