Why ProcureHub
What makes it better
than the alternatives
- 01
Three-way invoice matching
Invoices are checked against the purchase order price (2% tolerance) and the received quantity; mismatches become exceptions that need approval before payment.
- 02
Bilingual English/Arabic with full RTL support
Every screen, email and PDF works in both languages; users switch in the top bar and the system remembers their choice.
- 03
Approval workflows with delegation
Approval steps depend on the document type and amount (line manager → procurement head → finance → CFO); approvers set limits and delegate while away, and a decision can be undone until the document moves on.
- 04
Supplier portal with sealed bids
Vendors get their own login to view RFQs, submit sealed bids (hidden until the deadline), acknowledge purchase orders and submit invoices; companies review self-registered suppliers before granting access.
- 05
ProcureAI assistant
Answers questions about spend trends, budget status, contract expiry, vendor performance, late deliveries and approval queues by matching intent and querying the database; supports English and Arabic questions.
Requisitions
- Create purchase requests from the catalog or as free text
- attach quotes
- comment and submit for approval
- Approval steps depend on the amount (line manager → procurement head → finance → CFO)
- Requesters see only their own requests; procurement team sees all
- Export to CSV
Approvals
- One queue for requests
- orders
- invoice exceptions and contracts
- Approvers can have limits and delegate while away
- A decision can be undone until the document moves on
- Optional reject reason (configurable in settings)
Budgets
- Budgets per cost centre track spent and committed money
- A request that would go over its budget is blocked (configurable)
- Budgets can be moved or increased
- with a history of every change
- Monthly chart and forecast per cost centre
- Low-stock and over-budget alerts
RFQs (Sourcing)
- Invite vendors (or outside emails) to an RFQ
- Collect sealed bids in the supplier portal (hidden until the deadline)
- Compare bids side by side and award the RFQ
- Bilingual RFQ invitations and delivery terms
Purchase Orders
- Create POs from approved requests or awarded RFQs
- Revisions and amendments keep their history
- Each PO goes to the vendor as a PDF by email
- Bilingual purchase order PDFs (English and Arabic)
Goods Receipt
- Record full or partial deliveries against purchase orders
- Keep stock up to date
- Return goods to the vendor
- Quality check required for IT equipment
- Photo uploads for deliveries
Invoices
- Three-way match against the order price (2% tolerance) and the received quantity
- Mismatches become exceptions that need approval
- Invoices can be put on hold
- rejected or approved
- Upload invoices as PDFs or images
Payments
- Group approved invoices into payment runs
- Take early-payment discounts
- Generate bank files (MT101
- PAIN.001
- WPS CSV)
- A second person must release each run
- Payment history and export
Vendors
- Vendor profiles
- contacts
- documents with expiry dates
- Performance tracking
- Bank changes
- Invitations and review of self-registered suppliers
- Supplier portal for bids
- orders and invoices
Contracts
- Contracts with clauses
- obligations
- renewal reminders
- Event history
- Spend alerts when a contract reaches 80% of its value
- Renewal workflow: draft a copy for the next period
Catalog & Inventory
- Buying catalog with contract prices
- Inventory has stock counts
- movements
- low-stock alerts
- One-click reorder requests from inventory
- Stock value and location tracking
Reports & Analytics
- Spend dashboard with KPIs
- pipeline
- spend chart
- budgets by department
- spend by category
- Ready-made reports (spend by vendor
- category
- department
- month)
- Report builder with saved reports
- CSV exports
- ProcureAI insights cards on the dashboard
ProcureAI Assistant
- Answers questions about spend
- budgets
- contracts
- deliveries and approvals
- Supports English and Arabic questions
- Intent matching and database queries (no external AI API)
- Recent conversations and quick question chips
Settings & Admin
- Company profile
- departments
- cost centres
- locations
- Staff accounts with role-based access (admin
- buyer
- finance
- stores
- requester)
- Approval rules (amount thresholds
- approver limits)
- Budget rules (block over-budget
- warn at 85%
- allow budget moves)
- Email settings (SMTP
- sender address
- test email)
- Audit trail (every action
- filterable by area
- period
- user
- record)
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| PHP | — | — | Web, API | 83.4% |
| CSS | — | — | Styling | 5.9% |
| SQL | — | — | Database | 4.4% |
| HTML | — | — | Front-end | 4.2% |
| JavaScript | — | — | Front-end | 1.8% |
| Shell | — | — | Scripts | 0.1% |
| PowerShell | — | — | Scripts | 0.1% |
- Primary language
- PHP 8.2
- Framework
- Laravel 12
- Database
- MySQL 8.0 / MariaDB 10.4
- Authentication
- Laravel session-based authentication with password reset
- Licence
- Single-site
- Screens
- 45
- Database tables
- 43
- Supported languages
- English, Arabic (full RTL support)
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge)
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB RAM | 8 GB RAM |
| OS | Ubuntu 22.04+ / Debian 11+, PHP 8.2+, MySQL 8.0+ / MariaDB 10.4+ | Ubuntu 22.04+ / Debian 11+, PHP 8.2+, MySQL 8.0+ / MariaDB 10.4+ |
| Est. monthly hosting | $25 | $25 |
```bash export PROCUREHUB_DB_PASSWORD="$(openssl rand -base64 24)" export PROCUREHUB_DB_ROOT_PASSWORD="$(openssl rand -base64 24)" docker-compose up -d docker-compose exec app php artisan migrate --seed docker-compose exec app php artisan procurehub:admin you@example.com "Your Name" # Open http://localhost:8000 ```
```bash
sudo apt update && sudo apt install -y php8.2 php8.2-{cli,fpm,mysql,mbstring,xml,curl,zip,gd,intl,bcmath} mysql-server nginx composer
sudo mysql -e "CREATE DATABASE procurehubdb; CREATE USER 'procurehub'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD'; GRANT ALL ON procurehubdb.* TO 'procurehub'@'localhost'; FLUSH PRIVILEGES;"
cd /var/www && sudo git clone YOUR_REPO procurehub && cd procurehub
sudo chown -R www-data:www-data storage bootstrap/cache
cp .env.example .env
# Edit .env: set APP_URL, DB_PASSWORD, MAIL_* settings
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan migrate --seed --force
php artisan procurehub:admin you@example.com "Your Name"
# Configure Nginx to serve public/ and restart: sudo systemctl restart nginx php8.2-fpm
``````bash # Upload the zip, extract to public_html/procurehub # Create a MySQL database and user in cPanel # Copy .env.example to .env and edit: APP_URL, DB_*, MAIL_* php artisan key:generate php artisan migrate --seed --force php artisan procurehub:admin you@example.com "Your Name" # Point the domain to public/ in cPanel ```
```bash composer install cp .env.example .env php artisan key:generate # Edit .env: set DB_DATABASE=procurehubdb, DB_USERNAME=root, DB_PASSWORD= (empty for local) php artisan migrate --seed php artisan serve # Open http://127.0.0.1:8000, demo admin: aisha.rahman@company.ae / password ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
What to know before you buy
3 non-blocking findings shown publicly: no real secrets found; weak defaults in demo config need hardening for production; strong authentication and role checks; minor ownership gaps on read endpoints; good module structure with some duplication and oversized service classes. The seller has been notified; fixes ship in the next version.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.