Back to projects
mobileFeatured

Tallu - Construction Equipment Rental & Sales

Tallu is a cross-platform mobile application built with Flutter that connects contractors, project managers, and builders with heavy construction machinery for rental or purchase directly from their mobile devices. I developed Tallu as part of my work at Speedforce Digital, with the goal of bringing a seamless, marketplace-style experience to an industry that still heavily relies on phone calls and manual processes.

Tallu - Construction Equipment Rental & Sales

Tech Stack

FlutterFirebase

Tallu - Construction Equipment Rental & Sales Platform

Tallu is a cross-platform mobile application built with Flutter that connects contractors, project managers, and builders with heavy construction machinery for rental or purchase — directly from their mobile devices.

The Problem

Sourcing reliable construction equipment in the Middle East and South Asian markets is a fragmented, time-consuming process. Contractors typically have to contact multiple vendors individually, negotiate over the phone, and still have no guarantee of equipment availability or quality. There was no centralized digital platform where a project manager could browse, filter, and book heavy machinery excavators, cranes, bulldozers alongside day-to-day consumables like cement bags, hand tools, and safety gear, all in one place.

Tallu was built to solve exactly that: eliminate the friction from equipment sourcing and give construction professionals a reliable, mobile-first procurement tool they could use from the job site.

What I Built

Heavy Equipment Rental Listings

I built a full browsing and booking flow for an extensive catalog of heavy machinery available for short-term and long-term rental. Equipment categories include excavators, bulldozers, cranes, backhoes, and loaders. Each listing surfaces availability windows, pricing tiers, and supplier details.

Machinery Sales Marketplace

Beyond rentals, I implemented a separate sales flow allowing users to explore and inquire about new and used equipment available for outright purchase. This required a distinct UX pattern from the rental flow — separate filters, different detail pages, and a dedicated inquiry/lead submission system.

Construction Tools & Materials Ordering

I built a consumables ordering section covering cement bags, hand tools (trowels, wrenches, hammers), and safety equipment such as hard hats. This section operates more like a traditional e-commerce flow compared to the machinery rental side, requiring its own cart logic and order management.

Search, Filter & Discovery

I implemented a flexible search and filter system allowing users to locate equipment by category, size, availability, and supplier. Given the variety of inventory types — heavy iron vs. hand tools vs. materials — the filtering architecture had to be generic enough to work across all verticals without duplicating logic.

Supplier & Vendor Layer

The app connects users with a curated network of reputable equipment providers. I built the supplier profile views and the trust signals surface — ensuring buyers have enough context about a vendor before committing to a rental or purchase inquiry.

Technical Highlights

  • Built entirely in Flutter, targeting both Android and iOS from a single codebase, with the Android release live on the Google Play Store.

  • Implemented a multi-vertical product architecture in Flutter — rental, sales, and consumables each follow different data models and UX flows while sharing a unified navigation shell and design system.

  • Used flutter_bloc (or equivalent state management) to keep business logic decoupled from UI, enabling independent development and testing of each feature vertical.

  • Integrated in-app purchases capability flagged in the Play Store listing, requiring careful handling of purchase flows and entitlement state across sessions.

  • All data is encrypted in transit, with no third-party data sharing — implemented secure API communication aligned with the app's published privacy policy.

  • Designed for a geographically distributed user base (Pakistan, Saudi Arabia, wider GCC region), with content and contact surfaces localized accordingly.

  • Structured the project to support data deletion requests per Play Store policy, requiring backend coordination for account and order data cleanup flows.

Key Decisions

The most significant architectural decision was choosing Flutter as the sole development framework rather than building separate native apps or using React Native. The construction industry audience is split across Android-first markets in South Asia and a growing iOS user base in the GCC region. Flutter gave us a single codebase, a consistent pixel-perfect UI across both platforms, and faster iteration cycles critical for a startup-phase product where requirements evolved frequently. The trade-off was a slightly larger app bundle size, which we considered acceptable given the target demographic's device profiles.

The second major decision was how to model the dual-flow nature of the product rental versus purchase. These are fundamentally different transaction types with different user intents, time horizons, and supplier interactions. Rather than trying to unify them into one generic listing model, I kept them as separate feature modules with their own state, routing, and API contracts. This added some up-front complexity but made each flow much easier to reason about, extend, and hand off to other developers without unexpected cross-contamination of logic.

Finally, integrating consumables and materials alongside heavy machinery was a deliberate product bet that introduced real engineering complexity, a short-order e-commerce flow sitting inside what is otherwise a high-consideration rental marketplace. I chose to implement this as a parallel module with its own cart and checkout state rather than bolting it onto the rental inquiry flow. This kept each experience clean and purposeful, and gave the product team the flexibility to iterate on the consumables vertical independently as the platform matures.