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.

Uitdaging

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.

Ze wilden de software moderniseren, bugs oplossen en verschillende systematische problemen aanpakken die de prestaties en de algehele bruikbaarheid hadden beïnvloed:

  • Ontoereikende prestaties. 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.
  • Beperkte mogelijkheden. In de loop der jaren realiseerde de klant zich dat de app een aantal belangrijke functies miste die nodig waren om beter te voldoen aan de eisen van hun klanten. Ze wilden de oplossing voor het monitoren van stralingsblootstelling uitbreiden met nieuwe, geavanceerde functionaliteit.
  • Slechte applicatiearchitectuur. Bij het ontwerp van de oorspronkelijke architectuur was geen rekening gehouden met schaalbaarheid, waardoor de klant zich zorgen maakte dat er geen ruimte was voor verdere groei.
  • Versnipperde documentatie. Veel van de documentatie van de app was verouderd of onvolledig. Om app-upgrades en het inwerken van nieuwe gebruikers te stroomlijnen, moest de klant alle aspecten van de bestaande oplossing in grondige projectdocumentatie opnemen.
Op dat moment werd de app voor het monitoren van stralingsblootstelling onderhouden door een extern team dat deze problemen niet snel genoeg kon oplossen. De klant was dus op zoek naar een ervaren gezondheidszorgmedewerker. partner voor softwareontwikkeling om de vernieuwing van de applicatie voor het monitoren van stralingsblootstelling over te nemen.

Oplossing

Het team van Innowise begon het project met een grondige controle van de app voor het monitoren van stralingsblootstelling om de hoofdoorzaken van de problemen met het systeem te begrijpen. Dit is wat we vonden:

  • Verouderde technologie. De app gebruikte oudere versies van programmeertalen, waaronder Node.js en Angular.js, en verschillende versies van talen door de app heen.
  • Inefficiënte SQL-query's. Er was een reeks antipatronen in de manier waarop SQL-query's werden geschreven, die bijdroegen aan slechte applicatieprestaties.
  • Problemen met versiebeheer. De applicatie leed onder inefficiënte software versiebeheerpraktijken, met verouderde bestanden, plugins van derden en uitvoerbare bestanden die waren opgeslagen onder bronbeheer.
  • Ongeorganiseerde opslagplaatsen. De structuur van de repositories en projecten was niet intuïtief, waardoor het moeilijk was om door de codebase te navigeren en deze te beheren.
  • Handmatige inzet. De applicatie werd handmatig geïmplementeerd, zonder een CI/CD-pijplijn, waardoor de bedrijfsrisico's toenamen en er mogelijk menselijke fouten werden gemaakt.
  • Geen back-up of herstelmechanismen. Er waren geen mechanismen om een back-up te maken van de applicatiegegevens of om de app te herstellen als er iets mis zou gaan.

Op basis van de auditresultaten heeft het Innowise projectteam een duidelijk stappenplan opgesteld van de verbeteringen die essentieel zijn voor de stabiliteit, prestaties en schaalbaarheid van de stralingsmonitoring app. Nadat de klant groen licht gaf voor ons plan, gingen we verder met gestage verbeteringen. 

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.

Applicatie containerisatie

Om de prestaties te verbeteren en toekomstige schaalbehoeften te ondersteunen, splitsten we de applicatie op in verschillende belangrijke componenten: frontend, backend, rapportagemodules, logging- en monitoringmodule en database. Vervolgens containeriseerde ons team elke component en migreerde ze naar afzonderlijke virtuele machines. Deze veranderingen ondersteunden de groeiende werkbelasting die de klant verwachtte.

Modernisering van de technologiestapel

We hebben de technische stack van de app geüpgraded door verouderde frameworks en tools bij te werken, bugs op te lossen en ervoor te zorgen dat het systeem toekomstige uitbreidingen kon ondersteunen. Dit gaf de applicatie een broodnodige boost in prestaties en onderhoudbaarheid.

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.

Implementatie CI/CD-pijplijn

We introduceerden een pipeline voor continue integratie en implementatie (CI/CD) om het handmatige implementatieproces te vervangen. Met deze nieuwe aanpak heeft ons team het deploymentproces geautomatiseerd, waardoor updates sneller en betrouwbaarder worden. We hebben ook systeemlogging en -monitoring geïmplementeerd met behulp van Prometheus en Grafana om systeemprestaties en problemen in realtime te volgen en te visualiseren.

Back-ups en noodherstel

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.

Aanvraagdocumentatie

Naast het refactoren was het team van Innowise nauwgezet bezig met het creëren van documentatie voor de stralingsblootstellingsmonitoring app, inclusief alle wijzigingen in de architectuur en het systeem.

Aankomende ontwikkeling en UI-herontwerp

Nadat we de basis hadden gelegd voor de evolutie van een app voor het monitoren van stralingsblootstelling, gingen we verder met het ontwikkelen van functies en het herontwerpen van de UI. Hier zijn de toekomstige verbeteringen die ons team al heeft gepland:
  • Verbeteringen in de rapportage. We zullen de rapportagefuncties verbeteren, nieuwe soorten medische controles toevoegen en meer rapportformaten introduceren.
  • UI-herontwerp. We zullen de gebruikersinterface opnieuw ontwerpen intuïtiever te zijn en zich aan te passen aan verschillende apparaten en schermformaten, voor een betere eindgebruikerservaring
  • Verdere verbeteringen aan de architectuur. Op basis van de gegevens en prestatiecijfers zal Innowise de architectuur van de app blijven verbeteren om ervoor te zorgen dat deze effectief kan worden geschaald.

Technologieën

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Database

MySQL

DevOps

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

Proces

Aangezien de klant flexibiliteit wilde in de omvang van het project, kwamen we een Time & Material-prijsmodel overeen, wat betekent dat we de projecturen vooraf schatten, maar de klant alleen de werkelijk bestede uren in rekening brachten. Wanneer de klant de omvang van het project wilde uitbreiden, zorgde onze projectmanager voor aanvullende berekeningen, zodat de klant de kosten en de voortgang van het project gemakkelijk kon bijhouden.

We gebruikten een iteratieve projectmanagementaanpak, waarbij we het project opsplitsten in sprints en duidelijke mijlpalen definieerden voor elke fase. Elke week hield ons projectteam gesprekken met de belanghebbenden van de klant om de voortgang en resultaten te delen en zo de algehele teamafstemming te verbeteren.

Vereist team

1

Project Manager

1

Leveringsmanager

1

Bedrijfs-analist

1

Oplossing Architect

1

Back-End Ontwikkelaar

1

Front-End Ontwikkelaar

1

DevOps Engineer

1

QA ingenieur

1

Ingenieur Penetratietesten

Resultaten

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.

    Contacteer ons

    Boek een gesprek of vul het onderstaande formulier in en we nemen contact met je op zodra we je aanvraag hebben verwerkt.

    Stuur ons een spraakbericht
    Documenten bijvoegen
    Bestand uploaden

    Je kunt 1 bestand van maximaal 2 MB bijvoegen. Geldige bestandsformaten: pdf, jpg, jpeg, png.

    Door op Verzenden te klikken, stemt u ermee in dat Innowise uw persoonsgegevens verwerkt volgens onze Privacybeleid om u van relevante informatie te voorzien. Door je telefoonnummer op te geven, ga je ermee akkoord dat we contact met je opnemen via telefoongesprekken, sms en messaging-apps. Bellen, berichten en datatarieven kunnen van toepassing zijn.

    U kunt ons ook uw verzoek sturen
    naar contact@innowise.com
    Wat gebeurt er nu?
    1

    Zodra we je aanvraag hebben ontvangen en verwerkt, nemen we contact met je op om de details van je projectbehoeften en tekenen we een NDA om vertrouwelijkheid te garanderen.

    2

    Na het bestuderen van uw wensen, behoeften en verwachtingen zal ons team een projectvoorstel opstellen met de omvang van het werk, de teamgrootte, de tijd en de geschatte kosten voorstel met de omvang van het werk, de grootte van het team, de tijd en de geschatte kosten.

    3

    We zullen een afspraak met je maken om het aanbod te bespreken en de details vast te leggen.

    4

    Tot slot tekenen we een contract en gaan we meteen aan de slag met je project.

    pijl