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.

Desafio

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.

Pretendiam modernizar o software, corrigir bugs e resolver vários problemas sistémicos que estavam a afetar o desempenho e a usabilidade geral:

  • Desempenho inadequado. 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.
  • Capacidades limitadas. Ao longo dos anos de atividade, o cliente apercebeu-se de que a aplicação carecia de várias caraterísticas importantes necessárias para responder melhor às exigências dos seus clientes. Pretendiam aumentar a solução de monitorização da exposição à radiação com funcionalidades novas e avançadas.
  • Arquitetura deficiente da aplicação. A arquitetura original não foi concebida com a escalabilidade em mente, deixando o cliente preocupado com a possibilidade de não poder acomodar um maior crescimento.
  • Documentação fragmentada. Grande parte da documentação da aplicação estava desactualizada ou incompleta. Para simplificar as actualizações da aplicação e a integração de novos utilizadores, o cliente precisava de refletir todos os aspectos da solução existente na documentação completa do projeto.
Na altura, a aplicação de monitorização da exposição à radiação era mantida por uma equipa subcontratada que não conseguia resolver estes problemas com a rapidez necessária. Por isso, o cliente estava à procura de um profissional de saúde experiente parceiro de desenvolvimento de software para assumir a renovação da aplicação de controlo da exposição à radiação.

Solução

A equipa da Innowise iniciou o projeto com uma auditoria aprofundada da aplicação de monitorização da exposição à radiação para compreender as causas principais dos problemas que afectavam o sistema. Eis o que descobrimos:

  • Tecnologia desactualizada. A aplicação estava a utilizar versões mais antigas de linguagens de programação, incluindo Node.js e Angular.js, bem como diferentes versões de linguagens em toda a aplicação.
  • Consultas SQL ineficientes. Havia uma série de antipadrões na forma como as consultas SQL eram escritas, o que contribuía para um fraco desempenho da aplicação.
  • Problemas de controlo de versões. A aplicação sofria de práticas ineficientes de controlo de versões de software, com ficheiros desactualizados, plugins de terceiros e executáveis armazenados sob controlo de origem.
  • Repositórios desorganizados. A estrutura dos repositórios e dos projectos não era intuitiva, o que dificultava a navegação e a gestão da base de código.
  • Implantação manual. A aplicação foi implementada manualmente, sem um pipeline de CI/CD, aumentando os riscos comerciais e conduzindo a potenciais erros humanos.
  • Sem mecanismos de backup ou recuperação. Não existiam mecanismos para fazer cópias de segurança dos dados da aplicação ou para recuperar a aplicação se algo corresse mal.

Com base nos resultados da auditoria, a equipa de projeto da Innowise criou um roteiro claro das melhorias essenciais para a estabilidade, o desempenho e a escalabilidade da aplicação de monitorização da exposição à radiação. Depois que o cliente deu luz verde ao nosso plano, passamos a fazer melhorias constantes. 

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.

Contentorização de aplicações

Para aumentar o desempenho e suportar futuras necessidades de escalonamento, dividimos a aplicação em vários componentes principais: frontend, backend, módulos de relatórios, módulo de registo e monitorização e base de dados. Depois, a nossa equipa contentorizou cada componente e migrou-os para máquinas virtuais separadas. Estas alterações suportaram as crescentes cargas de trabalho previstas pelo cliente.

Modernização da pilha tecnológica

Melhorámos a pilha tecnológica da aplicação, actualizando estruturas e ferramentas desactualizadas, resolvendo bugs e garantindo que o sistema podia suportar melhorias futuras. Isto deu à aplicação um impulso muito necessário em termos de desempenho e facilidade de manutenção.

Refactorização de bases de dados

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.

Implementação do pipeline CI/CD

Introduzimos um pipeline de integração e implementação contínuas (CI/CD) para substituir o processo de implementação manual. Com esta nova abordagem, a nossa equipa automatizou o processo de implementação, garantindo actualizações mais rápidas e fiáveis. Também implementámos o registo e a monitorização do sistema utilizando Prometheus e Grafana para acompanhar e visualizar o desempenho do sistema e os problemas em tempo real.

Cópias de segurança e recuperação de desastres

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.

Documentação de candidatura

Paralelamente à refacção, a equipa da Innowise criou meticulosamente a documentação para a aplicação de monitorização da exposição à radiação, incluindo todas as alterações à arquitetura e ao sistema.

Desenvolvimento futuro e remodelação da IU

Depois de lançarmos as bases para a evolução de uma aplicação de monitorização da exposição à radiação, íamos passar ao desenvolvimento de funcionalidades e à reformulação da interface do utilizador. Eis as melhorias futuras que a nossa equipa já planeou:
  • Melhorias nos relatórios. Vamos melhorar as funcionalidades de relatório, acrescentando novos tipos de exames médicos e introduzindo mais formatos de relatório.
  • Redesenho da interface do utilizador. Iremos redesenhar a interface do utilizador ser mais intuitivo e adaptável a diferentes dispositivos e tamanhos de ecrã, proporcionando uma melhor experiência ao utilizador final
  • Outras melhorias na arquitetura. Com base nos dados e nas métricas de desempenho, a Innowise continuará a melhorar a arquitetura da aplicação para garantir que esta possa ser escalada de forma eficaz.

Tecnologias

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Base de dados

MySQL

DevOps

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

Processo

Dado que o cliente pretendia flexibilidade no âmbito do projeto, acordámos um modelo de preços Time & Material, o que significa que estimámos antecipadamente as horas do projeto, mas só cobrámos ao cliente as horas efetivamente gastas. Quando o cliente necessitou de alargar o âmbito do projeto, o nosso gestor de projeto forneceu cálculos adicionais, para que o cliente pudesse acompanhar facilmente as despesas e o progresso do projeto.

Adoptámos uma abordagem de gestão de projectos iterativa, dividindo o projeto em sprints e definindo marcos claros para cada fase. Todas as semanas, a nossa equipa de projeto realizou chamadas com as partes interessadas do cliente para partilhar o progresso e os resultados, melhorando o alinhamento geral da equipa.

Equipa necessária

1

Gestor de projectos

1

Gestor de entregas

1

Analista de negócios

1

Arquiteto de soluções

1

Programador Back-End

1

Programador Front-End

1

Engenheiro DevOps

1

Engenheiro de QA

1

Engenheiro de Testes de Penetração

Resultados

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.

    Contactar-nos

    Marcar uma chamada ou preencha o formulário abaixo e entraremos em contacto consigo assim que tivermos processado o seu pedido.

    Envie-nos uma mensagem de voz
    Anexar documentos
    Enviar ficheiro

    Pode anexar um ficheiro com um máximo de 2MB. Formatos de ficheiro válidos: pdf, jpg, jpeg, png.

    Ao clicar em Enviar, o utilizador autoriza a Innowise a processar os seus dados pessoais de acordo com a nossa Política de privacidade para lhe fornecer informações relevantes. Ao enviar o seu número de telefone, o utilizador aceita que o possamos contactar através de chamadas de voz, SMS e aplicações de mensagens. Poderão ser aplicadas tarifas de chamadas, mensagens e dados.

    Pode também enviar-nos o seu pedido
    para contact@innowise.com
    O que é que acontece a seguir?
    1

    Assim que recebermos e processarmos o seu pedido, entraremos em contacto consigo para necessidades do seu projeto e assinar um NDA para garantir a confidencialidade.

    2

    Depois de analisarmos os seus desejos, necessidades e expectativas, a nossa equipa elaborará uma proposta de projeto proposta de projeto com o âmbito do trabalho, dimensão da equipa, tempo e estimativas de custos.

    3

    Marcaremos uma reunião consigo para discutir a oferta e acertar os pormenores.

    4

    Por fim, assinaremos um contrato e começaremos a trabalhar no seu projeto imediatamente.

    seta