Today, the metallurgical industry is more vulnerable than ever: any disruption in production or logistics processes can lead to huge losses. To avoid this, professionals need technologies that are truly reliable and effective. These are exactly the technologies we wanted to provide to the client – the Interpipe Group, which is a global player in the market of steel pipes and railway wheels.
In this article, we will talk about how we did custom development of a freight tender platform for transportation for Interpipe, and how the company solved a range of issues in its inner processes.
Who was the customer?
The Interpipe Group is a Ukrainian industrial company, a global manufacturer of steel pipes and railway products.
Interpipe’s clients include leading global companies in the industries of oil and gas, construction, and transport. Even today, despite the war in Ukraine being full-scale, the production of the holding is distributed to 70 countries around the globe through a network of sales offices located in the key markets of the Middle East, North America and Europe.
What was the challenge?
In order to properly define the problem, we need to tell a little bit more about the specifics of the client’s business processes.
In organizing its inner logistics, Interpipe relies on an internal electronic tender platform where you can buy transportation services. This platform allows tenders to be held in a non-stop regime as they are updated three to four times a day. The carrier company that wins the tender must be ready to take the flight without delay. He often has no more than a day to prepare for transportation.
Freight forwarders who want to get a contract for the transportation of products through Europe or Ukraine are the main category that participates in the tenders. To do this, they need to offer the best price and conditions at the tender competition, which is held in the format of bidding. Dozens of carriers can participate in each such auction, which competes fiercely on price rates and terms of service.
The task of the transportation tender platform is to automate these auctions and ensure equal conditions for all participants. But as the load on him grew, the old system lost its effectiveness. The platform began to slow down and process requests with errors or reject them. The most critical were the last 5-10 seconds before the end of the auctions. That was exactly the moment when dozens of freight forwarders began intensively updating their price rates so the platform was losing its stability. To solve this problem, Interpipe contacted us. The client required a new, effective, and reliable, solution.
Solving the problem
A customer came to us with an existing system and an old technical task that was used to build it. The idea was to repeat the current functionality, but in such a way as to meet the requirements for speed and fault tolerance.
We needed to implement the changes on a fundamental level so we didn’t have to update or partially revise the old platform. Sometimes, in such cases, a mobile application RFP is necessary. In order to guarantee the platform's speed and absolute accuracy, it had to be individually developed from scratch. In addition, its design and functionality had to be updated to modern standards. In cases where a mobile app RFP is needed, it should also meet the modern requirements.
Therefore, the goal of the project was to develop a new version of the platform of the tender site for bidding for the purchase of road transport. The system had to take into account all the shortcomings of the old solution — to ensure speed, accurate data updates, and real-time response to user actions.
Achieving this goal required solving a number of tasks:
- implement functionality for holding tenders in the format of a web application (SPA);
- ensure that tender data is updated on the platform in real-time. So that all users within the tender can see absolutely identical data with minimal delay;
- provide the platform with the ability to accurately process a large number of requests in a short period of time, during peak loads;
- implement a modern UI/UX that will be convenient and understandable for forwarders.
What technologies were used in the development
The main characteristics of the product were now the speed of updating, the resilience to pressure, and the ability to handle multiple requests instantly. So the team chose the technologies they were perfectly good at.
To realize the client’s part we chose the framework Node.js. The PostgresQL relational database was used as a DBMS, and Redis – as an In-memory storage. The backend part was developed using the PHP language and Laravel framework in particular. The interconnection between components through API is realized with the help of GraphQL.
What approach to work did we use?
In general, the project consisted of two stages. The first stage involved the development of a Proof-of-Concept. During this stage, the team studied the client's request and prepared the product core for its technical requirements, taking into account all the specifics of the future solution. We demonstrated the operation of this core to the client in a test simulation on demo servers, having conducted a load test procedure.
Thus, the client had the opportunity to make sure that the future product would meet the requirements of speed and fault tolerance. Only after that, we agreed on the scope of work.
The second stage was directly related to product development: development and coordination of UI/UX, backend and frontend programming, and implementation of all functional requirements.
The experienced team that engaged in working on the project included:
- A UX Designer
- A Business Analyst
- A Backend Developer
- A Frontend Developer
- A Project Manager
- A QA Engineer
- A DevOps Engineer.
Project deadlines were limited, so the team carefully detailed and planned all development tasks. It was important to stick to the plan and move toward the release as quickly as possible.
Reports and Communication
The client assigned his own manager to the project, who monitored the progress of development and provided the developers with all the necessary feedback. We regularly reported to the client side about compliance with the project timing and the progress of the implementation of the road-map.
Every two weeks, the team of developers held a demo day for the client and the technical department of Interpipe – the parties that were directly interested in the project’s success. These demo days included detailed discussions of the project and demonstrations of the results of our work. Generally speaking, the development process was smooth and did not include issues so the team was on time with the release.
What we ended up developing
The result of the project was a reliable digital tender platform for the purchase of transport services, implemented in the Single Page Application format. Now the customer can be sure that their daily online tenders for road transport are carried out without problems, delays, and errors.
Let’s have a look at how the new solution operates:
- A freight forwarder is authorized on the Interpipe corporate portal. The forwarder can choose the “Auctions for transportation” and visit the platform we developed.
- The user sees cards of available shipping tenders with all the necessary information. He can choose one or more of them to participate in the auction. The platform provides a filter system for selecting the necessary offers. They can be filtered by types of cargo, transport, direction (export, import), specific types of client tenders (single, circular, grouped), etc.
- The key function of the platform is auctioning. After choosing the right tenders, the freight forwarder chooses the "Trade by favorites" option and gets to a new screen. Here, on the cards of the chosen tenders, a timer and a trade bid field appear.
- The goal of the freight forwarder is to win the tender by offering the best price. The company displays its starting price, along with the automatic rate reduction step, on a card. It is important that here, the timer of auctions and the relevant bids are updated through the WebSocket protocol in the real-time mode.
- When the bidding timer expires, the bid is automatically submitted for processing. The logic of determining the winner lies outside the platform, on the client's ERP side. However, it is our platform that guarantees the accuracy and preservation of the correct sequence of submissions of bids from all participants.
- The freight forwarder can see the results of their auctions in the “inactive tenders” tab. There, the company can see what shipping tenders they won, and what lost.
An important part of the project was the new design. We developed the UI/UX of the site in such a way as to make it as convenient and informative as possible for end users. The team also paid special attention to the responsive layout of the pages to make them comfortable on tablets and smartphones.
Difficulties that have been solved
One of the main challenges faced by the team was to ensure the interactive communication with the application in the real-time mode. It was crucial to ensure the the synchronization of information that is displayed simultaneously for several users. This had to be solved both in terms of backend development – by providing a sufficient level of system speed and support for a significant number of simultaneous sessions, as well as on the front and end part of the application.
The team encountered the peculiarity of the work of modern frameworks during the rendering of content, the peculiarity of the work of browsers on client devices, and more specific problems — such as the drift of system timers, unevenness of network delays, etc. Additional complexity in solving this problem was introduced by a significant amount of data of a complex structure, which had to be processed on the client side.
So our specialists developed and implemented a range of solutions that allowed us to achieve successful results and ensured that the the tendering app matched the client’s expectations.
An additional challenge was to form the architecture part of the project so that it fits into all of the other requirements of the project. One such requirement was to ensure fault tolerance and scalability of the system through automatic horizontal scaling.
Considering the stateful nature of tender applications with web sockets, it was necessary to propose a solution that would allow maintaining a stateless approach in the design of system components, and at the same time organize the sharing of session data between service replicas, and at the same time not create a single point of failure.
Results of our project
Today, the new tender platform has become a part of the daily operations of Interpipe. Its functionality, speed, stability, and security fully satisfy the client. Today, the development team focused on small improvements and updates to the service. The client has already collected the first feedback from end users of the platform and is planning design changes to improve the user experience.
The next step in the development of the site should be the development of a full-fledged admin panel instead of the work of the application of an ERP interface. It will make it easier for the company to download tenders and manage bidding processes.
The transition to a modern web application allowed the Interpipe team to leave complaints and misunderstandings related to errors in the tendering system a thing of the past. The new platform does not allow situations in which the winner of the tender is determined incorrectly, or is not determined at all. This directly affects the continuity of operations, and minimizes the risks of downtime and losses due to disruption of trading. So this experience can be considered useful for any manufacturer, any carrier, and any logistics operator.