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.

Sfida

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.

Volevano modernizzare il software, correggere i bug e risolvere diversi problemi sistemici che incidevano sulle prestazioni e sull'usabilità complessiva:

  • Prestazioni inadeguate. 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.
  • Capacità limitate. Nel corso degli anni di attività, il cliente si è reso conto che l'applicazione mancava di alcune importanti funzionalità necessarie per soddisfare meglio le richieste dei clienti. Il cliente desiderava aumentare la soluzione di monitoraggio dell'esposizione alle radiazioni con nuove funzionalità avanzate.
  • Scarsa architettura dell'applicazione. L'architettura originale non era stata progettata tenendo conto della scalabilità e il cliente temeva di non poter accogliere un'ulteriore crescita.
  • Documentazione frammentaria. Gran parte della documentazione dell'applicazione era obsoleta o incompleta. Per semplificare gli aggiornamenti dell'applicazione e l'inserimento di nuovi utenti, il cliente aveva bisogno di riflettere tutti gli aspetti della soluzione esistente in una documentazione di progetto completa.
All'epoca, l'applicazione per il monitoraggio dell'esposizione alle radiazioni era gestita da un team esterno che non era in grado di risolvere questi problemi abbastanza rapidamente. Il cliente era quindi alla ricerca di un esperto di assistenza sanitaria. partner di sviluppo software per occuparsi del rinnovamento dell'applicazione di monitoraggio dell'esposizione alle radiazioni.

Soluzione

Il team di Innowise ha iniziato il progetto con un audit approfondito dell'applicazione di monitoraggio dell'esposizione alle radiazioni per comprendere le cause principali dei problemi che affliggevano il sistema. Ecco cosa abbiamo scoperto:

  • Tecnologia obsoleta. L'applicazione utilizzava vecchie versioni di linguaggi di programmazione, tra cui Node.js e Angular.js, oltre a diverse versioni di linguaggi in tutta l'applicazione.
  • Query SQL inefficienti. Il modo in cui venivano scritte le query SQL presentava una serie di anti-pattern che contribuivano alle scarse prestazioni dell'applicazione.
  • Problemi di controllo della versione. L'applicazione soffriva di pratiche inefficienti di controllo della versione del software, con file obsoleti, plugin di terze parti ed eseguibili memorizzati sotto il controllo sorgente.
  • Depositi disorganizzati. La struttura dei repository e dei progetti non era intuitiva e rendeva difficile la navigazione e la gestione della base di codice.
  • Distribuzione manuale. L'applicazione veniva distribuita manualmente, senza una pipeline CI/CD, aumentando i rischi aziendali e portando a potenziali errori umani.
  • Nessun meccanismo di backup o di ripristino. Non esistevano meccanismi per il backup dei dati dell'applicazione o per il recupero dell'applicazione in caso di problemi.

Sulla base dei risultati dell'audit, il team di progetto di Innowise ha creato una roadmap chiara dei miglioramenti essenziali per la stabilità, le prestazioni e la scalabilità dell'app di monitoraggio dell'esposizione alle radiazioni. Dopo che il cliente ha approvato il nostro piano, siamo passati a miglioramenti costanti. 

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.

Contenitorizzazione delle applicazioni

Per aumentare le prestazioni e supportare le future esigenze di scalabilità, abbiamo suddiviso l'applicazione in diversi componenti chiave: frontend, backend, moduli di reporting, modulo di registrazione e monitoraggio e database. Poi il nostro team ha containerizzato ogni componente e li ha migrati su macchine virtuali separate. Queste modifiche hanno supportato i crescenti carichi di lavoro previsti dal cliente.

Modernizzazione dello stack tecnologico

Abbiamo potenziato lo stack tecnologico dell'applicazione aggiornando framework e strumenti obsoleti, risolvendo i bug e garantendo che il sistema potesse supportare i miglioramenti futuri. In questo modo abbiamo dato all'applicazione il necessario impulso in termini di prestazioni e manutenibilità.

Rifattorizzazione del database

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.

Implementazione della pipeline CI/CD

Abbiamo introdotto una pipeline di integrazione e distribuzione continua (CI/CD) per sostituire il processo di distribuzione manuale. Con questo nuovo approccio, il nostro team ha automatizzato il processo di distribuzione, garantendo aggiornamenti più rapidi e affidabili. Abbiamo anche implementato la registrazione e il monitoraggio del sistema utilizzando Prometheus e Grafana per monitorare e visualizzare le prestazioni e i problemi del sistema in tempo reale.

Backup e ripristino d'emergenza

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.

Documentazione di applicazione

Parallelamente al refactoring, il team di Innowise ha creato meticolosamente la documentazione per l'app di monitoraggio dell'esposizione alle radiazioni, includendo tutte le modifiche all'architettura e al sistema.

Sviluppo imminente e riprogettazione dell'interfaccia utente

Dopo aver gettato le basi per l'evoluzione di un'app per il monitoraggio dell'esposizione alle radiazioni, saremmo passati allo sviluppo di funzionalità e alla riprogettazione dell'interfaccia utente. Ecco i miglioramenti futuri che il nostro team ha già pianificato:
  • Miglioramenti alla reportistica. Miglioreremo le funzioni di reporting, aggiungendo nuovi tipi di visite mediche e introducendo ulteriori formati di report.
  • Riprogettazione dell'interfaccia utente. Noi riprogettare l'interfaccia utente per essere più intuitivi e adattarsi a diversi dispositivi e dimensioni dello schermo, fornendo una migliore esperienza all'utente finale
  • Ulteriori miglioramenti dell'architettura. Sulla base dei dati e delle metriche di performance, Innowise continuerà a migliorare l'architettura dell'app per garantire che possa essere scalata in modo efficace.

Tecnologie

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Database

MySQL

DevOps

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

Processo

Poiché il cliente desiderava una certa flessibilità nell'ambito del progetto, abbiamo concordato un modello di tariffazione Time & Material, ovvero abbiamo stimato le ore del progetto in anticipo, ma abbiamo addebitato al cliente solo le ore effettivamente impiegate. Quando il cliente ha avuto bisogno di estendere l'ambito del progetto, il nostro project manager ha fornito calcoli aggiuntivi, in modo che il cliente potesse facilmente tenere traccia delle spese e dei progressi del progetto.

Abbiamo adottato un approccio di gestione del progetto iterativo, suddividendo il progetto in fasi e definendo chiare milestone per ogni fase. Ogni settimana il nostro team di progetto si è riunito con gli stakeholder del cliente per condividere i progressi e i risultati, migliorando l'allineamento generale del team.

Team richiesto

1

Responsabile di progetto

1

Responsabile della consegna

1

Analista aziendale

1

Architetto di soluzioni

1

Sviluppatore Back-End

1

Sviluppatore Front-End

1

Ingegnere DevOps

1

Ingegnere QA

1

Ingegnere addetto ai test di penetrazione

Risultati

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.

    Contattateci

    Prenota una chiamata oppure compilate il modulo sottostante e sarete ricontattati una volta elaborata la vostra richiesta.

    Inviaci un messaggio vocale
    Allegare i documenti
    Caricare il file

    È possibile allegare 1 file di dimensioni massime di 2 MB. Formati di file validi: pdf, jpg, jpeg, png.

    Facendo clic su Invia, l'utente acconsente al trattamento dei propri dati personali da parte di Innowise in base alla nostra Informativa sulla privacy per fornirvi informazioni pertinenti. Inviando il vostro numero di telefono, accettate che possiamo contattarvi tramite chiamate vocali, SMS e applicazioni di messaggistica. Potrebbero essere applicate tariffe per chiamate, messaggi e dati.

    Potete anche inviarci la vostra richiesta
    a contact@innowise.com
    Cosa succede dopo?
    1

    Una volta ricevuta ed elaborata la vostra richiesta, vi contatteremo per illustrarvi le esigenze del vostro progetto. Progetto e firmare un NDA per garantire la riservatezza.

    2

    Dopo aver esaminato i vostri desideri, le vostre esigenze e le vostre aspettative, il nostro team elaborerà una proposta di progetto con l'ambito di lavoro, le dimensioni del team, i tempi e le stime dei costi stimati.

    3

    Organizzeremo un incontro con voi per discutere l'offerta e definire i dettagli.

    4

    Infine, firmeremo un contratto e inizieremo subito a lavorare sul vostro progetto.

    freccia