# Pizza Damore Restaurant Management System

## Summary

Pizza Damore will use a mobile-first internal restaurant management system for daily operations. The first product direction is a React frontend with a Laravel REST API and MySQL database.

The first working version focuses on:

- Dashboard
- Inventory
- Employees
- Shifts
- Daily, weekly, and monthly sales
- Expenses
- Basic operational profit

The biggest operational problem is stock usage tracking. The system should not depend only on staff manually opening the portal and editing quantities during busy service. Inventory accuracy will come from combining purchase entry, quick usage commands, and daily key-item counts.

## Version Roadmap

### Version 1: Internal Operations MVP

Goal: replace spreadsheets and manual notes with one simple internal system.

Features:

- Login system with simple roles: owner, manager, employee.
- Dashboard with today, yesterday, week, month, and custom date range summaries.
- Inventory items with manual stock tracking.
- Inventory purchases and stock adjustments.
- Low-stock alerts.
- Employee records.
- Shift scheduling.
- Basic timesheet and pay estimate.
- Sales records by business date.
- Expense records by date and category.
- Operational profit reports.

Inventory behavior:

- Staff or manager adds bought products into inventory.
- Stock quantity can be adjusted manually.
- Item cost is optional.
- Low-stock alerts show when quantity falls below minimum.
- Usage can be entered manually in v1, while the database supports future command-based usage.

Sales behavior:

- Sales are stored by business date.
- Dashboard supports today, yesterday, current week, current month, and custom date range.
- Sales are manual totals, not per-order tracking yet.

### Version 1.5: Fast Inventory Usage Assistant

Goal: make stock reduction quick enough that staff can use it during service.

Features:

- Typed command box inside the app.
- Voice command button inside the app/PWA.
- Rule-based parser first, with no paid AI required.
- Item aliases and synonyms.
- Clear matches apply directly and create inventory movement records.
- Unclear matches go into a pending review queue.

Example commands:

- `subtract 2 tomatoes`
- `used 1 cheese packet`
- `remove 4 cucumbers`
- `waste 1 sauce bottle`

### Version 2: WhatsApp Or External Message Commands

Goal: let employees reduce inventory from phones without opening the app.

Features:

- WhatsApp command integration if cost and account setup are acceptable.
- A cheaper/free messaging bot alternative if WhatsApp is not practical.
- Incoming messages use the same parser as app commands.
- Only registered employee phone numbers can send commands.
- Uncertain commands require manager confirmation.
- All commands are logged.

### Version 3: Stock Count And Reconciliation

Goal: catch missed usage and make inventory trustworthy.

Features:

- Daily key-item count.
- Weekly full inventory count.
- Count sheets for important items like tomatoes, cucumbers, cheese, dough, and sauce.
- Expected quantity vs counted quantity comparison.
- Reconciliation adjustment records.
- Variance reporting for shrinkage, waste, and missing stock.

### Version 4: Menu And Recipe-Based Deduction

Goal: reduce stock automatically based on sales and menu items.

Features:

- Menu item management.
- Recipe definitions.
- Ingredient quantities per menu item.
- Sales by menu item.
- Automatic ingredient deduction.
- Manual assistant commands remain available for corrections and waste.

### Version 5: Advanced Automation And Growth

Features:

- PWA install support.
- Push notifications.
- Supplier reorder suggestions.
- Invoice upload and OCR extraction.
- Multi-branch support.
- Advanced permissions.
- Payroll periods.
- POS and delivery platform integrations.
- Accounting exports.
- Audit logs.

## Product Decisions

- Use manual purchase entry first.
- Add invoice upload and OCR later, not in the MVP.
- Use daily key-item stock counts rather than full daily inventory.
- Use simple units per item at the start.
- Add command-based stock reduction before recipe-based deduction.
- Use rule-based command parsing first to keep cost low.
- Add AI parsing later only if needed.
- Confirm uncertain commands only.
- Keep sales reports date-based: today, yesterday, week, month, and custom range.

## Assumptions

- The first app is for one restaurant: Pizza Damore.
- Stack is React, Laravel, and MySQL.
- Laravel is the main backend.
- Node.js is not needed for v1.
- PWA support comes after the MVP is stable.
- WhatsApp or external messaging is planned after the internal command parser works.
- Inventory accuracy will come from combining purchases, quick usage commands, and stock counts.
