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.

Utmaning

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.

De ville modernisera programvaran, åtgärda buggar och ta itu med flera systematiska problem som hade påverkat prestandan och den övergripande användbarheten:

  • Otillräcklig prestanda. 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.
  • Begränsad kapacitet. Under årens lopp insåg kunden att appen saknade flera viktiga funktioner som behövdes för att bättre möta kundernas krav. De ville utöka lösningen för övervakning av strålningsexponering med ny, avancerad funktionalitet.
  • Dålig applikationsarkitektur. Den ursprungliga arkitekturen var inte utformad med skalbarhet i åtanke, vilket gjorde att kunden var orolig för att den inte skulle kunna hantera ytterligare tillväxt.
  • Fragmenterad dokumentation. En stor del av appens dokumentation var antingen föråldrad eller ofullständig. För att effektivisera uppgraderingar av appen och introduktionen av nya användare behövde kunden återspegla alla aspekter av den befintliga lösningen i en grundlig projektdokumentation.
Vid den tidpunkten sköttes appen för övervakning av strålningsexponering av ett outsourcat team som inte kunde lösa dessa problem tillräckligt snabbt. Kunden letade därför efter en erfaren medarbetare inom hälso- och partner för mjukvaruutveckling för att ta över förnyelsen av applikationen för övervakning av strålningsexponering.

Lösning

Innowises team inledde projektet med en djupgående granskning av appen för övervakning av strålningsexponering för att förstå grundorsakerna till de problem som påverkade systemet. Här är vad vi hittade:

  • Föråldrad teknik. Appen använde äldre versioner av programmeringsspråk, inklusive Node.js och Angular.js, samt olika versioner av språk i hela appen.
  • Ineffektiva SQL-frågor. Det fanns en rad olika anti-mönster i hur SQL-frågor skrevs, vilket bidrog till dålig applikationsprestanda.
  • Problem med versionshantering. Applikationen led av ineffektiva metoder för versionshantering av programvara, med föråldrade filer, plugins från tredje part och körbara filer som lagrades under källkontroll.
  • Oorganiserade repositorier. Strukturen i arkiven och projekten var inte intuitiv, vilket gjorde det svårt att navigera och hantera kodbasen.
  • Manuell utplacering. Applikationen distribuerades manuellt, utan en CI/CD-pipeline, vilket ökade affärsriskerna och ledde till potentiella mänskliga fel.
  • Inga mekanismer för säkerhetskopiering eller återställning. Det fanns inga mekanismer på plats för att säkerhetskopiera applikationsdata eller återställa appen om något gick fel.

Baserat på granskningsresultaten skapade Innowises projektteam en tydlig färdplan för de förbättringar som är nödvändiga för stabilitet, prestanda och skalbarhet i appen för övervakning av strålningsexponering. Efter att kunden hade gett grönt ljus för vår plan gick vi vidare med de kontinuerliga förbättringarna. 

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.

Containerisering av tillämpning

För att öka prestandan och stödja framtida skalningsbehov delade vi upp applikationen i flera nyckelkomponenter: frontend, backend, rapporteringsmoduler, loggning och övervakningsmodul samt databas. Därefter containeriserade vårt team varje komponent och migrerade dem till separata virtuella maskiner. Dessa förändringar stödde de växande arbetsbelastningar som kunden förväntade sig.

Modernisering av teknisk stack

Vi uppgraderade appens tekniska stack genom att uppdatera föråldrade ramverk och verktyg, lösa buggar och se till att systemet kunde stödja framtida förbättringar. Detta gav applikationen ett välbehövligt lyft när det gäller prestanda och underhållsmässighet.

Refaktorisering av databaser

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.

Implementering av CI/CD-pipeline

Vi införde en pipeline för kontinuerlig integration och driftsättning (CI/CD) för att ersätta den manuella driftsättningsprocessen. Med det nya tillvägagångssättet automatiserade vårt team distributionsprocessen, vilket säkerställer snabbare och mer tillförlitliga uppdateringar. Vi implementerade också systemloggning och övervakning med hjälp av Prometheus och Grafana för att spåra och visualisera systemprestanda och problem i realtid.

Säkerhetskopiering och katastrofåterställning

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.

Dokumentation av ansökan

Parallellt med refaktoriseringen arbetade Innowises team noggrant med att skapa dokumentation för appen för övervakning av strålningsexponering, inklusive alla ändringar i arkitekturen och systemet.

Kommande utveckling och omdesign av användargränssnittet

Efter att vi lagt grunden för utvecklingen av en app för övervakning av strålningsexponering skulle vi gå vidare till funktionsutveckling och omdesign av användargränssnittet. Här är de framtida förbättringar som vårt team redan har planerat:
  • Rapportering av förbättringar. Vi kommer att förbättra rapporteringsfunktionerna genom att lägga till nya typer av medicinska kontroller och införa fler rapportformat.
  • Omarbetning av användargränssnittet. Vi kommer att omforma användargränssnittet vara mer intuitiva och anpassningsbara till olika enheter och skärmstorlekar, vilket ger en bättre slutanvändarupplevelse
  • Ytterligare arkitekturförbättringar. Baserat på data och prestandamätningar kommer Innowise att fortsätta att förbättra appens arkitektur för att säkerställa att den kan skalas effektivt.

Teknik

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Databas

MySQL

DevOps

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

Process

Eftersom kunden ville ha flexibilitet i projektets omfattning kom vi överens om en Time & Material-prissättningsmodell, vilket innebär att vi uppskattade projekttimmarna i förväg, men endast debiterade kunden för de faktiska timmarna. När kunden behövde utöka projektets omfattning tillhandahöll vår projektledare ytterligare beräkningar, så att kunden enkelt kunde spåra kostnaderna och projektets framsteg.

Vi använde oss av en iterativ projektledningsmetod där vi delade upp projektet i sprintar och definierade tydliga milstolpar för varje fas. Varje vecka höll vårt projektteam samtal med kundens intressenter för att dela med sig av framsteg och resultat, vilket förbättrade den övergripande teamorienteringen.

Team krävs

1

Projekt- ledare

1

Leveransansvarig

1

Affärsan-alytiker

1

Lösningsarkitekt

1

Back-End-utvecklare

1

Front-End-utvecklare

1

DevOps-ingenjör

1

QA-ingenjör

1

Ingenjör inom penetrationstestning

Resultat

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.

    Kontakta oss

    Boka ett samtal eller fyll i formuläret nedan så återkommer vi till dig när vi har behandlat din förfrågan.

    Skicka ett röstmeddelande till oss
    Bifoga dokument
    Ladda upp filen

    Du kan bifoga 1 fil på upp till 2 MB. Giltiga filformat: pdf, jpg, jpeg, png.

    Genom att klicka på Skicka samtycker du till att Innowise behandlar dina personuppgifter enligt våra Integritetspolicy för att förse dig med relevant information. Genom att lämna ditt telefonnummer samtycker du till att vi kan kontakta dig via röstsamtal, SMS och meddelandeappar. Samtals-, meddelande- och datataxor kan gälla.

    Du kan också skicka oss din förfrågan

    .till contact@innowise.com
    Vad händer härnäst?
    1

    När vi har tagit emot och behandlat din förfrågan återkommer vi till dig för att beskriva dina projektbehov och undertecknar en NDA för att säkerställa sekretess.

    2

    Efter att ha undersökt dina önskemål, behov och förväntningar kommer vårt team att ta fram ett projektförslag förslag med arbetsomfattning, teamstorlek, tids- och kostnadsberäkningar.

    3

    Vi ordnar ett möte med dig för att diskutera erbjudandet och fastställa detaljerna.

    4

    Slutligen undertecknar vi ett kontrakt och börjar arbeta med ditt projekt direkt.

    pil