Overview
Trackmart’s ordering system allows buyers to request product deliveries (such as sand and other construction materials) with real-time pricing and driver selection. The order workflow integrates quantity selection, dynamic pricing, payment methods, and driver assignment.Order Creation Flow
The order creation process follows these key steps:Select a Driver
Users can search for available drivers by name or phone number, or browse through the list of registered merchants.
Configure Order Details
Set the quantity, unit type (Truck or Tonne), and payment method (Mobile money or Cash).
Review Pricing
Real-time pricing is fetched and displayed, showing the cost per unit and total amount.
Product Selection
Currently, Trackmart focuses on construction materials, primarily sand delivery.The product type is currently set to ‘Sand’ in the codebase, but the architecture supports expansion to other products.
Available Units
Truck
Order by full truck load
Tonne
Order by weight (metric tonnes)
Quantity Management
Users can adjust order quantity through multiple methods:The minimum order quantity is 1 unit. The system automatically calculates the total price when quantity changes.
Dynamic Pricing
Pricing is fetched dynamically and updates in real-time:- Rate per unit:
1 [Unit] of [Product] costs UGX [Price] - Total amount: Automatically calculated based on quantity × rate
- Currency: UGX (Uganda Shillings)
Payment Methods
Trackmart supports two payment methods:- Mobile Money
- Cash
The default payment method for digital transactions through mobile money services.
Order Data Structure
Each order contains the following information:Order Object Fields
Order Object Fields
- destlat/destlong: Delivery destination coordinates
- driverId/driverName/driverPhone: Selected driver information
- userId/userName/userPhone: Buyer information
- quantity: Amount ordered
- payment: Payment method
- price: Unit price at time of order
- unit: Measurement unit (Truck/Tonne)
- timestamp: Order creation time in milliseconds
Submitting Orders
Orders are submitted to Firebase Realtime Database:Order Validation
Before submission, the system validates:- Driver Selection: A driver must be selected or searched
- Quantity: Must be a valid number greater than 0
- Pricing: Rate must be successfully fetched
- Location: User’s current location must be available
Navigation
The ordering interface is accessible from the main tab navigation:Next Steps
Track Orders
Monitor delivery progress in real-time
Chat with Drivers
Communicate directly with delivery drivers