Overview

POS is a point-of-sale and light ERP system for retail shops: accounts, customers, suppliers, purchases, quotations, invoicing, returns, tax, HRM/payroll and reporting. It's built on CodeIgniter 3.1.3 with the Wiredesignz Modular Extensions (MX) HMVC add-on — not Laravel, despite how the codebase was originally described when it was purchased.

Planned direction: integration with in-store hardware (receipt printers, barcode scanners, cash drawers, card readers). No hardware integration code exists yet.

Stack

LayerTechnology
FrameworkCodeIgniter 3.1.3 + Wiredesignz Modular Extensions (HMVC)
BackendPHP 8.3 (mbstring, mysqli, gd, zip, curl extensions)
DatabaseMySQL
PDF generationdompdf/dompdf (the only Composer dependency)
Web serverApache / LiteSpeed with mod_rewrite
Frontend assetsServed as-is from assets/ and my-assets/ — no Node/npm build step

Local Setup

composer install

Then create a MySQL database, set real credentials in application/config/database.php, and import database/schema.sql for the base schema plus required seed data (roles, settings, chart of accounts, a default admin login). Serve the repo root with PHP/Apache — the default route is dashboard/auth (login).

There's no setup wizard — it shipped with an Envato/BDTask license-check system that phoned home and self-modified its own source file. That system, and the installer nag screen it triggered, have both been fully removed. application/config/database.php is left as a blank placeholder and gitignored — never commit real credentials there.

Deployment

Deployed via GitHub Actions to its production host on Hostinger shared hosting: on every push to main, CI lints all PHP files and validates Composer, then — if that passes — rsyncs the app to the server over SSH and runs composer install plus cache-clearing on the server itself.

# CI pipeline, on push to main:
# 1. php -l across all PHP files
# 2. composer validate
# 3. rsync to server over SSH (excludes: config/database.php, uploads/)
# 4. composer install + cache clear on the server

application/config/database.php and uploads/ are excluded from the sync so a deploy never overwrites live server state. database/schema.sql is applied by hand once, not on every deploy.

Security Notes

The purchased codebase snapshot included several files removed as not belonging in version control or production:

  • install/ — the one-time setup wizard
  • Envato/BDTask license-check code — a Lic class disguised as a CodeIgniter core compat file, called from a patched core bootstrap on every request, which phoned home to a third-party server with a purchase key and could rewrite its own source file
  • application/controllers/Installer.php and its views — the installer nag screen, orphaned once install/ was removed
  • A stray test.php that dumped phpinfo() — never deployed publicly

Status & Roadmap

POS is functional today and runs a real, automated production deployment. It is not yet packaged as a self-serve licensable product — hardware integration and standalone onboarding/licensing are both on the roadmap but not built. See the product page for a summary, or contact us to be notified when it's ready.

Have a technical question?

Reach out and we'll answer directly, or update this page.