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.

Herausforderung

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.

Sie wollten die Software modernisieren, Fehler beheben und mehrere systemische Probleme angehen, die die Leistung und die allgemeine Benutzerfreundlichkeit beeinträchtigt hatten:

  • Unzureichende Leistung. 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.
  • Begrenzte Möglichkeiten. Im Laufe der Jahre stellte der Kunde fest, dass der App mehrere wichtige Funktionen fehlten, um die Anforderungen seiner Kunden besser zu erfüllen. Sie wollten die Lösung zur Überwachung der Strahlenbelastung mit neuen, fortschrittlichen Funktionen erweitern.
  • Schlechte Anwendungsarchitektur. Die ursprüngliche Architektur war nicht auf Skalierbarkeit ausgelegt, so dass der Kunde befürchtete, dass sie kein weiteres Wachstum zulassen würde.
  • Lückenhafte Dokumentation. Ein Großteil der Dokumentation der App war entweder veraltet oder unvollständig. Um App-Upgrades und das Onboarding neuer Benutzer zu optimieren, musste der Kunde alle Aspekte der bestehenden Lösung in einer umfassenden Projektdokumentation wiedergeben.
Zu dieser Zeit wurde die App zur Überwachung der Strahlenbelastung von einem externen Team gewartet, das diese Probleme nicht schnell genug lösen konnte. Also suchte der Kunde nach einem erfahrenen Gesundheitsexperten. Software-Entwicklungspartner um die Überarbeitung der Anwendung zur Überwachung der Strahlenbelastung zu übernehmen.

Lösung

Das Innowise-Team begann das Projekt mit einer gründlichen Prüfung der App zur Überwachung der Strahlenbelastung, um die Ursachen der Probleme zu verstehen, die das System beeinträchtigten. Hier ist, was wir gefunden haben:

  • Veraltete Technologie. Die App verwendete ältere Versionen von Programmiersprachen, darunter Node.js und Angular.js, sowie verschiedene Versionen von Sprachen in der gesamten App.
  • Ineffiziente SQL-Abfragen. Die Art und Weise, wie SQL-Abfragen geschrieben wurden, wies eine Reihe von Fehlern auf, die zu einer schlechten Anwendungsleistung beitrugen.
  • Probleme mit der Versionskontrolle. Die Anwendung litt unter ineffizienten Praktiken der Softwareversionskontrolle, da veraltete Dateien, Plugins von Drittanbietern und ausführbare Dateien unter der Versionskontrolle gespeichert wurden.
  • Unorganisierte Repositories. Die Struktur der Repositories und Projekte war nicht intuitiv, was die Navigation und Verwaltung der Codebasis erschwerte.
  • Manuelle Bereitstellung. Die Anwendung wurde manuell bereitgestellt, ohne eine CI/CD-Pipeline, was die Geschäftsrisiken erhöhte und zu potenziellen menschlichen Fehlern führte.
  • Keine Sicherungs- oder Wiederherstellungsmechanismen. Es gab keine Mechanismen, um die Anwendungsdaten zu sichern oder die Anwendung wiederherzustellen, wenn etwas schief ging.

Auf der Grundlage der Auditergebnisse erstellte das Projektteam von Innowise eine klare Roadmap mit den Verbesserungen, die für die Stabilität, Leistung und Skalierbarkeit der App zur Überwachung der Strahlenbelastung unerlässlich sind. Nachdem der Kunde grünes Licht für unseren Plan gegeben hatte, gingen wir zu kontinuierlichen Verbesserungen über. 

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.

Containerisierung von Anwendungen

Um die Leistung zu steigern und künftige Skalierungsanforderungen zu unterstützen, haben wir die Anwendung in mehrere Schlüsselkomponenten aufgeteilt: Frontend, Backend, Berichtsmodule, Protokollierungs- und Überwachungsmodul und Datenbank. Anschließend containerisierte unser Team jede Komponente und migrierte sie auf separate virtuelle Maschinen. Diese Änderungen unterstützten die wachsenden Arbeitslasten, die der Kunde erwartete.

Modernisierung des Tech-Stacks

Wir aktualisierten den technischen Stack der Anwendung, indem wir veraltete Frameworks und Tools auf den neuesten Stand brachten, Fehler beseitigten und sicherstellten, dass das System künftige Erweiterungen unterstützen kann. Dadurch erhielt die Anwendung einen dringend benötigten Schub an Leistung und Wartungsfreundlichkeit.

Datenbank-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.

Implementierung einer CI/CD-Pipeline

Wir haben eine kontinuierliche Integrations- und Bereitstellungspipeline (CI/CD) eingeführt, um den manuellen Bereitstellungsprozess zu ersetzen. Mit diesem neuen Ansatz automatisierte unser Team den Bereitstellungsprozess und sorgte für schnellere und zuverlässigere Aktualisierungen. Außerdem haben wir die Systemprotokollierung und -überwachung mit Prometheus und Grafana eingeführt, um die Systemleistung und Probleme in Echtzeit zu verfolgen und zu visualisieren.

Backups und Notfallwiederherstellung

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.

Bewerbungsunterlagen

Parallel zum Refactoring erstellte das Team von Innowise eine sorgfältige Dokumentation für die App zur Überwachung der Strahlenbelastung, einschließlich aller Änderungen an der Architektur und am System.

Zukünftige Entwicklung und UI-Neugestaltung

Nachdem wir den Grundstein für die Entwicklung einer App zur Überwachung der Strahlenbelastung gelegt hatten, gingen wir zur Entwicklung von Funktionen und zur Neugestaltung der Benutzeroberfläche über. Hier sind die zukünftigen Verbesserungen, die unser Team bereits geplant hat:
  • Verbesserungen bei der Berichterstattung. Wir werden die Berichtsfunktionen verbessern, neue Arten von medizinischen Untersuchungen hinzufügen und weitere Berichtsformate einführen.
  • Neugestaltung der Benutzeroberfläche. Wir werden Umgestaltung der Benutzeroberfläche intuitiver und anpassungsfähiger an verschiedene Geräte und Bildschirmgrößen sein, um den Endnutzern ein besseres Erlebnis zu bieten
  • Weitere Architekturverbesserungen. Auf der Grundlage der Daten und Leistungsmetriken wird Innowise die Architektur der App weiter verbessern, um sicherzustellen, dass sie effektiv skaliert werden kann.

Technologien

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Datenbank

MySQL

DevOps

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

Prozess

Da der Kunde Flexibilität beim Projektumfang wünschte, einigten wir uns auf ein Time & Material-Preismodell, d. h. wir schätzten die Projektstunden im Voraus, stellten dem Kunden aber nur die tatsächlich aufgewendeten Stunden in Rechnung. Wenn der Kunde den Projektumfang erweitern musste, stellte unser Projektmanager zusätzliche Berechnungen zur Verfügung, so dass der Kunde die Ausgaben und den Projektfortschritt leicht verfolgen konnte.

Wir wählten einen iterativen Projektmanagementansatz, indem wir das Projekt in Sprints aufteilten und für jede Phase klare Meilensteine definierten. Jede Woche hielt unser Projektteam Telefonate mit den Stakeholdern des Kunden ab, um sich über Fortschritte und Ergebnisse auszutauschen und die Abstimmung im Team zu verbessern.

Team erforderlich

1

Projektmanager

1

Delivery Manager

1

Business-Analyst

1

Lösungsarchitekt

1

Back-End-Entwickler

1

Front-End-
Entwickler

1

DevOps-Ingenieur

1

QA-Ingenieur

1

Ingenieur für Penetrationstests

Ergebnisse

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.

    Kontaktformular

    Anruf buchen oder füllen Sie das Formular aus. Wir kontaktieren Sie, sobald wir Ihre Anfrage bearbeitet haben.

    Sprachnachricht senden
    Datei beifügen
    Datei hochladen

    Sie können 1 Datei mit bis zu 2 MB anhängen. Gültige Dateiformate: pdf, jpg, jpeg, png.

    Mit dem Klicken auf Senden erklären Sie sich damit einverstanden, dass Innowise Ihre personenbezogenen Daten gemäß unserer Datenschutzrichtlinie verarbeitet, um Ihnen relevante Informationen bereitzustellen. Mit Angabe Ihrer Telefonnummer stimmen Sie zu, dass wir Sie per Sprachanruf, SMS oder Messaging-Apps kontaktieren. Es können Gebühren für Anrufe, Nachrichten und Datenübertragung anfallen.

    Sie können uns auch kontaktieren
    bis hin zu contact@innowise.com
    Wie geht es weiter?
    1

    Sobald wir Ihre Anfrage erhalten und geprüft haben, melden wir uns bei Ihnen, klären erste Fragen und unterzeichnen bei Bedarf ein NDA, um die Vertraulichkeit zu gewährleisten.

    2

    Nach genauer Prüfung Ihrer Anforderungen, Bedürfnisse und Erwartungen wird unser Team einen Projektvorschlag mit Angaben zu Arbeitsumfang, Teamgröße, Zeitaufwand und Kosten erstellen.

    3

    Wir vereinbaren einen Termin, um das Angebot gemeinsam zu besprechen und alle Details festzulegen.

    4

    Abschließend unterzeichnen wir den Vertrag und starten umgehend mit der Umsetzung Ihres Projekts.

    Pfeil