Skip to content

Project Details

Home/Project Details

SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers
SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers
SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers
SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers
FuelLink's landing page: an AI depot chat transcribing a Hausa voice note beside a live refinery price board

FuelLink

Project description

A fuel market built from the regulator's own numbers

The Challenge

Nigeria's downstream fuel market is asymmetric in both directions. The regulator publishes the numbers that describe it — refinery utilisation, national stock sufficiency, gantry pricing — as monthly PDF fact sheets, so the only authoritative account of the sector is the one nobody reads. And the trades themselves are private: a depot quotes a marketer a price directly, with the counterparty risk carried by whoever moved first.

The one source worth publishing is a monthly PDF on someone else's container, so anything built on it has to survive a source that is authoritative, late and hand-shaped. The market layer cannot be launched whole either — escrow, licensing and settlement each need counterparties that do not exist yet, so a single big-bang build would be a year of unshippable work.

The Solution

Build it in layers, and ship the layer that stands alone. L0 is intelligence: the NMDPRA fact sheets ingested by script, validated against shared schemas and charted on public pages — useful by itself, needing no counterparty, honest about its own provenance. L1 is the exchange: a depot registry, private pricing and escrowed orders between suppliers and independent marketers, built as a separate NestJS service with its own escrow state machine, so the market can be switched on without rebuilding the site above it. Shared zod contracts sit in a third package so the two halves cannot drift apart.

Skills and deliverables

TypeScriptNext.js 16React 19NestJSPrismaPostgreSQLRedisDocker

Features delivered

NMDPRA fact sheets ingested by script, zod-validated, and charted on public pagesEvery dataset carries its own source URL and retrieval timestampExchange surfaces for depots, marketers and administrators, with private pricingA NestJS exchange core: auth and RBAC, depot registry, escrow state machineCI running lint, data verification, typecheck and build, so drift cannot ship

The hard part

Making a monthly PDF into a live product without inventing a single figure. The ingestion script enumerates the regulator's public container, downloads new fact sheets, parses the tables and validates everything against the zod contracts — and each committed dataset carries its own source URL and retrieval timestamp. Being right matters more than being fresh, so when the source changes shape the build fails loudly rather than shipping a number nobody can trace. The same instinct runs the other way round: the sector figures on the landing page are labelled with the month they were published, not presented as today's.

The NMDPRA-derived intelligence overview, charting refinery utilisation and national stock sufficiency
FuelLink on a phone, showing the exchange landing page and the AI depot chat

The Impact

Live and public — the intelligence layer is serving real NMDPRA data, with gantry pricing, state price indices, the Lomé index, a fuel sufficiency radar and LPG and jet A-1 desks, charted from the committed, validated datasets. The exchange app's depot, marketer and admin surfaces are deployed alongside it. The honest boundary, which the repository states plainly: the exchange runs on in-memory mock data with stub auth, and its API is built but not yet wired into the web app — that is Phase 2, and the site does not pretend otherwise.

Contact Me

Let's Talk for Your
Next Projects

0 / 4000

Or email olaleke2004@gmail.com

Where

Based in Lagos, Nigeria
Working with clients worldwide

Contact

Email : olaleke2004@gmail.com

Time

within 24 hours

Stay Connected

SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers
SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers
SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers
SaaS Platforms
Marketplaces
Mobile Apps
AI Integration
Admin Dashboards
API Development
Automation
Takeovers