Warehouse Management System

The Client

Davanti is one of the leading Dutch companies specializing in the field of warehouse management solutions. CORAX WMS is their flagship SaaS Warehouse Management System (WMS) designed for small and medium companies, but also for big warehouses that are highly automated.

Their Legacy Solution

Davanti was looking for a reliable partner for building their Warehouse Management System in an agile way. Performance and availability of the system have been the focus areas, next to making the application appealing to SMBs and enterprise businesses.

Our mission: design their software architecture for high-availability and high-scalability, develop an innovative, scalable Warehouse Management System, and develop new features.

Project setup

The project started with a pilot phase in which we focused on building a modern and scalable software architecture and proving that we can deliver high-quality work. It also included a few audit sessions with an external company on the chosen architecture.

As the pilot proved to be a success, we started immediately working on the subsequent sprints having a large dedicated SCRUM team, which includes a SCRUM master, a software architect, developers, QA engineers, and UX/UI designers. Qubiz and Davanti augmented team met in SCRUM daily ceremonies and during monthly visits.Furthermore, Davanti entrusted us with the enhancement of the legacy application MLS (which is currently in production and used by their corporate customers), which includes processes such as troubleshooting and the development of new features. For this project, we formed a dedicated team to fully support them.We also contributed to the successful deployment and use of the software application for one of Davanti’s clients in the United States—doing implementation consulting.Quality was assured by load and performance tests with clear requirements defined by the business. We are looking closely at the velocity of the team and points to improve it.

Main Solution Modules


Set different racking types such as Front rack, Drive-in rack, Stacked rack, or Channel rack. Divide racks into areas, and areas into labour areas in order to have a system that will work in that area (APP/MFCS/Paper). Via location management, you have real-time insight and detailed location occupancy.


Consolidate pallets, after the various orders have been collected, and use the space in the trailer as optimally as possible.


Design reports and labels to the wishes of your customer. These designed documents and labels can also be retrieved directly from CORAX’s interface. Reports can be configured to be generated automatically at a certain time.


The same order picker can be used to collect multiple pallets simultaneously on a route in a work area, with the flexibility to decide how many shipping pallets can be put together in a route.


The material handling system is important for automated warehouses. Algorithms are used to efficiently move pallets in the warehouse in the inbound and outbound flows. CORAX keeps track of all communication with the external system in order to know exactly where the pallets are at all times.


In CORAX we can choose between Dutch, English, Spanish, or French in both the web and the mobile application. Also, you have the option to view the web version in English and the mobile app in other supported languages.


Orders can be released per trip, individually or all at once to the shop floor. Allocation is based on a user-defined allocation profile (FIFO/FEFO, Most empty location, etc.), also soft and hard allocation can be defined by the user. The system controls the movement of the pallets to the cranes of the automatic warehouse or to RF. Picking lists are assigned based on priority. The status of order picking can easily be followed through the desktop via status updates.


After receiving goods, the receipt check is controlled based on the configuration settings that can be made on different levels. After the booking process, the most optimal storage location will automatically be selected.


Carry out real-time transfers to the picking positions via order-based replenishment, manual replenishment, or continuous replenishment, continuously filling up the picking positions. Special handling replenishment can also be made if on-demand specific stocks are required.


An RF device with an Android operating system and WIFI access is required to receive incoming goods, execute replenishments, pick full pallets or detail orders, count, consolidate shipping pallets, perform VAL activities, look up pallet information, link photo to pallets, receipt, order or trip and start a loading process.


By default, there are 11 different roles in CORAX from picker to administrator. Per role, you can set which rights are applicable for which functionality.


Dock scheduling is a collaborative scheduling tool that enables the warehouse and carriers to optimally manage dock appointments. Available time slots are easily shown on a calendar, to make operations more efficient and to have a better overview.

Technical Solution

Application type:

The solution is a multi-tenant web application delivered as Software as a Service and deployed in the cloud using Microsoft Azure.

Architecture patterns and styles:

  • Domain-Driven Design (DDD)
  • Onion Architecture style
  • Command Query Responsibility Segregation (CQRS)
  • Event Sourcing
  • REST
  • Multi-tenancy

Microsoft Azure components:

  • Azure Active Directory
  • Azure Table Storage
  • Azure SQL Database
  • Azure Service Bus
  • Azure Traffic Manager

Technology Stack:

  • .NET Framework 4.6
  • C#
  • ASP.NET WebAPI 2
  • Windows Identity Foundation (WIF)
  • AngularJS, Bootstrap

Responsive design:

Supports a variety of screen sizes, from small tablets to desktop monitors, using the Bootstrap framework.

Technical Approach Details:

A complex combination of architectural styles and patterns were applied to CORAX WMS in order to adapt to a DDD (Domain-Driven Design) approach by considering the domain model as the core of the software application.

Command - Query Responsibility Segregation (CQRS) pattern uses a different model to persist information (the write model) than the model used to read the information (the read model). Every request from the Presentation Layer should be either a command that performs a change to the write model or a query that returns data from the read model, but not both. The write model has to notify the read model about every change. The read model is a denormalized data model optimized for the highest possible performance.

Event Sourcing pattern persists not states of data in particular moments in time, but rather events which describe how these data changes. Then, data snapshots (not only the latest but also historic ones) can be reconstructed by replaying that series of events.

Event-Driven Architecture pattern is used to build a highly scalable application. The pattern is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

The continuous delivery strategy is implemented to have software that can be released to production at any time. The repeatable and reliable process for taking software from concept to customer can be divided into the following phases: Develop -> Build -> Test -> Release -> Monitor

Azure Services Details:

Microsoft Azure was chosen as the cloud computing solution for the hardware/software infrastructure of the CORAX application. Azure provides a wide variety of services that CORAX uses without purchasing and provisioning on-premises hardware:

  • PaaS services - App Services (Web Apps, Web Jobs), Data Services (Azure Storage, Azure SQL Database, Redis Cache), Service Bus, Batch Services, Azure Active Directory
  • IaaS services - Virtual Machines

Warehouse Management BI Solution:

Operational Systems:

  • Azure SQL Server
  • Azure Table Storage

Data warehousing & BI Systems:

  • ETL - E(extract) T(transform) L(load) data from multiple sources, reformat and cleanse it, and load it into destination database, a data mart or a data warehouse for analysis, or on another operating system to support a business process
  • Staging Area (SA) - one to one copy from the source databases
  • Data Warehouse - a cloud-based, scale-out database capable of processing massive volumes of data, both relational and non-relational
  • PowerBI - It provides interactive visualizations with self-service business intelligence capabilities, where end users can create reports and dashboards by themselves

Technical Details - BI:

Power BI is used as the main reporting tool. By using it, the client has a much better understanding of all relevant business indicators.There are over 100 Power BI reports that are built on top of the existing Data Warehouse solution.Architecture patterns and styles: KimballTechnologies: WebJob, PowerBI, Azure SQL

Let's meet for a chat about your project
Request meeting
Read more about the work we've done
See case studies