6c42f181868aa648b5bd9e67e6918809a15b17a7
Deploy Ladill POS / deploy (push) Successful in 1m22s
Replace the kitchen display's 4s polling with a pushed feed. GET /kitchen/stream holds an SSE connection and emits the board the moment it changes (~1s tick, heartbeat between changes), so fired/bumped/guest orders land on screen near instantly. Bounded to ~25s per connection so PHP-FPM workers recycle — the browser's EventSource reconnects automatically; if EventSource is unavailable it falls back to polling /kitchen/feed. Sends X-Accel-Buffering: no so nginx streams it, and releases the session early (DB sessions don't lock, but be safe). feed()/stream() now share buildTickets(); behaviour of the JSON feed (initial load + fallback) is unchanged. Suite green (12). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ladill POS
In-store register at pos.ladill.com — product grid, cart, cash or Ladill Pay checkout.
Features (v1)
- Register — catalog + quick-amount sales
- Products — local catalog CRUD
- Sales — history and receipt view
- Ladill Pay — MoMo/card via
source_service: pos,fee_tier: sales
Local dev
cp .env.example .env
composer install
php artisan key:generate
touch database/database.sqlite
# set DB_CONNECTION=sqlite in .env
php artisan migrate
npm install && npm run build
php artisan serve
Tests
php artisan test
Deploy
See DEPLOY.md.
Roadmap
- CRM timeline + product import
- Invoice receipt prefill
- Merchant catalog import
Languages
PHP
57.7%
Blade
36.9%
JavaScript
3.2%
Shell
1.6%
CSS
0.6%