Q-Putaway

Enterprise FMCG Warehouse Management System: Core PHP (7.4–8.x), MySQL/MariaDB, Bootstrap 5, jQuery. It runs on Hostinger shared hosting with no VPS, Node.js, Redis or workers.

Highlights

  • Authoritative inventory ledger: stock is never overwritten. Every movement is recorded and balances reconcile against the ledger.
  • Batch and expiry tracking with FEFO (or FIFO) allocation, shelf-life rules per product and customer, batch blocking/recall and traceability.
  • Full warehouse flow: goods receipt → QC → guided putaway → transfers → orders → FEFO allocation → order/batch/wave/zone picking → packing → dispatch → returns. Also cycle/full/blind counts, adjustments with approval, and replenishment.
  • Scanning: USB/Bluetooth scanners and the phone camera (native BarcodeDetector with ZXing fallback). GS1-128/DataMatrix parsing fills batch, expiry and quantity automatically.
  • Concurrency-safe: InnoDB row locks and idempotency keys. Verified with multi-process race tests.
  • Mobile-first, installable PWA with safe update prompts, and a task-focused worker screen.
  • Admin: roles and permissions (module × action × warehouse), 2FA, Remember Me with token rotation, audit log, PHP-based encrypted backups and restore, Ed25519-signed application updates.
  • Insights: role-aware dashboards, a report catalogue with CSV/XLSX/print export, local demand forecasting, and scheduled email reports through cron.
  • Built-in Help Center (searchable, context-sensitive), plus standalone docs viewable without login at /manual.

Quick start

  1. Upload everything to public_html (there is no public/ folder; the root is the web root).
  2. Create a MySQL database in hPanel and enable SSL.
  3. Open the site. The installer guides you through system checks → database → company → Super Admin.
  4. Add the cron job shown under Administration → Email & Schedules.

Full guide: docs/installation.md.

Documentation

DocumentContents
docs/installation.mdRequirements, Hostinger deployment, cron, hardening
docs/user-guide.mdDay-to-day use by role
docs/help-center.mdHelp Center structure and article index
docs/inventory-and-fefo.mdLedger, stock states, FEFO algorithm
docs/mobile-scanning.mdScanners, camera, GS1, device test plan
docs/barcode-and-printers.mdLabels and printing
docs/csv-import.mdTemplates and the import engine
docs/reports-and-analytics.mdReports, forecasting, schedules
docs/administration.mdUsers, roles, settings, email, audit
docs/security.mdSecurity controls
docs/backup-restore.mdBackups and recovery
docs/application-updates.mdSigned server updates and PWA updates
docs/troubleshooting.mdCommon problems
docs/architecture.mdCode structure and design

Development

php -S 127.0.0.1:8080 tools/dev-router.php
QP_TEST_DB_PORT=3306 php tests/run.php              # unit + integration + security (database must end in _test)
QP_TEST_DB_PORT=3306 php tests/concurrency/race.php # multi-process race tests (needs pcntl)
php tests/http/smoke.php https://your-site admin@example.com 'password'

Status, test results and known limitations: DEVELOPMENT_STATUS.md. Changes: CHANGELOG.md.

Third-party components (all MIT)

Bootstrap 5.3.3, Bootstrap Icons 1.11.3, jQuery 3.7.1, Chart.js 4.4.4, @zxing/library 0.21.3, JsBarcode 3.11.6, qrcode-generator 1.4.4. All are vendored in assets/vendor/.