feat: banner alerts, consumption predictions, scale improvements, kiosk app
- Banner notification system: suspicious quantities + consumption prediction alerts - Consumption predictions API: tracks 90-day usage patterns, flags >30% deviations - Scale stability timeout: 5s → 10s, auto-confirm remains 5s - Scale integration in edit form: weigh button with inline live display - Banner edit/weigh actions open edit form directly with scale activation - Cooking mode: Italian aliases + stem-prefix matching for ingredients - Recipe regeneration: tracks rejected ingredients for diversity - Settings migration: localStorage → .env server-side storage - Expiry priority: mandatory ≤3 days, recommended ≤7 days in recipes - Scale bug fixes: clear stale weight, double-submit guard, cap deduction - Android kiosk app (evershelf-kiosk): WebView + embedded BLE scale gateway - Version bump to 1.4.0
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# EverShelf Kiosk
|
||||
|
||||
Android kiosk app that displays the EverShelf web interface in full-screen mode while running the Smart Scale BLE Gateway as a background service.
|
||||
|
||||
## Features
|
||||
|
||||
- **Full-screen WebView** — displays EverShelf in immersive kiosk mode (no status bar, no navigation)
|
||||
- **Built-in Scale Gateway** — BLE connection to smart scales with WebSocket server on port 8765
|
||||
- **Auto-reconnect** — automatically reconnects to the last connected scale
|
||||
- **Foreground service** — gateway runs even when the screen is off
|
||||
- **Camera pass-through** — allows barcode scanning from within the WebView
|
||||
- **Error recovery** — shows retry page when the server is unreachable
|
||||
|
||||
## Setup
|
||||
|
||||
1. Install the APK on your Android tablet/phone
|
||||
2. On first launch, grant Bluetooth and Location permissions
|
||||
3. Tap the subtle ⚙️ icon in the top-right corner to configure the EverShelf server URL
|
||||
4. In EverShelf settings, set the Scale Gateway URL to `ws://localhost:8765`
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
KioskActivity (WebView — full-screen EverShelf)
|
||||
↕ binds to
|
||||
ScaleGatewayService (foreground service)
|
||||
├── BleScaleManager (BLE scanning + connection)
|
||||
│ └── ScaleProtocol (multi-protocol weight parser)
|
||||
└── GatewayWebSocketServer (port 8765)
|
||||
↕ WebSocket
|
||||
WebView (EverShelf JavaScript connects to ws://localhost:8765)
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
```bash
|
||||
cd evershelf-kiosk
|
||||
./gradlew assembleDebug
|
||||
# APK at app/build/outputs/apk/debug/app-debug.apk
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
- Android 7.0+ (API 24)
|
||||
- Bluetooth Low Energy support
|
||||
- Network access to EverShelf server
|
||||
Reference in New Issue
Block a user