Overview
Overview is the bakery-specific home screen — replacing the generic Dashboard for this variant — that pulls together today's cake orders, pre-orders, production runs, delivery slots, expiring batches and wastage into one screen built around a bakery's daily rhythm.
Overview
Overview is mounted at /bakery/dashboard and is a completely separate component from the generic pos-app Dashboard. It loads eleven data sources in parallel (pre-orders, production runs, delivery slots, standing orders, expiry summary, monthly wastage, today's cake orders, today's sales revenue, the bake plan, and upcoming festivals) using Promise.allSettled, so if any single endpoint fails the rest of the screen still renders normally.
A Quick Actions row across the top lets you jump straight into the six tasks a bakery does most often in a day, and a set of alert banners appears only when something actually needs attention today — the screen stays clean and short on a quiet day.
Below the alerts, six KPI cards, two clickable stat tiles (Expiry Monitor and This Month's Wastage), a Today's Bake List panel, a Delivery Slots panel, three side-by-side order/production lists, an Upcoming Festivals panel and an Expiring Batches panel are all shown or hidden individually depending on whether there is anything to show in each.
Before You Start
- You must be logged into the bakery app — Overview loads automatically as this variant's home screen.
- The Today's Bake List panel only appears once
/bakery/production/bake-planreturns at least one item; it is completely hidden on a day with nothing scheduled. - The Today's Delivery Slots panel only appears if delivery slots exist for today (created via the Delivery Slots feature, which itself requires the Advanced plan tier).
- The Upcoming Festivals and Standing Orders Due panels only appear when there is at least one matching record for the relevant window.
Step-by-Step Guide
1 Read today's numbers at a glance
- Look at the six KPI cards in the top row: Today's Revenue, Cake Orders Today, Pre-Orders Today, Production Today, Expiry Alert, and Balance Pending.
- Click any card to jump straight to the page it summarises — Reports, Cake Orders, Pre-Orders, Production Schedule, or Expiry Monitor.
- A red Expiry Alert value or a non-zero Balance Pending value means something needs attention today.
2 Act on the alert banners
- A pink banner appears when one or more cake orders are ready for collection today — click View to open Cake Orders.
- A green banner appears when one or more pre-orders are ready for pickup today — click View to open Pre-Orders.
- An amber banner appears when one or more production batches are expiring within 3 days — click View to open Production Schedule.
- A blue banner appears when one or more standing orders are due today — click View to open Standing Orders.
- A violet banner appears when one or more festival events fall within the next 7 days — click View to open Festival Orders.
3 Use Quick Actions to jump into a task
- Click New Cake Order to open Cake Orders and start a new custom order.
- Click Schedule Production to open Production Schedule and add a new run.
- Click New Pre-Order to open the Pre-Orders page.
- Click Log Wastage to open Wastage Log and record a write-off.
- Click Seasonal Pricing to open the seasonal pricing rules page.
- Click New Standing Order to open Standing Orders and set up a recurring customer order.
4 Follow Today's Bake List
This panel combines demand from today's Cake Orders and any Standing Orders due today into one production shopping list, so you know exactly what and how much to bake before checking each order individually.
- Each line shows a product name, the total quantity needed across every contributing order, and up to three small source tags (e.g. a customer name and delivery slot for a cake order, or "Standing × N" for a standing order).
- Click View all in the panel header to open the full Production Schedule page.
5 Check delivery slot capacity
- Three cards — Morning (9am–12pm), Afternoon (12pm–4pm) and Evening (4pm–8pm) — each show how many pre-orders are booked against that slot's capacity.
- A thin progress bar fills green, then amber past 70%, and a red FULL badge appears once bookings reach capacity.
- Click View all to open the Delivery Slots page and adjust capacities or bookings.
6 Review Cake Orders, Pre-Orders and Production side-by-side
- Three columns list up to 6 items each: today's Cake Orders (with customer, cake type/size, delivery slot, amount and any balance due), today's Pre-Orders (order number, status badge, customer, flavour/size, amount and balance), and today's Production runs (recipe name, status badge, quantity, scheduled time, assigned staff and expiry date if set).
- Each column shows its own empty state when there is nothing for today, and a "+N more" link once there are more than 6 items, which opens the full page for that list.
7 Watch Upcoming Festivals and Expiring Batches
- The Upcoming Festivals panel (next 7 days) shows each festival's date, order-by cutoff date if set, and a "Today! / Tomorrow / In N days" countdown.
- The Expiring Batches panel (within 3 days) shows each batch's recipe name and quantity, styled in red once only 0–1 day remains and amber otherwise.
8 Check Standing Orders Due Today
- Each row lists the customer, their delivery frequency, the exact items and quantities on their standing order, and the total amount.
- Click View all to open the Standing Orders page and process or adjust today's deliveries.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Today's Revenue | Total of today's completed POS sales, pulled from the same daily sales report used elsewhere in BazaarPOS. |
Cake Orders Today | Count of active (non-cancelled) cake orders due today, with a "N ready" or "None ready yet" sub-label. |
Pre-Orders Today | Count of pre-orders scheduled for delivery today, with a "N ready" or "None ready yet" sub-label. |
Production Today | Count of production runs scheduled for today, with the number currently active (not Done/Cancelled) underneath. |
Expiry Alert | Sum of already-expired and expiring-today batches; turns red once greater than zero. |
Balance Pending | Sum of unpaid balanceDue across today's pre-orders, with the count of orders that still owe money underneath. |
Expiry Monitor tile | Large red-themed clickable tile repeating the Expiry Alert count with a "batches expired or expiring today" caption; opens Expiry Monitor. |
This Month's Wastage tile | Large amber-themed clickable tile showing the current month's total wastage write-off cost; opens Wastage Log. |
Today's Bake List | Aggregated production demand from today's Cake Orders and any Standing Orders due today, one row per product needed, only shown when at least one item is needed. |
Today's Delivery Slots | Morning/Afternoon/Evening capacity cards with a booked-vs-capacity progress bar and FULL badge; only shown when slots exist for today. |
Cake Orders Today panel | Up to 6 of today's cake orders with customer, cake type/size, delivery slot, amount and balance due; "+N more" link to the full Cake Orders page. |
Pre-Orders Today panel | Up to 6 of today's pre-orders with order number, status, customer, flavour/size, amount and balance due. |
Production Schedule panel | Up to 6 of today's production runs with recipe name, status, quantity, scheduled time, assigned staff and expiry date. |
Upcoming Festivals panel | Festival events falling within the next 7 days, each with its date, order-by cutoff and a days-until countdown; only shown when at least one exists. |
Expiring Batches panel | Production batches expiring within 3 days, styled red when 0–1 day remains; only shown when at least one exists. |
Standing Orders Due Today panel | Standing orders whose next run date is today or earlier, showing customer, frequency, items and total; only shown when at least one exists. |
Quick Actions row | One-tap shortcuts: New Cake Order, Schedule Production, New Pre-Order, Log Wastage, Seasonal Pricing, New Standing Order. |
Alert banners | Up to five conditional banners (cake orders ready, pre-orders ready, batches expiring soon, standing orders due, festivals upcoming), each with its own View link and only rendered when its count is greater than zero. |
Tips & Best Practices
- Treat the alert banners as your morning priority list — they only ever show what genuinely needs action today, in the order they matter most for a bakery.
- Keep Delivery Slot capacities realistic; the Morning/Afternoon/Evening progress bars and FULL badges are only useful if the capacity number reflects what your kitchen can actually produce in that window.
- Check Today's Bake List before checking individual Cake Orders or Standing Orders one by one — it already combines both sources into a single shopping/production list for the day.
- If the Expiry Monitor tile is consistently red, review Shelf Life Days on your recipes (Recipes page) — accurate shelf life is what keeps expiry dates on production batches meaningful.
Troubleshooting & FAQ
Why don't the Cake Orders / Pre-Orders / Production panels show any items?
Today's Bake List section is missing entirely.
The Delivery Slots section doesn't appear at all.
Today's Revenue looks different from what Cake Orders and Pre-Orders totals suggest.
🧑💻 Developer Notes
Source component(s):
frontend-app/pos-app-backery/src/pages/bakery/BakeryDashboardPage.jsx
Backend endpoints used:
GET /preorderGET /bakery/productionGET /bakery/slotsGET /bakery/standing-ordersGET /bakery/expiry-monitorGET /bakery/wastageGET /bakery/cake-ordersGET /reports/sales/dailyGET /bakery/production/bake-planGET /bakery/festivals
Related tables (db-core repositories):
PreOrderProductionRunDeliverySlotStandingOrderStockBatchBakeryWastageCakeOrderSaleBakeryFestival
Redux slices:
None — plain local component state (useState/useCallback); no Redux slice is read directly
Feature flag key: billing
A local, bakery-only component (not shared via pos-react-lib) that replaces the generic Dashboard for this variant. All eleven data calls are fetched with Promise.allSettled rather than Promise.all, so a single failing endpoint (e.g. festivals not yet configured) never prevents the rest of the screen — including the KPI row — from rendering.