Kiosk mode: function with no connection
The kiosk mode should function when there is no connection.
- When online, function as normal
- Locally store cache of app/UI
- Locally store cache of users and products
- Locally store uncommitted transaction until back online
When connection is lost, a user should still be able to:
- Use the kiosk interface
- Search products (basic)
- Search users (basic)
- Place oders
To prevent duplicate transactions, we may assign an unique ID to each uncommitted transaction to identify them.
Tasks
-
Basic workbox offline configuration -
Set up basic cache routes for kiosk network requests -
Update cache limits -
Make /
redirect to/kiosk
-
Make other unknown requests route to(not possible right now)/kiosk
-
Warm cache for common URLs ( /
,/kiosk
) -
Warm cache for all users/products -
On search, fall back to all user/product cache -
How are buy requests cached? -
Show buy request queue counter? -
Separate service worker for kiosk mode -
Show nice offline banner in kiosk (msg: offline, transactions delayed) -
Try to drain queue on connection -
Retry to drain queue after a while on failure (too many requests)(not required, interface reloads after 15 minutes) -
Remove(#636)alert()
on failure, show banner instead -
Disable CSRF on buy endpoint?(probably not required) -
Disable rate limiting on buy endpoint? (not disabled, but increased) -
Make sure kiosk auto-reload doesn't break offline mode/cache -
Add UUID to transaction -
Validate UUID uniqueness(#637 (closed))
Edited by Tim Visée