Loading case study...
Loading case study...
MVP rebuild of a 90s ColdFusion CRM system, highlighting the importance of scope management and client communication.
Implemented real-time data synchronization
Built responsive, mobile-friendly interface
Integrated Supabase for backend infrastructure
Delivered production-ready features on time
A comprehensive rebuild of a 1990s ColdFusion CRM system, demonstrating the challenges and lessons learned when migrating legacy applications to modern web technologies.
This project taught me invaluable lessons about scope management, client communication, and the importance of clear project boundaries.
Our client, All-Can Engineering, was running a CRM system built in ColdFusion from the 1990s.
The system was hosted on their own server using HTTP (not HTTPS), with exposed environment keys and no modern security practices. They couldn't find developers willing to maintain this legacy codebase.
I built JobTrax CRM as an MVP proof of concept using Next.js and Supabase to demonstrate our ability to rebuild their legacy system with modern technologies.
A key requirement was enabling field workers to access the CRM directly from their mobile devices at job sites without requiring VPN connections, eliminating VPN costs and complexity while maintaining security through modern cloud infrastructure.
Access job information
Used by: Field Workers, Office Staff
Update job progress
Used by: Field Workers
Find company contacts
Used by: Field Workers
Company management
Used by: Office Staff
Create analytics
Used by: Office Staff, Admins
User administration
Used by: Admins
On-site employees
Uses: 3 use cases
Office-based users
Uses: 3 use cases
System administrators
Uses: 2 use cases
Actors are associated with use cases they interact with (shown in use case descriptions)
ColdFusion
HTTP/Insecure
1990s Code
Next.js
HTTPS/Secure
TypeScript
The legacy database had numerous design flaws from non-developer modifications, requiring extensive cleanup and normalization. To ensure zero data loss and maintain data integrity, I used FullConvert by SpectralCore for the initial migration.
Migration Strategy:
Specific Issues Found:
The legacy database had many-to-one relationships implemented backwards, requiring complex migration scripts to reconstruct proper relationships.
For example, jobs were linked to contacts, but the company relationship was missing or incorrect. I wrote SQL scripts to fix these relationships by reconstructing the proper foreign key mappings.
Converting complex ColdFusion queries to modern SQL proved challenging due to the language's unique syntax and patterns.
Translation Challenges:
I translated complex ColdFusion queries to modern Supabase queries, taking advantage of Supabase's relationship syntax to fetch related data efficiently.
For filtered searches, I built queries dynamically based on the provided filters, allowing flexible searching by company, status, date range, and other criteria.
Moving from HTTP to HTTPS and implementing proper authentication was a significant improvement over the legacy system.
Security Improvements:
I implemented proper authentication middleware that checked for valid sessions before allowing access to protected routes.
All API routes included input validation using Zod schemas to ensure data integrity. This prevented invalid data from reaching the database and provided clear error messages when validation failed.
Problem: The legacy database had fundamental design flaws from non-developer modifications, including backwards relationships and inconsistent data structures.
Impact:
Solution:
Problem: No formal Statement of Work (SOW) was created due to family connection, leading to endless scope expansion.
Impact:
Lesson: Always create formal documentation, regardless of personal relationships.
Problem: Client was comfortable with their legacy system and resistant to change, despite security and maintenance issues.
Impact:
Lesson: Technical solutions alone aren't enough - user adoption and change management are crucial.
JobTrax CRM was a technically successful project that taught me invaluable lessons about project management, client communication, and the realities of legacy system migration.
While the MVP was delivered successfully and demonstrated our technical capabilities, the project ultimately highlighted the importance of proper project boundaries and client change management.
This experience shaped my approach to future projects, emphasizing the need for:
The technical challenges of migrating from ColdFusion to modern web technologies provided excellent experience with:
While this project didn't lead to the expected business progression, it was an invaluable learning experience that has made me a more effective developer and project manager.
This case study represents a real client project where I served as the Full-Stack Developer and Technical Lead. The project provided crucial lessons in scope management, client communication, and legacy system migration challenges.