Rigintel
Overview
RigIntel is a modern petroleum fuel delivery platform designed to streamline the ordering and distribution of fuel products across Nigeria. The platform connects fuel distributors with businesses and consumers, providing real-time tracking, automated scheduling, and transparent pricing.
The challenge was to create a system that could handle the complexity of fuel logistics while remaining simple enough for everyday users to navigate confidently.
The Problem
Traditional fuel procurement in Nigeria involves multiple phone calls, uncertain delivery times, and opaque pricing structures. Businesses often struggle with inventory management, leading to either stockouts or over-ordering. There was a clear need for a digital solution that could bring transparency and efficiency to this essential service.
Technical Architecture
The platform is built on a modern stack optimized for real-time operations and scalability. Here's an overview of the core data models:
interface FuelOrder {
id: string;
customerId: string;
fuelType: 'PMS' | 'AGO' | 'DPK';
quantity: number; // in liters
deliveryAddress: Address;
scheduledDate: Date;
status: OrderStatus;
pricing: PricingDetails;
}The order management system handles everything from initial request to final delivery confirmation:
async function processOrder(order: FuelOrder) {
// Validate inventory availability
const inventory = await checkInventory(order.fuelType);
if (inventory.available < order.quantity) {
throw new InsufficientInventoryError();
}
// Calculate optimal route
const route = await routingService.optimize({
origin: nearestDepot(order.deliveryAddress),
destination: order.deliveryAddress,
vehicleType: getVehicleForQuantity(order.quantity)
});
// Assign driver and vehicle
const assignment = await assignResources(order, route);
return { order, route, assignment };
}Real-Time Tracking
One of the key features is the live tracking system that gives customers visibility into their delivery status. The tracking implementation uses WebSocket connections for instant updates:
// Client-side tracking subscription
const trackDelivery = (orderId: string) => {
const socket = new WebSocket(`wss://api.rigintel.com/track/${orderId}`);
socket.onmessage = (event) => {
const update = JSON.parse(event.data);
updateMap(update.coordinates);
updateETA(update.estimatedArrival);
showNotification(update.status);
};
};Pricing Engine
Fuel prices fluctuate frequently, and the platform needed a dynamic pricing system that could account for base price, delivery distance, quantity discounts, and time-of-day factors:
function calculatePrice(order: FuelOrder): PricingDetails {
const basePrice = getCurrentMarketPrice(order.fuelType);
const deliveryFee = calculateDeliveryFee(order.deliveryAddress);
const quantityDiscount = getVolumeDiscount(order.quantity);
const surgeFactor = getSurgePricing(order.scheduledDate);
const subtotal = basePrice * order.quantity;
const discount = subtotal * quantityDiscount;
const delivery = deliveryFee * surgeFactor;
return {
subtotal,
discount,
delivery,
total: subtotal - discount + delivery,
breakdown: { basePrice, deliveryFee, quantityDiscount, surgeFactor }
};
}Design Decisions
The interface prioritizes clarity and speed. Users can place an order in under 60 seconds. The color palette uses deep blues and oranges—reflecting both the petroleum industry and the warmth of reliable service.
Typography choices lean toward geometric sans-serifs that convey precision and modernity. Data visualizations for consumption analytics use a restrained color scheme to maintain readability across different lighting conditions.
Impact
Since launch, RigIntel has processed over 50,000 deliveries with a 98.5% on-time rate. The platform has reduced average order-to-delivery time from 48 hours to just 6 hours for metro areas.
RigIntel transformed how we manage our fuel inventory. What used to take days of coordination now happens with a few taps.
The project continues to evolve with planned features including predictive ordering based on consumption patterns and integration with IoT tank sensors for automatic reordering.