Ruby on Rails: Inventory Management Platform
A leading online inventory management and barcode solution provider expanded the capabilities of its solution by integrating API’s from eCommerce players like Amazon, Shopify, BigCommerce, Magento, Shipstation.
About The Client
The client is a niche technology firm providing a wide variety of barcode inventory control & scan pack QC system.
Navtech’s client wanted to offer its customers the ability to import orders from various ecommerce platforms such as Amazon, Shopify, BigCommerce, Magento, Shipstation. The application needed to be intuitive that could be easily used by its warehouse staff with minimal training. It also needed to be scalable to allow high volumes of scan and pack across various sellers.
Why Ruby Platform?
Navtech selects the most appropriate technology platform for each customer project. This project required combining data from a NoSQL data store and existing REST APIs to generate bespoke SVG visualisations created on the server. This content would then be presented through a responsively designed website and email channels.
The team compared the leading technologies for the solution, which included various Java Frameworks, Node.js, and the PHP Framework. The bespoke SOLUTION would require extensive data manipulation, including sorting, grouping, mapping and combine. Ruby’s powerful support for such operations, when combined with implicit typing, lambdas, and other language features, made it a leading choice. The team decided that the resulting codebase would be quick to build, easier to understand, scale and maintain than the alternatives.
Leveraging Ruby On Rails for UI developers
Navtech created a project team by integrating UX and UI experts with server-side developers. Ruby on Rails appealed to UI users in many ways, including giving the functionality of separate controllers for UI and web services because of the MVC driven architecture. By relying on the underlying Model classes for all common functionality. And helping to expose the data model as a gem.
The UI components and applications are developed in a modular fashion which is automation test friendly and helps in long-term quality assurance.
Scaling Teams and Code
While making the UI developers happy, RoR provided extended benefits for back-end developers, including:
- The choice of a web framework that uses the MVC pattern reduces the initial learning curve for developers familiar with ASP.MVC, PHP or Java MVC frameworks.
- The architecture was designed to scale to thousands of simultaneous users and the use of Nginx being horizontally scalable gave us this ability.
- Navtech’s default development philosophy is driven by DevOps, we leveraged the below tool stack to achieve this-
- CodeClimate for static code analyzer (consistently rate 3.7 + on CodeClimate).
- New Relic for performance and server monitoring.
The team found that the online documentation, with extensive examples, really helped to jump start the development.
The project had a broad scope and included:
- Analysis of the key components of the existing solution stack and identifying the integration points.
- Identification of the product portfolio for different end users based on the varied requirements of each end user.
- Development of a SaaS based product which is multi-tenant and used API based approach using Microservices architecture.
Navtech leveraged Agile driven development for this project. To start with, our developers leveraged Bamboo for continuous integration and deployment. They used a file to create the functioning of the code which dictates the basic operating system as well as the steps for building their code into an image. Once the designs are completed locally, they are pushed to Github which includes the Bamboo configuration.
Navtech created a SaaS based product which is multi-tenant and used API based approach using Microservices architecture. The application is available to access via a web application and an iOS application.
The first release of the solution was delivered in just 12 weeks and is in use even today. The customer is very pleased with the solution.