Using Freshworks apps? Check out what we can do for you! Learn More

About the Customer

InterDesign began as a Housewares design and marketing company in 1974 with a core goal to design and sell innovative products for the home at a reasonable price. They design products that provide solutions for organizing your everyday living space. The product solutions are designed for the bathroom, kitchen, pantry, closet, laundry room and more.

The Company is based in Solon, Ohio and is a global leader in Housewares with 3 distribution facilities in Northeast Ohio, 1 in China, 1 in Europe and 1 in Japan. They sell to over 100 countries across multiple continents. InterDesign takes pride on not only being first to market with innovative new product designs, but also on their ability to consistently meet customer requirements for shipping accuracy and on-time deliveries.

Business Need

InterDesign has an intranet portal to manage all user types to access various sections related to inventory, invoice and item details. The system consists of various tools and generates reports that ensure end-to-end business and operational needs. Batch processes allow the web application to sync with other third-party apps and databases to generate necessary reports on user needs.

This legacy application portal has around 1.8 million lines of code comprising of more than 700 modules/- submodules, a few thousand reports and batch processes. The application was developed using Zend framework. Over the years the application has gone through significant changes and varied coding standards through many developers. There has been almost no documentation on the application business logic and interfaces, making it very difficult to maintain and support the growing needs of the business. To add to the problem, the Zend Framework and the PHP versions were left behind many releases with some of the versions are nearing the end of their lifespan. This is an eminent threat to supporting the business that needs to be addressed immediately.

Key Objectives from InterDesign are below:

  • Rebuilding the legacy application using a robust and scalable framework.

  • Establish a Release Engineering Process (REP) for better application releases.

  • Test coverage through Test Driven Development (TDD) for enhanced application quality.

  • Clear Documentation to avoid scope hindrances faced with the legacy system.

  • Ongoing Maintenance and Support.

Our Solution

TechAffinity conducted a 4-week study to analyze the application and provide a detailed proposal to modernize the application and suggest ways to bring in best practices in software development and maintenance.After careful study and due diligence, TechAffinity has documented the findings/observation. During the initial proposal walkthrough, it was mutually agreed to use Laravel as the platform of choice for this migration effort. Advantages of the proposed technology stack are also included. The proposal also includes Test Driven Development (TDD) and Continuous Integration. All these put together not only modernizes and increases the life of the application, it also provides what it takes to support and maintain enterprise level application. The below technology stack was opted to ensure that the new system meets the current and futuristic needs of InterDesign.

  • Operating System: CentOS 7

  • Programming Language: PHP 7.1

  • Framework: Laravel 5.4

  • Database: Maria DB 10.2.8

  • Webserver: Apache 2.4.x

  • Charts/Graphs: Fusion Charts

  • Version Control: Git

  • 01 Handling Passwords

  • 02 PHPExcel

  • 03 Report List Sorting

  • 04 Raw Queries

  • 05 Batch Pools

  • 06 AX & RP

  • 07 Batch Process from the Code

  • 08 Quality Issues

Risk: Laravel stores its password in bcrypt format. But it was found that the existing system has 2 methods of encryptions.

Mitigation: Passwords for new users will be based on bcrypt. When the existing users come in, we would make them change password and remove the old password columns. This changed password will be in bcrypt.

Risk: Existing report list sorting functions would not be supported in Laravel.

Mitigation: Column wise sorting would be implemented using the default package of Laravel, which in fact offers improved sorting feature than the current one

Risk: Handling Raw Queries that might trigger vulnerability issues.

Mitigation: Raw queries would be replaced with Eloquent queries to prevent vulnerabilities or SQL injections.

Risk: Batch pools might have an issue during the transformation.

Mitigation: During the transformation phase, the existing system would be on a maintenance mode. After transformation the new system will use the existing database and thereby, the batch process will run all pending jobs in the queue. This approach avoids redundancies in the batch programs.

Risk: Pushing records to AX or retrieving data from RP will create issues during development.

Mitigation: Need to get a mirror system for AX and RP, where we can push/retrieve data from clone system. This enables the developers to check if the data is pushed and retrieved.

Risk: Handling of batch processes that are created from the code.

Mitigation: TechAffinity would verify the Batch processes that are created from the code and disable them. And also, we would note the scenarios under which these are triggered to mitigate it in the future. Once the new system is deployed they would be enabled

Risk: Quality issues that may rise during the transformation process.

Mitigation: To mitigate this risk TechAffinity proposes to write User Stories that would brief the entire legacy system. Then follow a Test Driven Development (TDD) approach.

Technical Advantage Post Transformation

Technology Stack