A radiation exposure monitoring app

Innowise has upgraded a radiation exposure monitoring app, improving the response time and laying the groundwork for the software functionality scale-up.

Challenge

The client’s radiation exposure monitoring application has been on the market for 10+ years already, but its codebase hadn’t undergone any significant updates or rewrites during that time. As the client’s business grew, so did their need for a more robust, scalable solution.

They wanted to modernize the software, fix bugs, and address several systemic issues that had been affecting performance and overall usability:

  • Inadequate performance. The application slowed down significantly when multiple end customers submitted queries simultaneously, sometimes resulting in long wait times and leaving the users frustrated. As the client had business expansion plans ahead and expected the user base to grow, it was clear from the performance metrics that the app couldn’t handle the increased load.
  • Limited capabilities. Over the years in business, the client realized that the app lacked several important features needed to better meet their customers’ demands. They wanted to augment the radiation exposure monitoring solution with new, advanced functionality.
  • Poor application architecture. The original architecture wasn’t designed with scalability in mind, leaving the client worried that it couldn’t accommodate further growth.
  • Fragmented documentation. Much of the app’s documentation was either outdated or incomplete. To streamline app upgrades and new user onboarding, the client needed to reflect all aspects of the existing solution in thorough project documentation.
At the time, the radiation exposure monitoring app was maintained by an outsourced team that couldn’t resolve these issues quickly enough. So, the client was looking for an experienced healthcare software development partner to take over the revamp of the radiation exposure monitoring application.

Solution

Innowise’s team began the project with an in-depth audit of the radiation exposure monitoring app to understand the root causes of the issues affecting the system. Here’s what we found:

  • Outdated technology. The app was using older versions of programming languages, including Node.js and Angular.js, as well as different versions of languages throughout the app.
  • Inefficient SQL queries. There was a range of anti-patterns in the way SQL queries were written, which contributed to poor application performance.
  • Version control issues. The application suffered from inefficient software version control practices, with outdated files, third-party plugins, and executables stored under source control.
  • Disorganized repositories. The structure of the repositories and projects was not intuitive, making it difficult to navigate and manage the codebase.
  • Manual deployment. The application was deployed manually, without a CI/CD pipeline, increasing the business risks and leading to potential human errors.
  • No backup or recovery mechanisms. There were no mechanisms in place to back up the application data or recover the app if anything went wrong.

Based on the audit results, Innowise’s project team created a clear-cut roadmap of the improvements essential for the stability, performance, and scalability of the radiation exposure monitoring app. After the client green-lit our plan, we moved on to steady improvements. 

The client wanted the app evolution to happen as smoothly as possible, so we made the changes invisible to the end users, ensuring there were no business disruptions. Then, Innowise’s team introduced the following changes to the radiation exposure monitoring application.

Application containerization

To boost performance and support future scaling needs, we split the application into several key components: frontend, backend, reporting modules, logging and monitoring module, and database. Then, our team containerized each component and migrated them to separate virtual machines. These changes supported the growing workloads anticipated by the client.

Tech stack modernization

We upgraded the app’s tech stack by updating outdated frameworks and tools, resolving bugs, and ensuring the system could support future enhancements. This gave the application a much-needed boost in performance and maintainability.

Database refactoring

Innowise’s team refactored the radiation exposure monitoring app database, improving database queries, adding indexes, and introducing foreign keys. Our comprehensive approach increased database performance after the refactoring.

CI/CD pipeline implementation

We introduced a continuous integration and deployment (CI/CD) pipeline to replace the manual deployment process. With this new approach, our team automated the deployment process, ensuring faster, more reliable updates. We also implemented system logging and monitoring using Prometheus and Grafana to track and visualize system performance and issues in real-time.

Backups and disaster recovery

Innowise’s team used Infrastructure as Code (IaC) for disaster recovery, which means the entire app can now be redeployed to a new environment in a matter of minutes. We also set up robust backup procedures to make sure the data is safe and can be restored quickly if needed.

Application documentation

Alongside the refactoring, Innowise’s team was meticulously creating documentation for the radiation exposure monitoring app, including all the changes to the architecture and the system.

Upcoming development and UI redesign

After we laid the groundwork for the evolution of a radiation exposure monitoring app, we were going to move on to feature development and UI redesign. Here are the future improvements our team has already planned:
  • Reporting improvements. We’ll enhance the reporting features, adding new types of medical check-ups and introducing more report formats.
  • UI redesign. We will redesign the user interface to be more intuitive and adaptive to different devices and screen sizes, providing a better end-user experience
  • Further architecture enhancements. Based on the data and performance metrics, Innowise will continue to improve the app’s architecture to ensure it can be scaled effectively.

Technologies

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Database

MySQL

DevOps

Terraform, Bitbucket, Grafana, Prometheus, Docker, Docker Compose

Process

Given that the client wanted flexibility in the project scope, we agreed on a Time & Material pricing model, meaning we estimated the project hours upfront, but only charged the client for the actual hours spent. When the client needed to extend the project scope, our project manager provided additional calculations, so the client could easily track the expenses and project progress.

We adopted an iterative project management approach, breaking down the project into sprints and defining clear milestones for each phase. Every week, our project team held calls with the client’s stakeholders to share progress and results, improving overall team alignment.

Team required

1

Project Manager

1

Delivery Manager

1

Business Analyst

1

Solution Architect

1

Back-End Developer

1

Front-End Developer

1

DevOps Engineer

1

QA Engineer

1

Penetration Testing Engineer

Results

Now, the client has a much more robust, scalable, and maintainable application for radiation exposure monitoring. We’ve successfully revamped the software infrastructure, fixed performance issues, and ensured the architecture can handle future growth. Innowise’s team has also laid out a clear roadmap for upcoming feature development and system improvements, which will help further enhance the user experience and operational efficiency.

    Contact us

    Book a call or fill out the form below and we’ll get back to you once we’ve processed your request.

    Send us a voice message
    Attach documents
    Upload file

    You can attach 1 file up to 2MB. Valid file formats: pdf, jpg, jpeg, png.

    By clicking Send, you consent to Innowise processing your personal data per our Privacy Policy to provide you with relevant information. By submitting your phone number, you agree that we may contact you via voice calls, SMS, and messaging apps. Calling, message, and data rates may apply.

    You can also send us your request
    to contact@innowise.com
    What happens next?
    1

    Once we’ve received and processed your request, we’ll get back to you to detail your project needs and sign an NDA to ensure confidentiality.

    2

    After examining your wants, needs, and expectations, our team will devise a project proposal with the scope of work, team size, time, and cost estimates.

    3

    We’ll arrange a meeting with you to discuss the offer and nail down the details.

    4

    Finally, we’ll sign a contract and start working on your project right away.

    arrow