Web solution for MyCarrierTMS
MyCarrierTMS is a transportation management portal for truckload shipments.
- Duration 2017 – ongoing
- Team Starting with 5 and increasing to 25
- Type Shipment and transportation
- Industry Logistics
- Platforms Web, Mobile (adaptive)
Project idea
The startup was founded by logistics professionals who wanted to connect shippers and carriers directly. The envisaged solution would further streamline activities needed to book, coordinate, and monitor less-than-truck shipments.
Target audience
The platform targets small to mid-size shippers. They can find a carrier faster. The software automates multiple steps. It also decreases uncertainty. For carriers, the startup optimizes operations and also provides visibility opportunities through partnerships.
Results
The team delivered a Web solution from scratch, helping the startup validate its business idea. The number of operations started growing soon. The startup received funding in several rounds. The development team focused on cloud transition for greater scalability.
Core Tech
-
Angular
-
.NET
-
TypeScript
-
Azure
Project challenges
-
Integration of an API that was under development. By the time the IT Craft team was integrating project44’s API, it was under development. The work continued in parallel. Every project44 API update was simultaneously implemented in the MyCarrier codebase to grant consistency.Agile workflow. Scrum methodology allowed to integrate tightly business and software development teams. The development team could react fast to requests from the client’s team and change Sprint's focus every two weeks based on desired priorities.
-
Automation at scale. The team automated routine jobs, from update releases through regression testing to infrastructure deployment to keep up with the constantly increasing user number. This further freed up resources to focus on long-term improvement.Efficient and flexible team onboard. After the MVP launch, scope of work grew constantly. To match the workload, the team grew from 5 to 25 people. The same team members continue working on this project to ensure stability and consistency.
Planning
Input
The client initially:
- Had an idea and sought its validation.
- Set stringent standards to fully capture the look and feel of the future transportation management system.
- Targeted Ukrainian companies.
Analysis
Our team:
- Provided efficient app architecture.
- Kept pace with the required timeline.
- Built a customer-side system for the shipper first after 6 months of work.
- Completed the carrier portal three months later.
- Focused on expansion, scaling, and architecture transformation.
Result
IT Craft’s work resulted in:
- Timely launch of an MVP portal for less-than-truck shipments.
- Project expansion to full-truck-load shipments.
- Software maintenance that ensures its 24/7 availability.
- Software transformation aiming at improved stability and scalability.
Business benefits
Transparency
The system connects users with multiple carriers. They can run and compare rate quotes, book shipments, and track deliveries.
Process automation
MyCarrier optimizes routine and reduces booking time. Managers need fewer steps to quote, ship, and track.
User friendliness
MyCarrier is a leading solution on G2 for ease of use and for doing business with the company.
Simplified provider connection
With efficient, tested processes, the team connects new providers to the system within a minimum timeframe.
Main project
features
Quotes
Users compare rates from multiple carriers in live mode. They find the best prices and service levels for shipping rates to match customer needs.
Coordination
Users plan logistical activities, adjust deadlines, determine pick-up schedules, and manage deliveries, and exceptions in the dashboard.
Document generation
MyCarrier system autogenerates all required documentation which can be further sent via email or post. The system stores documents in the user account from where they can be retrieved easily.
Shipment tracking
Users review all shipment information in their MyCarrier calendar 24/7. Automated alerts help them identify tracking statuses. Filter options make it possible to display shipments at a specific location.
Reports and Analytics
Collected information is always available at hand. It serves to build performance reports. Users can compare time and costs per carrier and determine potential savings.
Project transformation to microservices and further improvements
During the post-production stage, the team adjusted the software to their client’s long-term growth plans. The team focused on building an application that supported:
All while coping with a constantly growing user load.
At a certain point, the team concluded the project needed major changes to keep up with the challenges.
Although the team could have continued working with the existing monolithic codebase, it opted for project transformation. The monolithic codebase had become expensive, heavy, and resource-consuming. Also, technical limitations surfaced.
The team decided on microservices architecture and a relevant infrastructure design to ensure correct system operation in the cloud.
Project
transformation steps
The entire transition towards services-oriented architecture included three major stages divided into several sub-steps.
The team designed a migration plan covering:
01 Pre-migration
The IT Craft team conducted a system audit and designed a migration plan with 20-28 items on the list. The team aimed at reusing source code from the monolithic codebase. The entire system was divided into eight subdomains that depended on different responsibility areas.
Also, the team started to accumulate a library of system components, e.g., database connection providers, report generation components, jobs, etc.
02 Migration
The team transferred the entire software—part by part—ensuring users accessed the same functionality without noticing any difference. It was not possible to immediately transfer critical resources (e.g., scheduled jobs) to the cloud. The team began by moving to a service-oriented architecture.
At the first step, the team began migrating non-critical stand-alone jobs by transferring them to the cloud. They could run independently from the entire application using Azure Functions for serverless solutions.
Critical system parts were separated into microservices and transferred carefully during the next step.
Initially, all user content (files, documentation, tables, etc.) was available from virtual machines where it was stored, processed, and from where it was retrieved. The team integrated Azure Storage Account, a container for user data where user data was stored after migration. Users continued working using virtual machines, but those were connected to the cloud.
The logging system worked on a virtual machine with a Mongo server on it. The team moved to Mongo Atlas—a cloud server for relational databases that ensure high viability.
Eventually, all software parts landed in Azure Cloud. The entire system was transferred to microservices architecture and became available from the cloud.
Eventually, all software parts landed in Azure Cloud. The entire system was transferred to microservices architecture and became available from the cloud.
03 Post-migration
Developers continue to release all-new app functionality as microservices. They focus on efficiency by automating routine processes on the project. The team designed and fine-tuned a CI/CD pipeline.
For it, the team established build-and-release pipelines and applied best practices to test automation. Infrastructure deployment is controlled and managed via scripts.
For it, the team established build-and-release pipelines and applied best practices to test automation. Infrastructure deployment is controlled and managed via scripts.
As a result, the team can release any number of instances with identical configurations at once and deploy app code on them within seconds. Regression test automation decreased the delivery time of app updates
Transformation benefits
Transition to microservices provides the following benefits to the project:
Fault tolerance
The system is based on three shared clusters switching from one to another in case one becomes unavailable.
System stability
Software behavior has become more predictable for developers making it possible to simplify maintenance.
High availability
The team has achieved 99.97% system availability through infrastructure reorganization and continuous monitoring of system health.
Scalability
Any number of required, identical software copies can be launched automatically when user activity grows.
Decreased release time
With automated testing and pipeline, time needed for delivering updates has reduced from hours to minutes.
Project timeline
-
Project timeline
2017 – ongoing
-
≈ monthly workload
3,500 – 4,000 hours
Technologies
-
Angular
-
.NET
-
TypeScript
-
Azure SQL
-
MongoDB Atlas
-
Azure Cloud
-
Azure App Service
-
Azure Functions
-
Azure Storage Account
-
MailGun API
-
Stripe
-
Recurly API
-
Google Maps API
-
project44 API
-
Hiqpdf