Case StudyLegacy Modernisation · Healthcare

The Drill Guys

Legacy System Modernisation Case Study, Australia:
Classic ASP to Cloud-Native in 8 Weeks

A complete rebuild of Hermes, an ageing VBScript (Classic ASP) Dental Management System running on MS Access, migrating over a million rows from a physical office server to a modern, cloud-hosted platform with three purpose-built portals.

We took a 16-year-old system held together with patches, rebuilt it as a cloud-native platform, and migrated every record without losing a single row. The business never went offline.

By Andre Bocati · Bocati Solutions
~1.1M
Rows Migrated
8 Weeks
Time to Deliver
3 Portals
Purpose-Built
16 Years
Legacy System Age

Project at a Glance

Client
The Drill Guys
Industry
Healthcare · Dental
Location
Gold Coast, Queensland
System Replaced
Classic ASP + Microsoft Access (2009)
New Stack
React · TypeScript · PostgreSQL
Data Migrated
Over 1M rows, zero data loss
Timeline
8 weeks to go-live
Outcome
Zero data loss · 3 portals · cloud-native

The Client

The Drill Guys are Australia's leading dental handpiece repair specialists, processing thousands of repair jobs each year from their base on the Gold Coast, Queensland. Since 2009, their entire operation had run on Hermes, a Classic ASP application backed by a Microsoft Access database hosted on a single physical server inside their office. By 2025, the system was a critical business risk: one server failure would stop the business entirely, staff could not work effectively outside the office, and dental practices had no way to check repair status without calling in. Bocati Solutions was engaged to replace the entire platform, preserving 16 years of business data and delivering a cloud-native replacement with three purpose-built portals.

Many growing Australian businesses rely on software built years, sometimes decades, ago. At the time it was built, it worked. But as the business expanded, the system became increasingly difficult to maintain, impossible to scale, and a source of operational risk that everyone quietly worried about.

Over sixteen years, Hermes accumulated layer after layer of custom logic. It worked, but it had long since passed the point where patching was the right answer. The codebase had grown to over 21,000 lines with no type safety, no automated tests, and no clear separation of concerns. Every change risked breaking something else.

We were engaged to replace it entirely: preserve sixteen years of business data, rebuild the technical foundation, and add capabilities the business had never had. All without disrupting day-to-day operations. The result was a modern, cloud-hosted platform, with zero data loss.

Who this case study is for

If any of these describe your situation, this project is worth reading in full.

  • You're running Classic ASP, Cold Fusion, legacy PHP, or another stack that's no longer maintained
  • Your data lives on a physical server inside the office, or in an old on-premise database
  • Staff performance drops significantly when working outside the office
  • You've patched the same system so many times that nobody wants to touch it anymore
  • Clients have no self-service access; every status update comes through your team
  • You know it needs replacing but aren't sure what a migration would actually involve

Our previous system had become a major operational risk. Bocati Solutions rebuilt the entire platform and gave us something we can actually scale with.

Operations Lead, The Drill Guys

Legacy Software Risk in Australia: When Maintaining the Old System Costs More Than Replacing It

The decision to replace a legacy system is rarely just a technical one. For this client, the risks were business-critical.

  • Single server failure would stop the entire business. No failover, no backups.
  • Impossible to add new locations without rebuilding the access model
  • Staff performance degraded significantly when working outside the office
  • High ongoing maintenance cost; every change risked breaking something else
  • No way to integrate with modern tools, APIs, or reporting platforms
  • The original developer was no longer available to support the system
The Challenge

Classic ASP Migration to Cloud: Why This Legacy System Had to Go

The client had been running their dental handpiece repair business on the same software stack since 2009: a Classic ASP application backed by a Microsoft Access database, hosted on a physical server sitting inside their own office. For sixteen years, every job booking, repair record, client interaction, and technician note lived on that single machine.

The risks were significant. If the server failed, the business stopped. Remote access was technically possible but painfully slow; staff working outside the office were effectively at the mercy of the on-premise server's performance.

The codebase, 126 VBScript files totalling over 21,000 lines, had accumulated sixteen years of patches and workarounds that made any further development increasingly risky. The system worked. But it was fragile by design, inaccessible remotely, and impossible to scale.

Key Pain Points

  • Physical server on-site: no redundancy, no failover, no automated backups
  • Remote access was painfully slow, effectively unusable for day-to-day work outside the office
  • Dental practices had no self-service access; every status update required a phone call
  • Microsoft Access: no concurrent access, no remote connection, no audit trail
  • 126 ASP files: no type safety, no automated tests, no separation of concerns
  • No analytics, no performance visibility, no business intelligence of any kind

Architecture: Before

LEGACY ARCHITECTURE · 2009Dental PracticePhone · Email · FaxManual requests onlymanualPHYSICAL SERVER · INSIDE OFFICEWindows IISWeb Server (on-premise)Classic ASP / VBScript126 files · 21,000+ lines · no type safetyMicrosoft Access DatabaseSingle .mdb file · local only · no concurrent access⚠ No remote access · No client portal · Single point of failure · No automated backups
The Solution

How We Modernised a Classic ASP System: From Legacy Software to Cloud-Native Platform

We rebuilt Hermes from the ground up as a modern cloud-hosted application, preserving every piece of business data and logic while replacing the entire technical foundation. The new system is a full-stack SaaS platform built on React and TypeScript, backed by a managed PostgreSQL database.

Rather than simply replicating what Hermes did, we used this migration as an opportunity to add capabilities the business had never had: a self-service client portal for dental practices to track their own repairs, a Main Office portal with analytics and inventory management, and a structured technician workflow replacing the ad hoc processes of the old system. Each portal is an internal tool purpose-built for that user group.

The three-portal architecture, separating concerns for staff, clients, and head office, gives each user group exactly what they need without exposing what they don't. Data isolation is enforced at the database level, not just in application code, making the system genuinely multi-tenant from the start.

Multi-Status Job Workflow

A full repair lifecycle from Booking through Received, Awaiting Faults, Repair, Testing, Despatch, and Closed, with each transition tracked per technician.

Client Self-Service Portal

Dental practices log in to track their repairs in real time, eliminating the need to phone for status updates and freeing up staff time for higher-value work.

Main Office Analytics

A dedicated portal for head office with repair trends, technician performance metrics, monthly expenditure, and geographic job distribution.

Batch Operations

Staff can select and process multiple jobs simultaneously: booking batches, bulk status updates, and despatch runs, instead of handling jobs one by one.

Equipment Catalogue

450+ handpiece models across 30 manufacturers, with fault types, repair diagrams, and parts associations maintained directly in the system.

Technician Workflow

Step-by-step repair guidance with inspection, repair, and testing stages: a structured workflow replacing the ad hoc processes of the old system.

Comment Library

A searchable library of templated repair notes that technicians can attach to jobs, ensuring consistent and professional documentation.

Role-Based Access Control

Four distinct roles (Staff, Admin, Client, and Main Office), each with precisely scoped access enforced at the database level, not just in application code.

Analytics & Reporting

Real-time dashboard with charts and KPIs, analytics integration with route-based page views, and downloadable client repair reports.

Architecture: After

MODERN ARCHITECTURE · 2025Staff portalJobs, repairs, dispatchClient portalSelf-service trackingMain officeAnalytics · inventoryCDNReact frontendComponent-based UI · type-safe API layer · client-side routingHTTPSAPI layerREST API · business logic · edge functions · data validationDATABASE LAYERPostgreSQL80k+ jobs · 16 years of dataAuth + RLSStaff · client · officeManaged infraBackups · 99.9% uptimeObservabilityLogging · error tracking · uptime monitoring
The Migration

Legacy Database Migration: Microsoft Access to Cloud, Zero Data Loss

The most critical part of any legacy system migration is the data. Sixteen years of business history, every repair record, client note, job comment, and technician log, had to move from Microsoft Access to a modern relational database without losing a single row.

We exported the full Access database as CSV files, scripted transformation logic to handle data type differences (particularly date fields stored as OLE Automation floats rather than proper timestamps), and loaded the transformed records into PostgreSQL. Multiple validation passes compared record counts and spot-checked data integrity before the system went live.

The result: 80,000+ repair jobs, 4k client practice records, 85,000+ job comments, and 30,000+ batch records migrated in full, with zero data loss. Sixteen years of business history, entirely preserved.

80,000+
Repair Jobs
Zero data loss
4k
Client Practices
16 years of history
85,000+
Job Comments
Fully preserved
16 Years
Of Business Data
Fully preserved
Technology

Classic ASP vs Cloud-Native: Full Stack Comparison

Before (2009)
After (2025)
Language
VBScript (Classic ASP)
TypeScript + React
Database
Microsoft Access (.mdb)
PostgreSQL · managed cloud
Hosting
Physical server, inside office
Cloud hosting · global CDN
Frontend
HTML + basic JavaScript
React SPA · Tailwind CSS · component library
Authentication
Session cookies via ASP includes
Managed auth + Row Level Security
Scalability
Single machine, vertical only
Serverless, auto-scaling
Remote Access
Office network only (slow outside)
Any device, anywhere
Client Portal
None
Full self-service portal
Analytics
None
Real-time dashboard + route analytics
Backups
Manual / none
Automated, fully managed
Outcomes

What This Legacy Software Modernisation Delivered

Anywhere
Staff can work

No longer tied to the office. Staff manage jobs, update repairs, and process dispatch from any device, wherever they are.

Self-service
Client portal

Dental practices track their own repairs without calling in. Status updates are real-time, not phone-dependent.

Real-time
Operations view

Leadership sees repair volumes, technician output, and monthly trends without exporting spreadsheets or asking someone.

8 Weeks
Full delivery

From blank repository to live cloud platform with all historical data. The business never went offline during the transition.

Zero
Data lost

Over a million rows migrated in full: 80,000+ repair jobs, 4k+ clients, and 16 years of business history, all preserved.

Resilient
Infrastructure

From a single physical server with no failover to cloud-hosted infrastructure with managed backups and 99.9%+ uptime.

Need to modernise a legacy system?

We help Australian businesses replace outdated software with scalable, cloud-native platforms.

Book a free technical audit
Timeline

From Legacy ASP System to Live Cloud Platform: 8-Week Delivery

Project Kickoff

Repository setup, UI scaffolding, and technology decisions. The cloud-native architecture was established, along with the design system and routing structure.

Database Architecture

Cloud database setup, full schema design covering every data model from the original system, and authentication flows for all three portals. Core job management UI started.

Migration Complete & Core Live (MVP)

Full data migration from Microsoft Access to PostgreSQL. The migration milestone was reached on 17 August. Core job management, repair workflow, and staff portal shipped and in active use.

Client & Main Office Portals

Self-service client portal for dental practices, Main Office analytics and inventory management, batch operations for bulk job processing, and the technician step workflow.

Refinements & Production Polish

Multi-office support, improved authentication and OTP handling, analytics dashboard enhancements, client repair reports, and ongoing production improvements.

Frequently Asked Questions

Was any data lost during the legacy system migration?

No. All 80,000+ jobs, 4k client records, 85,000+ job comments, and 30,000+ batch records were migrated in full. We performed multiple validation passes comparing record counts and spot-checking data integrity between the Microsoft Access source and the PostgreSQL target before the system went live.

How long does a legacy system replacement like this take?

The initial build and full data migration, from a blank repository to a live system with all historical data, took approximately eight weeks for our MVP. The system has been continuously refined since, with the client portal, Main Office analytics, and multi-office support all added after initial go-live. Timelines vary by system complexity, but our fixed-scope approach means you know the delivery date upfront.

What does it cost to replace a legacy system like this?

The cost depends on the complexity of the existing system, the volume of data to migrate, and how many new capabilities you want to add. For a project of this scale, a complete rewrite with data migration and three purpose-built portals, you'd be looking at a fixed-price engagement. We scope everything upfront so there are no surprises. Book a free technical audit and we'll give you a realistic estimate within a few days.

Why replace it rather than just patch the old system?

Classic ASP and Microsoft Access are no longer supported or maintained. Every patch applied to Hermes increased the surface area of technical debt without reducing the fundamental risks: the physical server, the single point of failure, the lack of remote access. At a certain point, maintaining a legacy system costs more in risk, staff time, and lost opportunity than replacing it. For this client, that point had long passed.

How did you handle the Microsoft Access date format?

Microsoft Access stores dates as OLE Automation floats, counting the number of days since 30 December 1899. We wrote a conversion script to translate these into ISO 8601 timestamps during the CSV export phase, before loading into PostgreSQL. Getting this wrong would have silently corrupted every date-dependent record in the system. Despite being unglamorous work, it was one of the most critical parts of the migration.

Is the system still actively maintained?

Yes. The new system has been in active use since August 2025 and continues to receive updates. What started as a like-for-like replacement of Hermes has since evolved into a significantly more capable platform, with features the original system never had.

Signs Your Legacy System Needs Modernising

If any of these ring true, your system has likely passed the point where patching is the right answer.

  • Built more than 10 years ago; the technology it depends on is no longer maintained
  • Running on a single server with no redundancy or automated backups
  • Staff performance degrades significantly when working outside the office
  • Adding new features feels risky; you're afraid of what you might break
  • Your clients have no self-service access; every query comes through your team
  • Hard to integrate with modern tools, APIs, or reporting platforms
Book a free technical audit

Have a Legacy System That Needs Modernising?

If your business is running on outdated software, whether it's a Classic ASP app, an Access database, a desktop system, or a spreadsheet that's outgrown itself, we've done this before. We offer a free technical audit to assess your system and give you a realistic picture of what a cloud migration would involve.

Get started

Let's build something.

Tell us what you need. We will come back with a clear scope, timeline, and fixed price, usually within 48 hours.

  • Free initial consultation, no obligation
  • Fixed-price quote, no hourly surprises
  • You own 100% of the code at handover

No spam. No obligation. Just a straight answer.