Back to Case Studies

CASE STUDY
CustomEase:
A Customized Solution for Efficient Operations Management

Client

CustomEase

Industry

Real Estate

Product

Web app

Date

2021

Skills

Ruby on Rails

Vue.js

Process Modelling

Javascript

RWD

Multitenancy

Local Caddie: how it works
6 months
Implementation Time
1300%
Quicker Page Load
2
Developers
text image
About Client
CustomEase is a project for Granite State Cabinetry, a well established and highly experienced Home Remodeling Services company. They have been in business for over 25 years, and completed over 10,000 cabinetry projects. They are pretty much unrivaled in their operating area and have a strong reputation, showcased by their perfect opinions and customer scores.
About the project

The application was created from scratch, but it was a new version of a project that GSC already used. They had a system that was used to manage service orders, but it was outdated and not very user-friendly. The system was also very slow, the interface was complex, not very intuitive, looked and felt old. On top of that it lacked some key features that the client needed. The system was also not mobile-friendly, which was very important for some of the client's employees working in the field.

We decided that given the scope of missing features and the state of the current code, a total rewrite was in order. Time spent on adapting the existing system would exceed the time in which we could provide a completly fresh solution. Technical debt was too great, a code quality of existing application was too far away from our standards. We could have refactored it, but it was not beneficial to the client in terms of budgeting and time. The client agreed with our assessment and we started working on the project.

Clients Problem

The client could no longer efficiently work with the existing system. The system was not RWD compatible, and a big portion of their work, had to be done on site, where they would provide their services. This meant devices like tablets and mobiles, were a big priority, but they could only really work on dekstops.

Even there, the application would be slow, inefficient and not very user-friendly. The client had to spend a lot of time on training new employees on how to use the system, and even then, the system was not very intuitive. They also discovered how many more features they need, soon after receiving the "finished" product. Their current system was not easily extendable, and adding new features was a big hassle, often resulting in multiple regressions, and even worse performance.

The client was also confident with their process of conducting business, and rightfully so, it is a successful company. They wanted to sell their way of doing things, along with the app that would handle it, to other companies in the future. This meant that the system had to be multi-tenant, and easily extendable, to suit the needs of many different clients.

Challenges for 2N
  • Extracting useful, existing business logic and database structures from the old codebase.
  • Choosing the right technologies that could combine stable performance, with a modern look and feel, all on top of ease of implementing new features.
  • Understanding complex business processes and translating them into a user-friendly interface and performant code.
  • Ensuring the system is easily extendable, and new features can be added without a lot of hassle.
  • Implementing everything in a way that allows for multi-tenancy, as the client was planning on selling their process and the tool to handle it, to similar companies in the future.
In Action
What we did

Create a modern frontend

We used Vue.js and custom, flexbox based styling to create a modern, responsive frontend. This allowed the client to use the application on any device, and made the application look and feel modern and intuitive.

Customized processes

We tailored the application to streamline service orders, enabling effortless creation and tracking of all the costs, milestones, services of external, internal providers, customer data, job progresses and more.

Reports system

Every project the client created, had a lot of data connected. Milestones, services, products, costs, everything was tracked on multiple stages of the project. When lookings at one view, it was all very clear, but the client also needed ways to summarize multiple projects at once. We discussed what their needs are, and created a robust reporting system that allowed them to see all the data they needed, in a way that was easy to understand and use further.

Multitenancy

We ensured that once the client gets their hands on a ready system, they can easily sell the same application to other companies, without our further involvement. We implemented a multi-tenant system, that allowed the client to create new tenants, and manage them, all from the application itself. In a way, they had two systems at once, one for their internal projects, other for selling and managing the first system, across tenants.

Tax system, cost management

The whole system was based around projects. That was the main entity, and everything else was connected to it. The wizard for creating the project was a pivotal part, and the view where the project was managed, was the most important one. However one new feature the client really needed, was a streamlined handling of taxes. This was a big job for project manager to understand with client what the needs are, and then for the developers to implement a system that would handle all the complex money handling logic.

Outcome
After we were finished with the planned system, the client received a modern, fast and intuitive application that streamlined their processes and made their work easier. On top of that, they could sell it.
What we accomplished:
  • Compared to the old system, average page load time was 14 times faster
  • Implemented complex wizards taking the users through complex processes, step by step, ensuring they don't miss anything
  • Streamlined the most complex sets of data, into easy to understand views with plenty of interactivity
  • Created an extensive authorization process for different members of the company working on different parts of the project
  • Implemented thorough reporting system
  • Create a base of view components making the system easy to extend and change in the future
  • Coded everything with multitenancy in mind, allowing the client to easily sell the system to other companies
  • Handled business logic from client acquisition, to handling after sell taxes and payouts for contractors etc.