CAFE
CAFE
What is this for?
With CAFE you run a small point-of-sale / order management system, e.g., for a club café, a festival stand, or a bar:
- Products (beverages, snacks)
- Categories (hot drinks, cold drinks, food, …)
- Tables (multiple parallel orders)
- Orders with quantities and status (open, done, paid)
- End-of-day report
The cashier UI is designed for touch operation: choose a table → tap products → save the order → later mark it as paid/done.
Typical day-to-day actions
- Select / switch tables
- Add products to an order, adjust quantity
- "Place" the order
- In the order view: check off individual line items, mark an order as paid / done
- At the end of the day: view the end-of-day report
In the admin / back office:
- Maintain categories & products
- Adjust prices
Step by step
1) Choose a table (operator workflow)
1. Open /cafe/select-table.
2. Choose a table or enter a new one.
3. You'll land in order mode for that table (/cafe/order).
2) Take an order
1. Tap a product → it's added to the current order (POST /cafe/order/add).
2. Change quantity → POST /cafe/order/qty.
3. Clear the order → POST /cafe/order/clear.
4. Cancel editing → POST /cafe/order/cancel-edit.
5. Save / place the order → POST /cafe/order/place.
3) Manage orders
1. Open Orders (/cafe/orders).
2. You'll see open / completed orders, optionally sorted by table.
3. Actions per order:
- Check off a line item ("item served") →
POST /cafe/orders/toggle-item-checked - Mark order as done →
POST /cafe/orders/toggle-done - Mark order as paid →
POST /cafe/orders/toggle-paid
4. Load updated partial view: GET /cafe/orders/partial (e.g., for screen self-refresh).
4) End-of-day report
/cafe/daily-reportshows revenue, quantities, and the day's distribution.
5) Manage products (admin)
1. Open /cafe/products.
2. "New" → create product (POST /cafe/products/create).
3. Update: POST /cafe/products/{id}/update.
4. Delete: POST /cafe/products/{id}/delete.
Typical fields: name, category, price, optionally display order / visibility.
6) Manage categories (admin)
1. Open /cafe/categories.
2. New: POST /cafe/categories/create.
3. Update: POST /cafe/categories/{id}/update.
4. Delete: POST /cafe/categories/{id}/delete.
> A category can only be deleted when no products reference it anymore.
Frequently asked questions / problems
"I can't place the order"
- Is a table selected?
- Is at least one product in it?
- Check permissions.
"Product doesn't appear"
- Is it set to visible?
- Is it assigned to a category?
- Reload the browser — CAFE relies heavily on cached views.
"End-of-day report doesn't add up"
- Are paid/done statuses set correctly?
- Canceled orders may count differently depending on configuration.
Technical URLs (quick reference)
Operation (/cafe):
GET /cafe/select-table– Choose tablePOST /cafe/select-table– Set table
Order entry (/cafe/order):
GET /cafe/order– Order viewPOST /cafe/order/add– Add line itemPOST /cafe/order/qty– Change quantityPOST /cafe/order/clear– Clear orderPOST /cafe/order/cancel-editPOST /cafe/order/place– Place order
Order list (/cafe/orders):
GET /cafe/ordersGET /cafe/orders/partialPOST /cafe/orders/toggle-donePOST /cafe/orders/toggle-paidPOST /cafe/orders/toggle-item-checked
Products (/cafe/products):
GET /cafe/productsPOST /cafe/products/createPOST /cafe/products/{id}/updatePOST /cafe/products/{id}/delete
Categories (/cafe/categories):
GET /cafe/categoriesPOST /cafe/categories/createPOST /cafe/categories/{id}/updatePOST /cafe/categories/{id}/delete
End-of-day report:
GET /cafe/daily-report
Notes
- CAFE is optimized for simple, fast operation. It is not a replacement for full-featured point-of-sale software (e.g., tax interface, KassenSichV).
- Recommended: each shift starts with a clean table and order state and ends with the end-of-day report.