Every purchase, from request to payment, in one place.
ProcureFlow handles the whole procurement lifecycle: requisitions, rule-based approvals, RFQs, purchase orders, goods receipt, three-way invoice matching and payment. Each of the nine roles works from its own queue, with an audit trail at every step.

Eight steps, nine roles
Approval routing comes from database rules (department, category and amount), so the chain changes without code changes. Final approval generates the purchase order.
Requester adds line items and sees the approval path before submitting.
Approve, reject or return with remarks, all recorded in history.
RFQ bidding rounds, quotation comparison and PO award.
Vendors confirm and dispatch from their own portal.
Warehouse logs GRNs and verifies full or partial deliveries.
Three-way match of PO, GRN and invoice, with variances flagged.
Finance authorises release and tracks budget against spend.
The PO closes and the full trail stays in the audit log.
Screens
A token-based design system with light and dark themes, a collapsible sidebar, a shared data table and layouts that work down to phone width.








Tech stack
A REST API secured with JWT, consumed by a single-page React app.
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, React Router 7, Axios, lucide-react, CSS design tokens |
| Backend | Java 21, Spring Boot 3.5: Web, Data JPA, Security, Validation |
| Auth | JWT (jjwt), BCrypt, role-based access control |
| Database | PostgreSQL with SQL schema and seed scripts |
| API docs | springdoc OpenAPI / Swagger UI |
Limitations
- Sample data. The RFQ, quotation, vendor, warehouse, invoice-matching and ticket screens partly use built-in sample data while their endpoints are completed.
- Polling. Notifications refresh every 30 seconds; there is no push channel.
- Tests. There is no automated end-to-end test suite yet.