Geotechnical & Engineering · Geotechnical & Engineering industry

From $900 to Nearly $1M in Revenue

A struggling web-based Borehole Log Management system was rebuilt on .NET Core with a multi-tenant architecture, helping the client grow from $900 to nearly $1M in revenue and onboard over 1,300 clients.

Geotechnical & Engineering industry Borehole Log Management platform Multi-tenant SaaS architecture 1,300+ clients onboarded
$900 to $1M
Client revenue growth
1,300+
Clients onboarded
Project overview

A basic borehole tool rebuilt into a multi-tenant platform

The project began as a web-based Borehole Log Management system that was far from production-ready. Recognizing its potential, the team convinced the client to commit to a complete rewrite on .NET Core, re-architected it as multi-tenant, and added Borehole Data Management, Log Template Design, Report Figures, GIS Mapping, and Cross-Section tools.

Beyond the rebuild, the team helped the client adopt Agile and Azure DevOps, scaled the platform from an Azure VM to Azure App Service, and stood by the client through a funding crisis — helping prepare the documentation that secured new investment.

Today, with over 1,300 clients and ongoing efforts to enhance scalability and cloud architecture, the project continues to thrive.

The starting point

What was breaking before this build

Business challenges

  • Legacy System with Limited PotentialProject began as a basic web system "far from ready for production," requiring convincing the client to commit to a full rewrite.
  • Client Unfamiliarity with Agile/DevOpsClient had no Agile/DevOps experience and needed persuading to move from Trello to Azure DevOps.
  • Funding CrisisClient faced a funding crisis; team adapted pace and helped prepare investor documentation/presentations to secure new investment.

Technical challenges

  • Multi-Tenant ArchitectureDesigning a flexible architecture to dynamically enable/disable features per tenant on a shared codebase, with proper data isolation and access control.
  • Framework MigrationMoving from legacy ASP.NET 4.5 to .NET Core 3.1 and later .NET 7 required refactoring code and adopting new Razor features.
  • Complex PDF & Graphical ReportingRendering reports at different scales and generating hatch diagrams required custom rendering/layout logic.
  • Geospatial IntegrationIntegrating Google Maps and handling multiple coordinate systems required accurate transformation and representation of geospatial data.
  • Microservices with Node.js/Azure FunctionsService orchestration and inter-service communication needed for scalable, fault-tolerant background processing.
Our solution

How we solved it

  1. Complete Rewrite on .NET Core

    Rebuilt the application from scratch on .NET Core 3.1 instead of patching the fragile original.

  2. Multi-Tenant Rearchitecture

    Re-architected as multi-tenant, adding Borehole Data Management, Log Template Design, Report Figures, GIS Map, and Cross-Section tools.

  3. UI/UX Redesign

    Delivered a modern, responsive interface.

  4. Agile & DevOps Transition

    Moved project management from Trello to Azure DevOps.

  5. Cloud Scaling

    Migrated from an Azure VM to Azure App Service with an Azure CI/CD pipeline.

  6. Investor Support

    Helped prepare documentation/presentations that secured new investment.

  7. Ongoing Expansion

    Added Hatch Patterns, Import/Export, Borehole Log Reports; migrated to .NET 7; built a desktop app.

Key features

What the team uses every day

GIS Mapping & Cross-Sections

Interactive GIS maps and cross-section views for borehole data.

Advanced PDF Reporting

Generates borehole log reports with complex hatch diagrams and precise scales.

Import/Export & Data Integration

Imports data (e.g., from Microsoft Access) and exports borehole log reports.

Log Template Designer

Design custom borehole log templates and report figures.

Desktop Application

Companion desktop app alongside the web platform.

Technical architecture

The guarantees this was built on

  • Multi-Tenant IsolationShared codebase dynamically enables/disables features per tenant while maintaining data isolation and access control.
  • Domain-Driven DesignComplex business logic modeled with DDD for clean separation of concerns.
  • Microservices via Node.js/Azure FunctionsBackground/bulk-data processing runs as microservices for scalability and fault tolerance.

Integrations & channels

Google Maps Microsoft Access Azure DevOps Azure App Service
Results & business impact

The outcome

Grew client revenue from $900 to nearly $1M

Over 1,300 clients onboarded

Migrated legacy ASP.NET 4.5 to modern multi-tenant

Start your AI transformation

Have a software idea, automation workflow, or AI product in mind?

Let's turn it into a secure, scalable, professional digital solution with Wafi Solutions.

Book a Consultation
Call WhatsApp Booking Email