Stack, local setup, module map, and the deployment pipeline it actually runs on.
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.
| Layer | Technology |
|---|---|
| Framework | CodeIgniter 3.1.3 + Wiredesignz Modular Extensions (HMVC) |
| Backend | PHP 8.3 (mbstring, mysqli, gd, zip, curl extensions) |
| Database | MySQL |
| PDF generation | dompdf/dompdf (the only Composer dependency) |
| Web server | Apache / LiteSpeed with mod_rewrite |
| Frontend assets | Served as-is from assets/ and my-assets/ — no Node/npm build step |
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.
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.
The purchased codebase snapshot included several files removed as not belonging in version control or production:
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 fileinstall/ was removedtest.php that dumped phpinfo() — never deployed publiclyPOS 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.
Reach out and we'll answer directly, or update this page.