Cube Line Procurement and supplier management for Cube Line: RFQs, a supplier portal, bid comparison and purchase orders
The full procurement cycle from RFQ to invoice, where the supplier never learns who the customer is.
- 137
- Cloud Functions in production
- 1733
- tests, zero failures
- 28
- screens
- 19
- permissions on 4 roles
The problem
RFQs arrive as PDFs, photos and spreadsheets. The team retyped them by hand, messaged suppliers one by one and compared bids in Excel.
Overview
I built and delivered this system for a Jeddah supplies company. It has run on their own domain, crm.cubeline.sa, since 15 September 2026, in Arabic and English. It covers the cycle from receiving an RFQ to inviting suppliers, comparing bids, issuing the PO, receiving goods and recording the invoice. Two months from first commit to launch.
What I built
- Paste from Excel or upload a PDF or photo; AI extracts line items with a confidence score each and a mandatory human review
- Automatic supplier routing by category then city across 29 cities, with WhatsApp and email invitations
- A supplier portal via private link with no login, and bid approval by OTP in the name of an authorised person
- A comparison board that marks the cheapest bid, suggests split awards and shows each item’s price history
- Purchase-order PDFs with Arabic typography and 8-sheet Excel reports
- Vertex AI called through the service identity with no API keys, plus daily backups with 7-day point-in-time recovery
The engineering call
The governing rule: the supplier never learns who the customer is. A server-side guard checks every outgoing text against 6 identifiers and names the word it rejected. I also learned that a successful deploy command proves nothing; it can report success while shipping the old image, so deploys now go by digest and the only proof is checking the deployed bundle itself.