# iRoute--An Adaptive Route Planning Solution for Commercial Vehicle Fleets
## 3 Methods--Project Implementation
### Solution Data Layers
Figure 7: High-level architecture of web services. Module: Processing services  
Processing services are responsible for transforming GPS data before they can be used by application modules. Primary data go through a data-cleaning process and then are transformed into useful data to create reports and the possibility of being viewed by the user. Module: User Profile  
The optimization process is customizable according to the parameters selected by the clients to provide the best results according to the client's preferences. The parameters are configured in the user interface as the company data profile. Users with an administrator role can select the optimization criteria that can be used, such as map type, time window allocation, driver break period, metric type, vehicle category, and other constraints. Module: Optimization Engine  
After the database, another important module is the optimization engine, which takes the orders and customer resources and defines routes that try to cover optimally as much as possible all the orders that it receives. The module uses the user profile to tailor the algorithm based on the customer's needs. We started using the algorithms from the Vehicle Routing Open-source Optimization Machine (VROOM) solution, an open-source optimization engine based on input data that calculates the best route for each vehicle with a low computational cost [31]. The VROOM works based on open-source routing engines and encompasses the Open-Source Routing Machine (OSRM), which uses data from the OpenStreetMap project. The VROOM can be customized through user-defined cost matrices and can be integrated into any routing engine. OpenStreetMap (OSM) is an open database for visualizing, analyzing, and interpreting geographic data [32]. We used it as a good source of information, based on community collaboration, that does not add up to the end-customer's license costs. Other map systems can be used if there is a specific need. The data flow consists of receiving the initial raw data (resource availability, orders, and route parameters) then processing these data by the optimization engine based on the pre-developed algorithms and road data from the OSRM (Figure 9). In the end, the plan with the optimized routes is returned to the client with enriched KPI data. Figure 8: iRoute database data catalogs. Module: Route monitor  
Route monitoring services analyze the data received in almost real time to display detailed information about the progress and status of routes. The dispatcher can monitor the route driven by the drivers, the current location, and the status of the delivery/pickup of every location visited. Module: Driver Feedback  
In this module, the application offers the driver all the information needed for driving on a route. The driver confirms any action taken (start route, end route, arrive at the customer, deliver goods, or correct the location of the customer). (C) Layer: Presentation  
Module: Web Application  
The web application was created to give end-users access to the data according to the assigned role. The web application contains functionalities such as authentication in the application, system administration, report generation, and others. Module: Mobile Application  
The mobile application allows drivers to access information about the clients' locations based on the road map on the respective day. The field operations of the driver are collected as feedback and are analyzed to improve the customer-driver relationship.