Section 1
Overview
Restaurant Desk is a workspace extension for restaurant teams. It brings together point-of-sale billing, kitchen and waiter workflow, customer balances, inventory tracking, and daily or monthly reports — all tied to your platform workspace.
Each restaurant runs in its own workspace with its own members, roles, theme colors, and language defaults. Staff sign in with their platform account; permissions control what each person can see and do.
Main areas of the app
- Dashboard — today's billing totals at a glance
- POS — token ordering, tables, kitchen, waiter, and billing
- Customers — contacts, balances, and bill history
- Inventory — stock items, suppliers, and quantities
- Reports — daily, monthly, token history, and billing history
- Roles & members — permissions and team access (admins only)
Section 2
Getting started
-
Open Restaurant Desk
Visit your Restaurant Desk URL (for example http://127.0.0.1:3008/). If you are not signed in, you will see the welcome page with an overview of features.
-
Sign in
Click Sign in. You are redirected to the central platform login. Use the same email and password as your workspace account.
-
Select your workspace
After authentication you return to Restaurant Desk. If you belong to multiple workspaces, open the profile menu (top right) and switch to the correct restaurant workspace.
-
Explore navigation
The main navigation bar shows only the sections your role allows — Dashboard, POS, Customers, Inventory, Reports, and optionally Roles & members.
Platform home
From the welcome page you can also go to Platform home to manage workspaces, billing, or invite new members from the central NNBP dashboard.
Section 3
Local database mode
Local DB mode keeps restaurant operational data in your browser using IndexedDB instead of the application server. Sign-in, roles, members, workspace themes, and API quotas still use the platform — customers, inventory, bills, food tokens, tables, presets, and activity logs are stored locally.
Storage modes
- Cloud — records saved in the server database (default)
- Local DB — records saved in this browser's IndexedDB
Switching storage mode
- Open the profile menu (top right)
- Click Use local database or Use cloud database to toggle
- Your choice is remembered per workspace on this browser
- The profile badge shows Cloud, Local · Sync, or Local · Offline
Sync options (local DB only)
- Sync remote — share changes with other browsers in the workspace via a temporary server relay and optional direct WebRTC links
- Offline — data stays on this device only; no cross-browser sync and no sync API traffic (saves API quota)
-
Open local DB settings
Profile menu → Local DB & sync status (or Local DB (offline) when offline mode is active).
-
Choose sync mode
Select Offline or Sync remote. Offline avoids relay polling and presence heartbeats.
-
Monitor sync (remote only)
View connected browsers, relay status, sync activity log, and run a test ping.
Privacy & API usage
Order and billing content is not stored permanently on the server in local DB mode. The relay holds short-lived sync messages (~5 minutes). Sync remote counts mutating sync requests (events, presence, signaling) toward workspace API quota; polling GET requests do not. Offline mode uses no sync API requests.
What works in local DB
- Dashboard — today's billing totals from local bills and tokens
- Customers — create, edit, search, balance reports, and customer history
- Inventory — full CRUD with local stock records
- POS — token types, issue tokens, kitchen/waiter/billing tabs, tables, token and table import
- Reports — daily, monthly, token history, and billing history tabs
- Activity log — stored locally; syncs with other browsers in sync remote mode
- Same-browser tabs refresh automatically via IndexedDB
Local DB limitations
- Receipt printing from POS is skipped in local DB mode (browser cannot reach server printers the same way)
- Data is per browser unless Sync remote is enabled
- Clearing browser site data removes local records — export or sync before clearing storage
Section 4
Dashboard
The Dashboard shows a snapshot of today's billing activity. Use it for a quick morning or shift-end check without opening full reports. Works in both cloud and local DB mode — local mode reads bills and tokens from IndexedDB.
Metrics shown
- Total bills and total amount for the selected date
- Dine-in bills and dine-in amount
- Takeaway bills and takeaway amount
Change the date picker to review another day. You need the statistics.view permission to see the Dashboard.
Section 5
Point of sale (POS)
The POS module handles the full order lifecycle: menu tokens, table service, kitchen preparation, waiter delivery, and payment. It opens inside Restaurant Desk as an embedded workspace view. In local DB mode, POS loads with data_mode=local and reads/writes IndexedDB via an in-browser API shim.
Token tab
Define menu items as token types (name, price, category). Counter staff build a cart, assign a customer or guest, and issue tokens. Tokens can be printed for the kitchen.
- Create, edit, or delete token types (with permission)
- Bulk import tokens from CSV or spreadsheet paste (cloud and local DB)
- Issue tokens to customers linked from your customer list
- Support dine-in and takeaway order types
Kitchen tab
Kitchen staff see active tokens waiting to be prepared. Mark items as prepared when ready; they move to the Waiter queue. Tokens can be revoked if an order is cancelled.
Waiter tab
Prepared tokens appear here for front-of-house staff. Mark tokens as delivered when served to the table or handed to the customer.
Table tab
Manage dining tables — name, capacity, and status. Assign orders to tables for dine-in service. Import tables in bulk from spreadsheet data (cloud and local DB).
Billing tab
View open, paid, on-hold, and pay-later bills. Process payments (cash, UPI, etc.), complete orders, and print receipts. Billing is linked to customers when applicable.
- Filter by bill status, order type, or date range
- Mark bills as paid or completed
- Print receipts with workspace branding (cloud mode; printing is skipped in local DB mode)
- Track pay-later and balance-due customers
Typical workflow
Counter → issue tokens → Kitchen → mark prepared → Waiter → deliver → Billing → mark paid and print receipt.
Section 6
Customers
Customers are workspace contacts used across POS and billing. Track regular guests, corporate accounts, and walk-in customers you want on record. In local DB mode, contacts and balance calculations are stored in IndexedDB.
Customer list
- Search by name, phone, email, or company
- Filter by balance status: balance due, paid up, or extra paid
- Create, edit, or delete customers (based on permission)
Customer report
- Open a customer and click View report for full history
- See balance due, total paid, visit dates, and bill counts
- Filter bills by date, status (paid, open, hold, pay later), and order type
- Review item timeline and direct token orders
Customer balances update automatically as bills are created and paid in POS. Use balance filters to follow up on unpaid accounts.
Section 7
Inventory
Track stock items separate from menu tokens — ingredients, supplies, and back-of-house materials. Inventory records are available in local DB mode with the same create, edit, and search flows.
- Name, description, category, quantity, and unit
- Supplier, purchase price, and purchase date
- Active or inactive status
- Search and paginate the inventory list
Permissions inventory.view, inventory.create, inventory.edit, and inventory.delete control access. Inventory changes are recorded in the workspace activity log.
Section 8
Reports
Reports provide deeper analysis than the Dashboard. All report tabs require statistics.view permission. In local DB mode, the reports embed loads with data_mode=local and computes daily, monthly, history, and billing history from IndexedDB.
Daily
Day-level billing breakdown: totals, item sales, and staff performance for a selected date.
Monthly
Month-level trends: billing totals, sales patterns, and employee performance across the month.
Token history
Audit trail of token issues, status changes, and revocations. Filter by date and user.
Billing history
List of bills with amounts, payment types, and links to view bill details. Useful for reconciliation and end-of-day review.
Section 9
Roles & members
Workspace admins manage who can access Restaurant Desk and what each role can do. This section appears only for users with roles.manage or members.manage permission.
Roles
- System roles (such as Admin, Manager, Guest) ship with default permissions
- Create custom roles with a name, description, and permission checklist
- Permissions are grouped: Customers, POS, Inventory, Statistics, Activity, Roles, Members
- Edit permissions inline; changes apply to all members with that role
Members
- See everyone who has signed in to this workspace
- Assign or change a member's role
- New users receive the Guest role until an admin updates it
Contacts permission is required
When editing role permissions, at least contacts.view must remain enabled so members can use customer-linked POS features.
Section 10
Profile, preferences & activity
Open the profile menu from the top-right corner of the app header.
Profile menu options
- Workspace — current workspace name and your role
- Usage — API requests and storage quotas; use Refresh usage to sync latest limits
- Workspace activity — all actions in the workspace (requires activity.view)
- My activity — your own actions only
- Workspaces — switch to another workspace you belong to
- Use local database / Use cloud database — toggle storage mode per workspace
- Local DB & sync status — monitor sync mode, connected browsers, and relay activity
- My preferences — personal language, theme color, and light/dark mode
- Logout — end your session
Preferences are per user and per workspace. You can override workspace defaults with your own language (English or Hindi), theme color, and appearance (light, dark, or system).
Section 11
Languages & themes
Languages
- English and Hindi are supported across navigation, POS, customers, inventory, and reports
- Set your language in My preferences, or use the workspace default
- POS embedded views follow the same locale when available
Themes
- Each workspace can use a brand color (blue, red, mint, and others)
- Choose light, dark, or system appearance in preferences
- Theme applies to the Vue shell; POS embed inherits workspace styling
Section 12
Permissions reference
Permissions are workspace-scoped. Superadmin users bypass checks. Below is a summary of permission keys used in Restaurant Desk.
Scroll horizontally to see all columns →
| Permission | Description |
|---|---|
contacts.view
|
View customer list and reports |
contacts.create
|
Add new customers |
contacts.edit
|
Edit customer details |
contacts.delete
|
Delete customers |
inventory.view
|
View inventory items |
inventory.create
|
Add inventory items |
inventory.edit
|
Edit inventory items |
inventory.delete
|
Delete inventory items |
statistics.view
|
Dashboard and Reports tabs |
activity.view
|
Workspace-wide activity log |
roles.manage
|
Create and edit roles |
members.manage
|
Assign roles to members |
POS (Food Token) permissions
Scroll horizontally to see all columns →
| Permission | Description |
|---|---|
food-token.token.view
|
View token types in POS |
food-token.token.create
|
Create token types |
food-token.token.edit
|
Edit token types |
food-token.token.delete
|
Delete token types |
food-token.issue.create
|
Issue tokens to customers |
food-token.active.view
|
Kitchen tab — view active tokens |
food-token.active.expire
|
Mark tokens as prepared |
food-token.active.revoke
|
Revoke active tokens |
food-token.waiter.view
|
Waiter tab — view prepared tokens |
food-token.waiter.deliver
|
Mark tokens as delivered |
food-token.billing.view
|
Billing tab — view bills |
food-token.billing.pay
|
Mark bills as paid |
food-token.billing.hold
|
Complete or hold bills |
food-token.billing.print
|
Print receipts |
food-token.setup.view
|
View POS setup settings |
food-token.setup.edit
|
Edit POS setup settings |
food-token.history.view
|
Token transaction history in reports |
Suggested roles
Admin — all permissions. Manager — POS, customers, reports, no role management. Cashier — token issue and billing. Kitchen — kitchen tab only. Waiter — waiter tab only. Viewer — dashboard and reports read-only.
Section 13
Troubleshooting
I signed in but see a blank menu or "access denied"
Your role may not include the needed permission. Ask a workspace admin to update your role under Roles & members, or assign you a role with POS or statistics access.
A navigation item is missing
Navigation is permission-filtered. For example, POS appears only if you have at least one food-token.* permission. Dashboard and Reports require statistics.view.
Usage shows stale API or storage numbers
Open the profile menu, expand Usage, and click Refresh usage. Workspace owners can also refresh from the central platform profile.
I cannot create customers in POS
Ensure your role includes contacts.view and contacts.create. POS customer pickers use the shared customer list.
How do I switch language or dark mode?
Profile menu → My preferences. Choose English or Hindi, pick a theme color, and set light, dark, or system appearance. Save to apply immediately.
How do I use local DB mode?
Profile menu → Use local database. Choose Sync remote to share data across browsers in your workspace, or Offline to keep data on this device only. See the Local database mode section in this guide for details.
Reports or POS show empty data in local mode
Confirm local DB is enabled for this workspace, then create orders in POS or switch back to cloud to migrate existing server data. Same-browser tabs update automatically; other browsers need Sync remote.
Print receipt does nothing in local mode
Printing is intentionally skipped in local DB mode because receipts normally use server-side print configuration. Use cloud mode for printing, or complete payment in local mode and print later from billing history in cloud mode.
How do I move data between cloud and local?
There is no automatic one-click migration. Use cloud mode for the source of truth, or enable Sync remote so multiple browsers share the same local dataset. Clearing browser site data deletes local records.