**PHP 8 + SQLite 3 retail accounting and POS system** designed for small and medium businesses.
68
A complete, QuickBooks-style Retail Accounting, Point of Sale (POS), and Inventory Management software built for small and medium retail businesses using native PHP 8, JavaScript, Bootstrap 5, and SQLite 3.
Featuring Double-Entry General Ledger, Role-Based Access Control (RBAC), Ghanaian Cedi (₵) native currency, Mailgun Daily Financial Email Digests, and Paystack Online Payments (Card & Mobile Money).
journal_entries).100vh): Eliminates outer browser scrolling and pinned checkout area to ensure fast retail throughput.Exact, ₵20, ₵50, ₵100), and automatic change calculation.window.print()).owner): Unrestricted master access to all retail modules, capital injections, business loans, bank accounts, complete P&L statements, Mailgun/Paystack API settings, and Factory Reset.manager): Operational access limited to POS register, Stock-In purchases, sales records, bills/expenses, debtor accounts, and supplier creditors. Restricted from capital, loan books, P&L reports, and settings.cron_daily_report.php ready for Windows Task Scheduler or Linux Cron.GHS / ₵): Handles automated conversion between Cedis and subunits (pesewas).RESET to prevent accidental erasure.┌────────────────────────────────────────────────────────────────────────┐
│ QuickRetail Store Books │
└────────────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌───────────────────┐ ┌──────────────────┐
│ POS Register │ (Deducts Stock) │ Purchases (Stock)│ (Adds Stock)
│ Fast Barcode/SKU │────────────────────────►│ Supplier Bills │──────────────┐
│ Cash/Card/MoMo │ (Records Sales & COGS) │ Cash/Bank/Credit │ │
└───────────────────┘ └──────────────────┘ │
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────────────────────┐ │
│ Double-Entry Accounting Engine │◄─────┘
│ (includes/Accounting.php) │
│ - Sales Revenue (4010) - Cost of Goods Sold (5010) │
│ - Inventory Asset (1040) - Operating Expenses (6000s) │
│ - Cash & Bank (1010/1020) - Customer Debtors (1030) │
│ - Supplier Creditors (2010) - Loans & Capital (2020/3010) │
└────────────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌──────────────────────────────────────┐ ┌─────────────────────────────┐
│ Financial Statements │ │ Integrations Engine │
│ 1. Profit & Loss Statement (P&L) │ │ - Mailgun Daily Digest │
│ 2. Balance Sheet (A = L + E) │ │ - Paystack Card/MoMo POS │
│ 3. General Ledger Audit Trail │ │ - Factory Reset Control │
└──────────────────────────────────────┘ └─────────────────────────────┘
pdo_sqlite extension enabled). Zero-configuration, file-based database stored in data/bookkeeping.db.curl extension for Mailgun & Paystack REST APIs.Place Project in XAMPP htdocs:
Copy or clone the book folder into your XAMPP web root directory:
C:\xampp\htdocs\book (or E:\xampp\htdocs\book)
Verify PHP Extensions in php.ini:
Ensure the following extensions are enabled in your php.ini file (remove the leading ; if present):
extension=pdo_sqlite
extension=sqlite3
extension=curl
extension=mbstring
Start Apache: Open XAMPP Control Panel and click Start on Apache.
Open in Browser: Navigate to:
http://localhost/book/
The database and tables will automatically initialize on the very first run!
Open your terminal (PowerShell, Command Prompt, or Bash) in the project directory:
cd e:\xampp\htdocs\book
Start the built-in development server:
php -S 127.0.0.1:8000
Open your browser and go to:
http://127.0.0.1:8000/
Ensure Docker Desktop (or Docker Engine + Compose) is installed and running.
In the project root directory, build and launch the container in detached mode:
docker compose up -d --build
Open your browser and navigate to:
http://localhost:8000/
Persistent Data:
The SQLite database (bookkeeping.db) and execution logs (cron.log) are mounted to ./data on your host machine, ensuring your financial records persist safely across container rebuilds.
To view container status and logs:
docker compose ps
docker compose logs -f
To stop the container:
docker compose down
| Role | Username | Password | Access Level |
|---|---|---|---|
| Store Owner | owner | owner123 | Full Master Access: Capital & Loans, P&L Reports, Balance Sheet, Mailgun/Paystack Settings, Factory Reset, and POS. |
| Store Manager | manager | manager123 | Operations Only: POS Register, Purchases (Stock-In), Sales & Invoices, Bills & Expenses, Debtors, Creditors, Products. |
Tip: The login page (
login.php) includes 1-Click Demo Quick-Fill Buttons to log in instantly without typing.
owner / owner123).mg.yourdomain.com or sandboxXXXXX.mailgun.org.key-xxxxxxxx or API sending key.US (api.mailgun.net) or EU (api.eu.mailgun.net).To automatically dispatch the report every night at 9:00 PM (21:00):
0 21 * * * /usr/bin/php /var/www/html/book/cron_daily_report.php >/dev/null 2>&1
Start a programphp.exee:\xampp\htdocs\book\cron_daily_report.php21:00.Logs are recorded in data/cron.log.
pk_test_... or pk_live_...sk_test_... or sk_live_...GHS (Ghanaian Cedi).RESET in the confirmation box and click "Reset Database".book/
├── assets/
│ └── css/
│ └── style.css # Custom styling & POS 100vh cockpit layout
├── config/
│ └── db.php # SQLite connection, auto-migrations & seeders
├── data/
│ ├── bookkeeping.db # SQLite persistent database file
│ └── cron.log # Nightly report dispatch execution logs
├── includes/
│ ├── Accounting.php # Core double-entry ledger & COGS engine
│ ├── Auth.php # Session authentication & RBAC guards
│ ├── footer.php # Global footer & modal templates
│ ├── header.php # Global navigation, badges & RBAC sidebar
│ ├── MailgunService.php # Mailgun REST API & HTML digest builder
│ └── PaystackService.php # Paystack REST API & verification
├── api.php # AJAX backend (checkout, search, payments)
├── capital_loans.php # Owner capital, loans & repayment splitting
├── cron_daily_report.php # CLI/Cron automated daily email dispatcher
├── customers.php # Customer debtor accounts & payment receipts
├── expenses.php # Operating expenses categorization & logs
├── index.php # Executive financial dashboard & KPI charts
├── login.php # Login page with 1-click demo buttons
├── logout.php # Session logout handler
├── pos.php # POS cashier workstation & thermal receipt
├── products.php # Price list, wholesale cost & inventory
├── purchases.php # Purchases & supplier stock-in bills
├── reports.php # P&L Statement, Balance Sheet & Ledger
├── sales.php # Sales invoice history & margin analytics
├── settings.php # Owner Integrations (Mailgun, Paystack, Reset)
├── suppliers.php # Supplier creditor accounts & vouchers
├── .dockerignore # Files ignored by Docker build context
├── Dockerfile # Container definition (PHP 8.2 + Apache + SQLite)
├── docker-compose.yml # Container orchestration & port/volume mappings
├── LICENSE # MIT License
└── README.md # Complete system documentation
This software is released under the MIT License. You are free to use, modify, distribute, and integrate it for personal or commercial projects.
Content type
Image
Digest
sha256:afec5d02c…
Size
183 MB
Last updated
28 days ago
docker pull iquipe/quickretail