# MASTER CLAUDE SONNET PROMPT # COMPLETE HOTEL + RESTAURANT POS / BILLING / MANAGEMENT SYSTEM # BUILD ALL PHASES — PRODUCTION READY You are Claude Sonnet acting as a senior software architect, senior Node.js developer, senior React developer, database architect, UI/UX designer, QA engineer, and DevOps engineer. Your task is to BUILD a complete production-ready Hotel + Restaurant POS, Billing, Inventory, Kitchen, Hotel Room Management and Restaurant Management System. This is NOT a demo. This is NOT a static UI. This is NOT a prototype. This is NOT a tutorial. You must actually create the application files, install dependencies, configure the project, create the database, create APIs, create frontend, create admin/POS interfaces, implement all business logic, test everything, and fix errors. The system should be suitable for: - Restaurants - Hotels - Cafes - Resorts - Bars where legally applicable - QSR - Fine dining - Cloud kitchens - Multi-outlet restaurants - Hotels with restaurant billing - Hotel + restaurant combined businesses The application must have a professional POS experience inspired by modern restaurant management systems, but DO NOT copy any company's branding, logo, proprietary UI, text, assets, or source code. Create an ORIGINAL professional design. ============================================================ 1. ABSOLUTE TECHNOLOGY REQUIREMENTS ============================================================ FRONTEND: Use ONLY: - React.js - React DOM - JavaScript - JSX - HTML5 - Pure CSS3 - CSS Variables - React Router - Axios - Webpack - Babel IMPORTANT: DO NOT USE VITE. The React frontend must be manually configured using Webpack + Babel. BACKEND: - Node.js - Express.js - JavaScript - REST API DATABASE: - MySQL - phpMyAdmin compatible - Sequelize OR mysql2 - Prefer Sequelize if it gives cleaner migrations/relations AUTHENTICATION: - JWT - bcrypt - HTTP-only refresh cookies where practical FILE UPLOAD: - Multer - Sharp EMAIL: - Nodemailer SECURITY: - Helmet - CORS - express-rate-limit - express-validator - bcrypt - JWT LOGGING: - Winston ============================================================ 2. STRICTLY PROHIBITED ============================================================ DO NOT USE: - Next.js - Vite - Tailwind CSS - Bootstrap - Material UI - MUI - Ant Design - Chakra UI - Semantic UI - Bulma - Foundation - DaisyUI - Flowbite - shadcn/ui - Radix UI - Styled Components - Emotion - Vue - Angular - Svelte - Nuxt - Firebase - Supabase - MongoDB - PostgreSQL DO NOT use any CSS/UI framework. The UI must be: React + JSX + HTML5 + Pure CSS3. No Tailwind classes. No Bootstrap classes. No utility CSS framework. ============================================================ 3. DESIGN REQUIREMENTS ============================================================ Create a premium, modern, professional POS design. PRIMARY COLOR: Sky Blue. Recommended primary: #38BDF8 Supporting colors: #0EA5E9 #0284C7 #0369A1 WHITE: #FFFFFF Background: #F5FAFE Light blue surface: #EAF7FF Text: #0F172A Secondary text: #475569 Border: #DCEAF3 Success: #16A34A Warning: #F59E0B Danger: #DC2626 Dark mode can use deeper blue accents but the DEFAULT design must be: SKY BLUE + WHITE. The interface should feel: - Clean - Professional - Fast - Modern - Premium - Enterprise-ready - Easy for cashiers - Easy for waiters - Easy for managers - Easy for hotel reception - Easy for kitchen staff Avoid: - Excessive gradients - Excessive glassmorphism - Huge animations - Overly rounded childish cards - Too many colors - Clutter - Tiny text - Poor contrast Use: - White cards - Sky-blue primary actions - Light blue backgrounds - Clear typography - Compact POS controls - Professional tables - Clear status badges - Good spacing - Strong visual hierarchy ============================================================ 4. DESIGN SYSTEM ============================================================ Create: frontend/src/styles/ variables.css reset.css global.css layout.css typography.css buttons.css forms.css tables.css cards.css modal.css animations.css responsive.css utilities.css Use CSS variables. Example: :root { --primary: #38BDF8; --primary-dark: #0284C7; --primary-light: #E0F5FF; --background: #F5FAFE; --surface: #FFFFFF; --surface-hover: #F0F9FF; --text: #0F172A; --text-secondary: #475569; --text-muted: #64748B; --border: #DCEAF3; --success: #16A34A; --warning: #F59E0B; --danger: #DC2626; --radius-sm: 6px; --radius-md: 10px; --radius-lg: 14px; --shadow-sm: 0 2px 8px rgba(14, 165, 233, 0.06); --shadow-md: 0 8px 24px rgba(14, 165, 233, 0.10); --container-width: 1400px; --transition: 0.2s ease; } Create dark mode using CSS variables but keep sky-blue branding. ============================================================ 5. FRONTEND BUILD SYSTEM ============================================================ NO VITE. Configure Webpack manually. Required: - webpack - webpack-cli - webpack-dev-server - babel-loader - @babel/core - @babel/preset-env - @babel/preset-react - html-webpack-plugin - css-loader - style-loader - mini-css-extract-plugin - css-minimizer-webpack-plugin - terser-webpack-plugin Create: frontend/webpack.config.js frontend/babel.config.js frontend/public/index.html Use React 18+ compatible configuration. Development: npm run dev Production: npm run build Production output: frontend/dist/ Use: - code splitting - lazy routes - production optimization - asset hashing - CSS extraction in production - source maps in development ============================================================ 6. PROJECT STRUCTURE ============================================================ Create: hotel-pos/ │ ├── backend/ │ ├── src/ │ │ ├── config/ │ │ ├── controllers/ │ │ ├── middleware/ │ │ ├── models/ │ │ ├── routes/ │ │ ├── services/ │ │ ├── validators/ │ │ ├── utils/ │ │ ├── jobs/ │ │ ├── migrations/ │ │ ├── seeders/ │ │ ├── uploads/ │ │ ├── app.js │ │ └── server.js │ │ │ ├── .env.example │ ├── package.json │ └── README.md │ ├── frontend/ │ ├── public/ │ │ ├── index.html │ │ ├── favicon.ico │ │ └── robots.txt │ │ │ ├── src/ │ │ ├── components/ │ │ ├── pages/ │ │ ├── layouts/ │ │ ├── hooks/ │ │ ├── context/ │ │ ├── services/ │ │ ├── utils/ │ │ ├── validators/ │ │ ├── routes/ │ │ ├── styles/ │ │ ├── assets/ │ │ ├── App.jsx │ │ └── main.jsx │ │ │ ├── webpack.config.js │ ├── babel.config.js │ ├── .env.example │ ├── package.json │ └── README.md │ ├── database/ │ ├── schema.sql │ ├── seed.sql │ └── README.md │ ├── uploads/ ├── docs/ │ ├── package.json └── README.md ============================================================ 7. MAIN APPLICATION MODULES ============================================================ Build ALL of these modules: 1. Login / Authentication 2. Dashboard 3. POS Billing 4. Restaurant POS 5. Hotel Front Desk 6. Room Management 7. Table Management 8. Floor Management 9. Menu Management 10. Categories 11. Menu Items 12. Variations 13. Add-ons 14. Modifiers 15. Combos 16. KOT 17. Kitchen Display System 18. Kitchen Stations 19. Inventory 20. Recipes 21. Purchase 22. Suppliers 23. Stock Transfers 24. Wastage 25. Customers 26. Guest Management 27. Reservations 28. Hotel Check-in 29. Hotel Check-out 30. Room Charges 31. Restaurant Charges 32. Hotel Folio 33. Payments 34. GST / Tax 35. Discounts 36. Coupons 37. Loyalty 38. Employees 39. Roles 40. Permissions 41. Expenses 42. Cash Management 43. Day End 44. Reports 45. Multi Outlet 46. Central Kitchen 47. Online Orders 48. QR Ordering 49. Media 50. Settings 51. Notifications 52. Audit Logs 53. Backup / Restore utilities 54. Integration settings ============================================================ 8. DATABASE ============================================================ Database name: hotel_pos Create: database/schema.sql database/seed.sql Must be directly importable through phpMyAdmin. Use: - INT UNSIGNED - BIGINT where appropriate - DECIMAL for money - DATETIME - DATE - BOOLEAN/TINYINT - ENUM only where truly appropriate - indexes - foreign keys - unique constraints - created_at - updated_at Money must NEVER use floating point. Use: DECIMAL(12,2) for financial values. ============================================================ 9. MULTI-TENANT ARCHITECTURE ============================================================ Design the system so it can later operate as SaaS. Main structure: Company ↓ Outlet ↓ Users ↓ POS ↓ Orders ↓ Payments Every major business record should support: company_id and where applicable: outlet_id This allows: Restaurant A ├── Outlet 1 ├── Outlet 2 └── Outlet 3 Restaurant B ├── Outlet 1 └── Outlet 2 Users must only access authorized company/outlet data. ============================================================ 10. CORE DATABASE TABLES ============================================================ Create at minimum: companies outlets users roles permissions role_permissions user_outlets customers customer_addresses customer_loyalty suppliers supplier_contacts menu_categories menu_items menu_item_variations menu_item_addons menu_item_modifiers menu_combos menu_combo_items taxes discounts coupons floors tables table_status_history orders order_items order_item_addons order_item_modifiers order_taxes order_discounts payments payment_transactions refunds kot kot_items kitchen_stations kitchen_orders recipes recipe_items inventory_items inventory_units inventory_stocks inventory_transactions stock_adjustments stock_transfers stock_transfer_items wastage purchase_orders purchase_order_items purchase_invoices purchase_invoice_items purchase_returns purchase_return_items expenses cash_registers cash_transactions day_end_closings hotel_room_types hotel_rooms hotel_room_amenities hotel_room_reservations hotel_guests hotel_checkins hotel_checkouts hotel_folios hotel_folio_items hotel_room_charges restaurant_room_charges hotel_rate_plans hotel_room_blocks restaurant_reservations online_orders online_order_items qr_menus qr_menu_tables loyalty_transactions employees attendance notifications audit_logs settings social_integrations printers printer_routes media backup_logs ============================================================ 11. COMPANY TABLE ============================================================ Fields: id name legal_name logo email phone address city state country pincode gstin pan currency timezone status created_at updated_at ============================================================ 12. OUTLETS ============================================================ Fields: id company_id name code type address phone email gstin invoice_prefix kot_prefix timezone status created_at updated_at Types: restaurant hotel resort cafe qsr other ============================================================ 13. USERS / ROLES / PERMISSIONS ============================================================ Users: id company_id name email phone password role_id avatar status last_login_at created_at updated_at Roles: Super Admin Company Admin Outlet Manager Cashier Waiter Captain Kitchen Inventory Manager Purchase Manager Receptionist Accountant Auditor Permissions must be granular: dashboard.view pos.view pos.create pos.edit pos.delete pos.discount pos.refund orders.view orders.create orders.edit orders.cancel payments.view payments.create inventory.view inventory.create inventory.adjust purchase.view purchase.create hotel.view hotel.checkin hotel.checkout reports.view settings.view settings.edit etc. ============================================================ 14. POS BILLING MODULE ============================================================ This is the most important module. Create a fast POS interface. Route: /pos Layout: LEFT / MAIN AREA: - Category tabs - Search - Menu items - Item cards - Item image - Price - Availability RIGHT: - Current order - Table - Customer - Items - Quantity - Add-ons - Modifiers - Notes - Discount - Tax - Subtotal - Grand total - Payment button The POS must be optimized for mouse, touch screen and keyboard. ============================================================ 15. POS ORDER TYPES ============================================================ Support: Dine In Takeaway Delivery Pickup Room Service Counter Sale Online Order Select order type before billing. ============================================================ 16. DINE-IN POS ============================================================ Workflow: Floor ↓ Table ↓ Customer ↓ Menu ↓ Items ↓ Modifiers ↓ KOT ↓ Kitchen ↓ Bill ↓ Payment ↓ Close Allow: - Table selection - Table transfer - Merge tables - Split bill - Split items - Move order - Hold order - Resume order - Cancel item - Cancel order - Reprint KOT - Reprint bill ============================================================ 17. ORDER CART ============================================================ Each cart item must support: item_id name quantity unit_price discount tax addons modifiers special_instruction notes subtotal tax_amount discount_amount total Allow: + - quantity input delete edit modifiers add notes ============================================================ 18. SPLIT BILL ============================================================ Support: Split equally Split by item Split by amount Split by customer Example: Bill: ₹4,000 Customer A: ₹1,500 Customer B: ₹2,500 Each split bill must be independently payable. ============================================================ 19. PAYMENT SYSTEM ============================================================ Support: Cash Card UPI Bank Transfer Wallet Online Payment Room Charge Credit Other Support split payments. Example: Total ₹5,000 Cash ₹1,000 UPI ₹2,000 Card ₹2,000 Payment must be stored transactionally. ============================================================ 20. BILLING ============================================================ Generate professional invoices. Include: Restaurant/Hotel logo Business name Address GSTIN Invoice number Date/time Table Customer Cashier Items Qty Rate Discount Tax CGST SGST IGST if applicable Grand total Payment mode Amount paid Balance Footer Terms Create print-friendly invoice. Support: A4 Thermal 80mm Thermal 58mm ============================================================ 21. GST / TAX ============================================================ Create configurable taxes. Tax fields: name rate type CGST SGST IGST CESS if required inclusive/exclusive Do not hard-code tax percentages. Taxes must be configurable from settings. Tax calculation must use decimal-safe arithmetic. ============================================================ 22. KOT MODULE ============================================================ When order is submitted: POS ↓ KOT ↓ Kitchen Station KOT must contain: KOT number Order number Table Order type Items Quantity Modifiers Notes Station Date/time Waiter Priority Status Statuses: New Accepted Preparing Ready Served Cancelled ============================================================ 23. KITCHEN DISPLAY SYSTEM ============================================================ Create: /kitchen Kitchen screen. Columns: NEW PREPARING READY COMPLETED Each card: KOT # Table Items Time elapsed Priority Notes Buttons: Accept Start Ready Complete Cancel Use WebSocket / Socket.IO for real-time updates. POS order: ↓ Socket.IO Kitchen instantly receives KOT. ============================================================ 24. KITCHEN STATIONS ============================================================ Create stations: Main Kitchen Tandoor Chinese Bakery Bar Beverage Dessert etc. Menu categories/items can route to specific stations. Example: Pizza → Bakery Paneer → Main Kitchen Tea → Beverage ============================================================ 25. TABLE MANAGEMENT ============================================================ Create: /tables Features: - Floors - Areas - Tables - Capacity - Status - Reservation - Occupied - Available - Cleaning - Billing Table statuses: Available Occupied Reserved Cleaning Blocked Show table layout visually. Allow admin to configure: - Table number - Shape - Capacity - Position - Floor - Section ============================================================ 26. MENU MANAGEMENT ============================================================ Menu categories. Items. Each item: name SKU barcode description image price cost tax category station food_type availability online_available room_service_available status sort_order Food types: Vegetarian Non-Vegetarian Vegan Egg Other ============================================================ 27. VARIATIONS ============================================================ Example: Coffee: Small ₹80 Medium ₹120 Large ₹150 Create variation management. ============================================================ 28. ADDONS ============================================================ Example: Burger: Extra Cheese ₹40 Extra Patty ₹80 Fries ₹60 Support minimum/max selection. ============================================================ 29. MODIFIERS ============================================================ Examples: Spicy Less spicy No onion No garlic Extra sauce Special instructions ============================================================ 30. COMBOS ============================================================ Example: Burger Combo: Burger Fries Drink Support combo pricing. ============================================================ 31. INVENTORY ============================================================ Inventory module: Inventory Items Units Opening Stock Purchases Consumption Wastage Transfers Adjustments Low Stock Stock Valuation Inventory Reports Each item: name SKU unit purchase_price selling_price reorder_level current_stock minimum_stock maximum_stock supplier status ============================================================ 32. RECIPE MANAGEMENT ============================================================ Extremely important. Example: Paneer Butter Masala Paneer 250g Tomato 150g Butter 30g Cream 50ml Spices 10g When one item is sold: automatically deduct ingredients. Support: Recipe Recipe items Quantity Unit Cost Wastage percentage Yield Food cost Gross margin ============================================================ 33. PURCHASE ============================================================ Purchase workflow: Supplier ↓ Purchase Order ↓ Goods Received ↓ Purchase Invoice ↓ Inventory Support: Purchase Orders Purchase Invoices Purchase Returns Supplier Payments Outstanding Purchase reports ============================================================ 34. SUPPLIER MANAGEMENT ============================================================ Fields: Name Company GSTIN Phone Email Address Payment terms Bank details Notes Status ============================================================ 35. STOCK TRANSFER ============================================================ Support: Outlet → Outlet Warehouse → Outlet Central Kitchen → Outlet Outlet → Central Kitchen Create transfer workflow: Draft Requested Approved Dispatched Received Cancelled ============================================================ 36. WASTAGE ============================================================ Track: Item Quantity Unit Reason Cost Date Employee Outlet Reason examples: Expired Damaged Overproduction Spillage Wrong preparation Other ============================================================ 37. CUSTOMER CRM ============================================================ Customer: Name Mobile Email Address Birthday Anniversary GSTIN Notes Total visits Total orders Total spending Last visit Favorite items Loyalty points Create customer profile. ============================================================ 38. LOYALTY ============================================================ Support: Points earning Points redemption Rewards Membership tiers Transactions Example: ₹100 spent → 10 points Store all loyalty transactions. Do not hard-code rules. ============================================================ 39. COUPONS ============================================================ Support: Percentage discount Fixed discount Minimum order Maximum discount Date validity Usage limit Customer restriction Outlet restriction Order type restriction ============================================================ 40. RESTAURANT RESERVATIONS ============================================================ Create reservation module. Fields: Customer Date Time Guests Table Special request Status Source Statuses: Pending Confirmed Arrived Seated Completed Cancelled No Show ============================================================ 41. HOTEL MODULE ============================================================ Hotel dashboard: Occupancy Available rooms Occupied rooms Reserved rooms Check-ins today Check-outs today Revenue Pending payments Housekeeping status ============================================================ 42. ROOM TYPES ============================================================ Examples: Single Double Deluxe Suite Family Executive Premium Create configurable room types. Fields: name description capacity adult_capacity child_capacity base_price tax amenities image status ============================================================ 43. ROOMS ============================================================ Fields: room_number room_type_id floor status price capacity notes housekeeping_status maintenance_status status: Available Occupied Reserved Cleaning Maintenance Blocked ============================================================ 44. HOTEL RESERVATIONS ============================================================ Reservation: Guest Room Room type Check-in date Check-out date Adults Children Rate Discount Tax Advance Payment Status Source Special requests Statuses: Pending Confirmed Checked In Checked Out Cancelled No Show ============================================================ 45. HOTEL GUESTS ============================================================ Guest profile: Name Mobile Email DOB Address City State Country ID type ID number ID document Nationality Company GSTIN Notes Store documents securely. Do not expose sensitive documents publicly. ============================================================ 46. HOTEL CHECK-IN ============================================================ Workflow: Reservation ↓ Guest verification ↓ Room allocation ↓ ID/document verification ↓ Advance payment ↓ Check-in ↓ Room occupied ↓ Folio active Create professional reception UI. ============================================================ 47. HOTEL FOLIO ============================================================ Folio is extremely important. A guest folio contains: Room charge Restaurant charge Room service Laundry Minibar Extra bed Parking Other services Discount Tax Payments Balance Example: Room: ₹5,000 Restaurant: ₹1,500 Laundry: ₹500 Total: ₹7,000 Paid: ₹4,000 Balance: ₹3,000 ============================================================ 48. POST RESTAURANT BILL TO ROOM ============================================================ Restaurant POS must support: PAY BY ROOM Workflow: Guest provides room number. System finds active checked-in guest. Restaurant bill: ₹1,500 Select: Charge to Room System posts: hotel_folio_item restaurant_room_charge Guest folio becomes: Previous balance + Restaurant ₹1,500 New balance This must be transactional. ============================================================ 49. ROOM SERVICE ============================================================ Order type: Room Service Select: Room Guest Menu Items Modifiers KOT Kitchen Delivery to room Charge to folio Support room service status: New Preparing Ready Delivered Charged ============================================================ 50. HOTEL CHECKOUT ============================================================ Checkout screen: Guest Room Stay Room charges Restaurant charges Room service Other charges Discounts Taxes Payments Balance Final total Actions: Print invoice Email invoice Collect payment Checkout After checkout: Room → Cleaning Guest stay → Completed Folio → Closed ============================================================ 51. HOUSEKEEPING ============================================================ Create housekeeping module. Statuses: Clean Dirty Cleaning Inspected Maintenance Blocked Allow housekeeping staff to update room status. Dashboard: Clean rooms Dirty rooms Cleaning rooms Inspection pending Maintenance ============================================================ 52. ROOM CHARGES ============================================================ Support: Room rent Extra bed Early check-in Late checkout Room service Laundry Minibar Parking Other All configurable. ============================================================ 53. CASH REGISTER ============================================================ Cashier opens register. Opening cash: ₹10,000 During day: Cash sales Cash expenses Cash refunds Cash deposits Cash withdrawals At closing: Expected cash Actual cash Difference Create cash register session. ============================================================ 54. DAY END ============================================================ Day-end closing must calculate: Gross sales Discounts Tax Net sales Cash sales Card sales UPI sales Online sales Room charges Refunds Expenses Expected cash Actual cash Difference KOT count Cancelled orders Orders count Generate day-end report. ============================================================ 55. EXPENSE MANAGEMENT ============================================================ Categories: Rent Electricity Salary Transport Maintenance Marketing Supplies Miscellaneous Fields: Amount Category Date Description Payment mode Employee Outlet Attachment ============================================================ 56. EMPLOYEE MANAGEMENT ============================================================ Employee: Name Employee code Phone Email Role Department Outlet Joining date Salary if required Status ============================================================ 57. ATTENDANCE ============================================================ Support: Check-in Check-out Break Late Absent Overtime Date Employee Outlet ============================================================ 58. REPORTS ============================================================ Create a comprehensive reports module. Dashboard reports: Sales Today Sales This Week Sales This Month Orders Today Average Order Value Occupancy Room Revenue Restaurant Revenue Inventory Value Outstanding ============================================================ 59. SALES REPORTS ============================================================ Reports: Daily Sales Monthly Sales Yearly Sales Hourly Sales Item Sales Category Sales Order Type Sales Payment Mode Sales Outlet Sales Employee Sales Table Sales Room Sales ============================================================ 60. PRODUCT REPORTS ============================================================ Top selling items. Slow moving items. Most profitable items. Category performance. Item quantity sold. Item revenue. Item discount. Item tax. ============================================================ 61. INVENTORY REPORTS ============================================================ Stock Summary Low Stock Stock Movement Purchase Consumption Wastage Stock Transfer Stock Valuation Food Cost Recipe Cost ============================================================ 62. HOTEL REPORTS ============================================================ Occupancy Room Revenue ADR RevPAR Check-ins Check-outs Cancellations No Shows Room Type Performance Guest Revenue Outstanding Folios ============================================================ 63. KOT REPORTS ============================================================ KOT count Average preparation time Cancelled KOT Station performance Delayed KOT Kitchen productivity ============================================================ 64. CUSTOMER REPORTS ============================================================ New customers Returning customers Top customers Customer spending Visits Loyalty Coupons ============================================================ 65. PURCHASE REPORTS ============================================================ Supplier-wise purchase Item-wise purchase Purchase trend Purchase returns Outstanding supplier payments ============================================================ 66. TAX REPORTS ============================================================ Tax collected: CGST SGST IGST Other applicable taxes Sales tax summary Taxable value Tax amount Invoice count Make tax reporting configurable. ============================================================ 67. MULTI-OUTLET ============================================================ Company can have multiple outlets. Head office dashboard: Total sales Outlet sales Restaurant revenue Hotel revenue Inventory Expenses Profitability Occupancy Allow switching outlet from header. User permissions must determine accessible outlets. ============================================================ 68. CENTRAL KITCHEN ============================================================ Support: Production Raw materials Recipes Production orders Outlet requests Stock dispatch Stock receiving Transfers ============================================================ 69. ONLINE ORDERS ============================================================ Create generic online order integration architecture. Sources: Website QR Mobile App Aggregator Other Do not fake external integrations. Create integration interface/service architecture so APIs can be added later. Online order statuses: Received Accepted Preparing Ready Out for Delivery Completed Cancelled ============================================================ 70. QR MENU ============================================================ Generate QR codes for: Restaurant Outlet Floor Table Room QR menu can display: Categories Items Prices Availability Images Add-ons Modifiers Customers can place orders. For actual payment/order integration, create API architecture. ============================================================ 71. PRINTER MANAGEMENT ============================================================ Create printer settings: Bill printer KOT printer Kitchen printer Receipt printer Label printer Printer routing: Category Station Order type Outlet Support print formats: 58mm 80mm A4 Create print-friendly CSS. ============================================================ 72. RECEIPT PRINTING ============================================================ Create: Invoice component ThermalReceipt component KOT component RoomFolioInvoice component DayEndReport component Use browser print. Create: @media print CSS. Hide: Sidebar Navigation Buttons Non-printable UI ============================================================ 73. NOTIFICATIONS ============================================================ Create notifications: New order KOT ready Low stock Reservation Check-in Check-out Payment Outstanding System ============================================================ 74. AUDIT LOG ============================================================ Track: Login Logout Create Update Delete Refund Discount Price change Stock adjustment Payment Checkout Settings change Each log: user action module record_id old_data new_data IP user_agent timestamp ============================================================ 75. MEDIA / UPLOAD ============================================================ Use: Multer + Sharp. Support: JPG JPEG PNG WEBP PDF SVG only where safe. Generate optimized images. Folders: uploads/company uploads/outlets uploads/menu uploads/projects uploads/hotel uploads/guests uploads/media uploads/documents Validate: MIME extension size dimensions Never trust filenames. ============================================================ 76. SECURITY ============================================================ Implement: Helmet CORS Rate limiting JWT bcrypt Input validation SQL injection prevention XSS protection File validation File size limits Secure cookies Role authorization Company authorization Outlet authorization Never expose: passwords JWT secrets database credentials private guest documents private ID documents SMTP credentials ============================================================ 77. AUTHORIZATION ============================================================ Every protected API must verify: 1. Authentication 2. Company access 3. Outlet access 4. Role permission Example: User A belongs to Company 1. User A cannot access Company 2. User A can only access assigned outlets. Super Admin may access all. ============================================================ 78. API ARCHITECTURE ============================================================ Base: /api Create: /api/auth /api/companies /api/outlets /api/users /api/roles /api/permissions /api/dashboard /api/pos /api/orders /api/payments /api/tables /api/floors /api/menu /api/categories /api/items /api/kot /api/kitchen /api/inventory /api/recipes /api/purchases /api/suppliers /api/customers /api/loyalty /api/reservations /api/hotel /api/rooms /api/guests /api/checkins /api/checkouts /api/folios /api/housekeeping /api/expenses /api/employees /api/attendance /api/reports /api/online-orders /api/qr /api/printers /api/settings /api/media /api/notifications /api/audit-logs ============================================================ 79. API RESPONSE FORMAT ============================================================ Success: { "success": true, "message": "Operation successful", "data": {} } List: { "success": true, "message": "Records fetched", "data": [], "pagination": { "page": 1, "limit": 20, "total": 100, "totalPages": 5 } } Error: { "success": false, "message": "Something went wrong", "errors": [] } ============================================================ 80. POS FRONTEND ============================================================ Create: /pos The POS must NOT look like a normal admin table. It must feel like a real cashier application. Recommended: Top: Outlet selector Date Cashier Register Current order type Left: Categories Center: Menu items Right: Cart Bottom: Hold KOT Discount Split Payment Print New Order Make buttons large enough for touch screens. ============================================================ 81. POS KEYBOARD SHORTCUTS ============================================================ Implement where practical: F1 = New Order F2 = Search Item F3 = Customer F4 = Hold F5 = Payment F6 = Print Esc = Close Modal Ctrl + K = Search Document shortcuts. Allow configurable shortcuts later. ============================================================ 82. ADMIN LAYOUT ============================================================ Create: Sidebar Topbar Outlet selector User menu Notifications Breadcrumb Main content Responsive mobile menu. Sidebar sections: Dashboard POS Restaurant Hotel Kitchen Inventory Purchase CRM Reports Employees Settings ============================================================ 83. DASHBOARD UI ============================================================ Sky-blue professional dashboard. Cards: Today's Sales Orders Average Order Restaurant Revenue Room Revenue Occupancy Pending Payments Low Stock Charts: Sales trend Payment distribution Top products Occupancy Use Recharts only if necessary. Do not create fake numbers. Use database values. ============================================================ 84. SKELETON LOADING ============================================================ This is mandatory. Install: react-loading-skeleton Use: Skeleton SkeletonTheme if useful. Create: DashboardSkeleton POSSkeleton TableSkeleton MenuSkeleton OrderSkeleton KOTSkeleton InventorySkeleton PurchaseSkeleton CustomerSkeleton HotelDashboardSkeleton RoomSkeleton ReservationSkeleton ReportSkeleton FormSkeleton MediaSkeleton Every API-driven section must have: Loading Success Empty Error states. Never show blank content while loading. ============================================================ 85. FRONTEND SERVICES ============================================================ Create: services/api.js authService.js dashboardService.js posService.js orderService.js paymentService.js menuService.js tableService.js kotService.js kitchenService.js inventoryService.js purchaseService.js customerService.js hotelService.js roomService.js guestService.js folioService.js reservationService.js reportService.js settingsService.js mediaService.js notificationService.js ============================================================ 86. REACT CONTEXTS ============================================================ Create: AuthContext CompanyContext OutletContext ThemeContext NotificationContext CartContext where useful Do not overuse Context. ============================================================ 87. REUSABLE COMPONENTS ============================================================ Create: Button Input Select Textarea Checkbox Radio Modal ConfirmModal Toast Dropdown Tabs Badge Card DataTable Pagination SearchBox DatePicker TimePicker ImageUploader FileUploader Skeleton EmptyState ErrorState LoadingOverlay Sidebar Topbar Breadcrumb StatCard ChartCard Invoice Receipt KOTTicket RoomCard TableCard MenuItemCard OrderCart PaymentModal SplitBillModal CustomerSelector ============================================================ 88. HOTEL FRONT DESK UI ============================================================ Create: /hotel Dashboard /hotel/reservations /hotel/check-in /hotel/check-out /hotel/rooms /hotel/guests /hotel/folios /hotel/housekeeping Make reception workflow fast. Room grid should visually show: Available Occupied Reserved Cleaning Maintenance ============================================================ 89. ROOM GRID ============================================================ Example: ROOM 101 Deluxe AVAILABLE ₹4,500 ROOM 102 Deluxe OCCUPIED Guest Name ROOM 103 Suite CLEANING Use sky-blue status colors while maintaining accessibility. ============================================================ 90. TABLE GRID ============================================================ Example: TABLE 01 4 Seats AVAILABLE TABLE 02 6 Seats OCCUPIED TABLE 03 4 Seats RESERVED Click table → open order. ============================================================ 91. MOBILE RESPONSIVENESS ============================================================ Support: 320px 360px 375px 390px 414px 480px 768px 1024px 1280px 1440px 1920px POS should remain usable on tablets. Hotel reception should work on desktop/tablet. Admin must be responsive. ============================================================ 92. DARK MODE ============================================================ Support: Light Dark System Default: Light Sky blue + white. Store preference in localStorage. No theme library. ============================================================ 93. ACCESSIBILITY ============================================================ Use: Semantic HTML Keyboard navigation ARIA labels Focus states Accessible modals Accessible forms Proper labels Alt text Color contrast Do not rely only on color for status. ============================================================ 94. PERFORMANCE ============================================================ Implement: React.lazy Suspense Webpack code splitting Image lazy loading WebP Responsive images Proper width/height Database indexes Pagination Debounced searches Optimized SQL Avoid unnecessary renders ============================================================ 95. SEARCH ============================================================ Global search should support: Orders Customers Menu Products Rooms Guests Invoices Reservations Use debouncing. ============================================================ 96. PAGINATION ============================================================ All large datasets must use server-side pagination. Example: ?page=1 &limit=20 &search= &sort=created_at &order=DESC ============================================================ 97. FINANCIAL SAFETY ============================================================ Financial operations must be transactional. Examples: Payment Refund Checkout Stock deduction Room charge Restaurant room charge Purchase Stock transfer Use database transactions. Never allow partial financial operations. Money: DECIMAL(12,2) Never JavaScript floating-point arithmetic for authoritative financial calculations. Create server-side calculation logic. ============================================================ 98. ORDER NUMBERING ============================================================ Create configurable prefixes. Examples: INV-2026-000001 KOT-2026-000001 RES-2026-000001 ROOM-2026-000001 Allow outlet-specific prefixes. Numbers must be generated safely under concurrency. ============================================================ 99. DISCOUNTS ============================================================ Support: Percentage Fixed amount Item-level Order-level Customer-specific Coupon Manager-approved discount Permission-based discount limits. For example: Cashier max discount = 10% Manager = 30% Admin = unlimited/configurable ============================================================ 100. REFUNDS ============================================================ Support: Full refund Partial refund Item refund Payment refund Reason Approved by Refund date Reference number Audit log. ============================================================ 101. ORDER CANCELLATION ============================================================ Cancellation must require: Reason User Timestamp Optional manager approval If KOT already sent: record cancellation correctly. Do not silently delete orders. Use statuses. ============================================================ 102. DATA STATUS SYSTEM ============================================================ Avoid permanent deletion for important financial data. Use statuses such as: active inactive cancelled archived deleted closed completed ============================================================ 103. OFFLINE-READY ARCHITECTURE ============================================================ Design the frontend so POS can later support offline operation. For the first version: Implement graceful network error handling. Architecture should allow future: IndexedDB offline queue sync engine Do not claim full offline support unless actually implemented. ============================================================ 104. REAL-TIME ============================================================ Use Socket.IO for: KOT Kitchen Order status Table status Notifications Room service When POS creates KOT: Kitchen receives it immediately. When kitchen marks ready: POS can receive update. ============================================================ 105. HOTEL + RESTAURANT INTEGRATION ============================================================ This is critical. A hotel guest should be able to charge: Restaurant Room Service Laundry Minibar Other services to the room. All should post to hotel folio. Example: Guest: John Room: 204 Restaurant bill: ₹1,250 Select: Charge to Room Then: Folio: Room charge ₹5,000 Restaurant ₹1,250 Total ₹6,250 ============================================================ 106. GUEST CHECKOUT ============================================================ At checkout: Calculate: Room charges Restaurant charges Room service Laundry Minibar Other Discount Tax Payments Outstanding Generate final hotel invoice. ============================================================ 107. ROOM RESERVATION CALCULATION ============================================================ Support: Nightly rate Number of nights Extra guest Extra bed Discount Tax Advance Balance Calculate server-side. ============================================================ 108. HOUSEKEEPING ============================================================ After checkout: Room: Occupied ↓ Checkout ↓ Dirty ↓ Cleaning ↓ Inspected ↓ Available Implement workflow. ============================================================ 109. REPORT EXPORT ============================================================ Reports should support: View Filter Date range Outlet Category Payment mode Export CSV Print PDF where practical. Use server-side report generation where appropriate. ============================================================ 110. SETTINGS ============================================================ Settings modules: Company Outlet Tax Invoice POS KOT Kitchen Hotel Rooms Payments Printers Notifications Email SMS QR Loyalty Discounts Users Security Backup Integrations ============================================================ 111. COMPANY SETTINGS ============================================================ Allow: Logo Business name Legal name Address Phone Email GSTIN PAN Currency Timezone Invoice footer Terms ============================================================ 112. OUTLET SETTINGS ============================================================ Outlet: Name Address GSTIN Phone Invoice prefix KOT prefix Default tax Printer settings Opening time Closing time ============================================================ 113. PRINTER ROUTING ============================================================ Example: Pizza category → Kitchen Printer Drinks → Beverage Printer Desserts → Dessert Printer Create configurable printer routing. ============================================================ 114. EMAIL ============================================================ Nodemailer. Environment: SMTP_HOST SMTP_PORT SMTP_USER SMTP_PASSWORD MAIL_FROM MAIL_TO Use for: Invoice email Reservation confirmation Hotel booking Contact Alerts If SMTP unavailable, core POS must still work. ============================================================ 115. ENVIRONMENT VARIABLES ============================================================ Backend: PORT=5000 NODE_ENV=development DB_HOST=localhost DB_PORT=3306 DB_NAME=hotel_pos DB_USER=root DB_PASSWORD= JWT_SECRET= JWT_REFRESH_SECRET= FRONTEND_URL=http://localhost:3000 UPLOAD_DIR=uploads MAX_FILE_SIZE=10485760 SMTP_HOST= SMTP_PORT= SMTP_USER= SMTP_PASSWORD= MAIL_FROM= MAIL_TO= SITE_URL=http://localhost:3000 Frontend: REACT_APP_API_URL=http://localhost:5000/api REACT_APP_SOCKET_URL=http://localhost:5000 REACT_APP_SITE_URL=http://localhost:3000 IMPORTANT: Because this is NOT Vite, NEVER use VITE_* variables. Use Webpack EnvironmentPlugin or DefinePlugin. ============================================================ 116. NPM PACKAGES ============================================================ Frontend core: react react-dom react-router-dom axios webpack webpack-cli webpack-dev-server babel-loader @babel/core @babel/preset-env @babel/preset-react html-webpack-plugin css-loader style-loader mini-css-extract-plugin css-minimizer-webpack-plugin terser-webpack-plugin react-loading-skeleton react-helmet-async lucide-react Optional: recharts framer-motion Use them only where genuinely necessary. Backend: express mysql2 sequelize dotenv cors helmet express-rate-limit express-validator jsonwebtoken bcrypt cookie-parser multer sharp nodemailer winston socket.io uuid slugify compression Do not install unnecessary packages. ============================================================ 117. ROOT NPM SCRIPTS ============================================================ Create convenient scripts: npm run install:all npm run dev npm run build npm run backend npm run frontend npm run db:setup npm run db:migrate npm run db:seed npm run create-admin ============================================================ 118. ADMIN CREATION ============================================================ Create: npm run create-admin Prompt for: Name Email Password Company Outlet Role Hash password. Never hard-code admin credentials. ============================================================ 119. DATABASE SEED ============================================================ Seed realistic demo data: Company: "SkyBlue Hospitality" Outlet: "SkyBlue Hotel & Restaurant" Create: Admin Manager Cashier Waiter Kitchen user Receptionist Menu categories Menu items Variations Add-ons Modifiers Tables Floors Kitchen stations Inventory Recipes Suppliers Rooms Room types Sample guest Sample reservation Sample orders Taxes Settings Use realistic data. Do not use lorem ipsum. ============================================================ 120. PUBLIC / CUSTOMER FEATURES ============================================================ The architecture should allow future customer-facing: QR Menu Online Ordering Hotel Booking Customer Login Loyalty But do not build fake integrations. ============================================================ 121. AUDITABILITY ============================================================ Every important action should be traceable. Audit: Who What When Where Before After IP User agent ============================================================ 122. BACKUP ============================================================ Create backup settings and architecture. Do not implement dangerous automatic database deletion. Provide: database backup documentation mysqldump command restore command media backup guidance ============================================================ 123. DOCUMENTATION ============================================================ Create: README.md docs/ARCHITECTURE.md docs/DATABASE.md docs/API.md docs/POS-FLOW.md docs/HOTEL-FLOW.md docs/DEPLOYMENT.md docs/PRINTING.md docs/SECURITY.md ============================================================ 124. CPANEL DEPLOYMENT ============================================================ Provide exact cPanel/CloudLinux instructions. Explain: Node application Node version Application root Startup file Environment variables npm install Database creation phpMyAdmin import Frontend build Static frontend deployment API deployment Passenger Uploads Permissions Restart ============================================================ 125. VPS DEPLOYMENT ============================================================ Provide: Ubuntu Node.js MySQL Nginx PM2 SSL Firewall Environment Database Uploads Logs Restart ============================================================ 126. TESTING ============================================================ Create meaningful tests where practical. Test: Authentication Authorization Company isolation Outlet isolation Menu POS Order calculation Tax Discount Payment Split bill Refund KOT Kitchen Inventory Recipe deduction Purchase Stock transfer Hotel reservation Check-in Room charge Restaurant charge to room Folio Checkout Day end Reports Permissions File uploads ============================================================ 127. CRITICAL BUSINESS TEST ============================================================ Perform this complete scenario: 1. Login as cashier. 2. Select outlet. 3. Open POS. 4. Select Dine-In. 5. Select Table 5. 6. Add food item. 7. Add variation. 8. Add addon. 9. Add modifier. 10. Add note. 11. Submit KOT. 12. Verify kitchen receives KOT. 13. Kitchen accepts. 14. Kitchen starts. 15. Kitchen marks Ready. 16. Return to POS. 17. Generate bill. 18. Apply discount according to permission. 19. Calculate tax. 20. Split payment. 21. Print receipt. 22. Close order. 23. Verify inventory deduction. 24. Verify sales report. 25. Verify cash/payment report. ============================================================ 128. CRITICAL HOTEL TEST ============================================================ Perform: 1. Create guest. 2. Create reservation. 3. Assign room. 4. Check in. 5. Post room charge. 6. Open restaurant POS. 7. Select Room Service. 8. Select guest room. 9. Add food. 10. Submit KOT. 11. Complete kitchen. 12. Deliver room service. 13. Charge to room. 14. Verify folio. 15. Add laundry charge. 16. Checkout. 17. Calculate final bill. 18. Collect payment. 19. Print final invoice. 20. Room becomes Dirty. 21. Housekeeping changes to Cleaning. 22. Housekeeping marks Inspected. 23. Room becomes Available. ============================================================ 129. UI QUALITY TEST ============================================================ Check: Desktop Laptop Tablet Mobile POS touch screen Hotel reception Kitchen screen Admin Make sure: No horizontal overflow. No broken layout. No overlapping elements. No unreadable text. No inaccessible controls. ============================================================ 130. SKELETON REQUIREMENT ============================================================ Install and ACTUALLY USE: react-loading-skeleton Do not create fake loading states. Every API screen must show an appropriate skeleton. POS should have fast loading placeholders. Dashboard should have skeleton cards/charts. Hotel room grid should have skeleton cards. Tables should have skeleton rows. ============================================================ 131. NO MOCK FUNCTIONALITY ============================================================ Do not create: "Coming Soon" "TODO" "Fake API" "Demo Only" "Mock Data" in production code. Seed data is allowed for initial database setup. After API integration, frontend must load real database data. ============================================================ 132. NO STATIC BILLING LOGIC ============================================================ Do not calculate authoritative bills only in frontend. Frontend may preview. Backend must calculate: Subtotal Discount Tax Grand Total Payments Balance Refund Room folio Inventory deduction ============================================================ 133. TRANSACTIONAL OPERATIONS ============================================================ Use DB transactions for: Create order Payment Refund Checkout Room charge Stock deduction Purchase Stock transfer Recipe consumption Day-end close ============================================================ 134. CONCURRENCY ============================================================ Handle concurrent: Order numbers Invoice numbers Payments Stock deductions Room bookings Table assignment Use database-safe operations. ============================================================ 135. FRONTEND ROUTES ============================================================ Public: / /login /pos /dashboard /tables /orders /menu /kitchen /inventory /purchases /customers /reservations /hotel /hotel/rooms /hotel/guests /hotel/checkin /hotel/checkout /hotel/folios /housekeeping /employees /expenses /reports /settings ============================================================ 136. ADMIN / MANAGEMENT ROUTES ============================================================ /admin /admin/company /admin/outlets /admin/users /admin/roles /admin/permissions /admin/menu /admin/categories /admin/items /admin/modifiers /admin/addons /admin/combos /admin/taxes /admin/discounts /admin/coupons /admin/tables /admin/floors /admin/kitchen-stations /admin/inventory /admin/recipes /admin/suppliers /admin/purchases /admin/hotel/room-types /admin/hotel/rooms /admin/hotel/rates /admin/printers /admin/settings /admin/audit-logs ============================================================ 137. RESPONSIVE NAVIGATION ============================================================ Desktop: Sidebar. Tablet: Collapsible sidebar. Mobile: Drawer. POS: Special mobile/tablet layout. ============================================================ 138. SEARCH + FILTERS ============================================================ Implement reusable server-side filtering. Examples: Date range Outlet Category Status Payment Customer Employee Room Table Supplier ============================================================ 139. DATE / TIME ============================================================ Company/outlet timezone must be configurable. Do not assume UTC-only display. Store timestamps consistently. Display local outlet timezone. ============================================================ 140. NUMBER / CURRENCY ============================================================ Use configurable currency. Default: INR ₹ Format: ₹1,250.00 Use Intl.NumberFormat for display. Authoritative calculations remain server-side using decimal-safe methods. ============================================================ 141. HOTEL OCCUPANCY ============================================================ Calculate: Total rooms Available Occupied Reserved Cleaning Maintenance Occupancy percentage Do not count blocked/maintenance rooms incorrectly. ============================================================ 142. RESTAURANT TABLE OCCUPANCY ============================================================ Calculate: Available tables Occupied Reserved Cleaning Blocked ============================================================ 143. INVENTORY AUTOMATION ============================================================ When item is sold: If recipe exists: Deduct recipe ingredients. If inventory item itself is sold: Deduct direct stock. Record inventory transaction. Never silently change stock. ============================================================ 144. INVENTORY TRANSACTION TYPES ============================================================ purchase sale consumption wastage adjustment transfer_out transfer_in return opening_stock closing_adjustment ============================================================ 145. REPORT DATE FILTER ============================================================ Every report should support: Today Yesterday This Week This Month Last Month This Year Custom Range ============================================================ 146. PRINT PREVIEW ============================================================ Before printing: Show preview. Allow: Print Cancel ============================================================ 147. UI ICONS ============================================================ Use lucide-react for icons. Do not use a UI framework. Use consistent icon sizes. ============================================================ 148. TYPOGRAPHY ============================================================ Use a professional modern sans-serif font. Prefer system font stack to avoid unnecessary external dependency: font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; ============================================================ 149. BUTTON DESIGN ============================================================ Primary: Sky blue. Secondary: White with blue border. Danger: Red. Success: Green. Buttons should have: Hover Focus Active Disabled Loading states. ============================================================ 150. FORMS ============================================================ Use: React Hook Form Zod or equivalent. All forms: Client validation Server validation Error display Loading state Success state Reset where appropriate ============================================================ 151. DATA TABLES ============================================================ Build your own reusable DataTable using React + HTML + CSS. Features: Search Sort Pagination Column visibility where useful Row actions Status Loading skeleton Empty state Responsive mobile layout Do not use DataGrid UI framework. ============================================================ 152. MODALS ============================================================ Build reusable modal: Header Body Footer Close Escape Backdrop Focus handling Responsive ============================================================ 153. NOTIFICATION SYSTEM ============================================================ Create toast notification system. Examples: Success Error Warning Info Do not use browser alert. ============================================================ 154. ERROR BOUNDARY ============================================================ Implement React Error Boundary. If a component crashes: Show: Something went wrong. Try Again. ============================================================ 155. SECURITY OF GUEST DOCUMENTS ============================================================ Hotel guest ID documents are sensitive. Do not serve them through unrestricted public URLs. Use authenticated API access. Authorize access. Do not expose document filenames publicly. ============================================================ 156. DATA PRIVACY ============================================================ Do not expose: Guest IDs private documents passwords internal notes financial credentials through public APIs. ============================================================ 157. API RATE LIMITS ============================================================ Apply reasonable rate limits to: Login Contact Public order APIs Password changes File uploads ============================================================ 158. FINAL PACKAGE CHECK ============================================================ Before completion inspect package.json. Ensure none of these exists: next vite tailwindcss bootstrap @mui antd chakra styled-components emotion shadcn daisyui flowbite The frontend must be: React Webpack Babel HTML CSS JavaScript ============================================================ 159. PHASED IMPLEMENTATION ============================================================ You MUST build this in phases. Do not skip phases. PHASE 1: Project architecture PHASE 2: Webpack + Babel React setup PHASE 3: CSS design system PHASE 4: MySQL database schema PHASE 5: Sequelize models/migrations/relations PHASE 6: Seed data PHASE 7: Express API foundation PHASE 8: Authentication PHASE 9: Company/outlet/user/role/permission system PHASE 10: Dashboard PHASE 11: Menu management PHASE 12: Tables/floors PHASE 13: POS PHASE 14: Orders PHASE 15: Payments PHASE 16: Billing/printing PHASE 17: KOT PHASE 18: Kitchen Display System PHASE 19: Socket.IO real-time PHASE 20: Inventory PHASE 21: Recipes PHASE 22: Purchase PHASE 23: Suppliers PHASE 24: Customers/CRM PHASE 25: Loyalty PHASE 26: Discount/coupon PHASE 27: Restaurant reservations PHASE 28: Hotel rooms PHASE 29: Hotel reservations PHASE 30: Hotel guest management PHASE 31: Check-in PHASE 32: Hotel folio PHASE 33: Room service PHASE 34: Restaurant charge to room PHASE 35: Hotel checkout PHASE 36: Housekeeping PHASE 37: Cash register PHASE 38: Day end PHASE 39: Expenses PHASE 40: Employees PHASE 41: Reports PHASE 42: Multi-outlet PHASE 43: Central kitchen PHASE 44: QR menu PHASE 45: Online order architecture PHASE 46: Printer management PHASE 47: Media/uploads PHASE 48: Notifications PHASE 49: Audit logs PHASE 50: Settings PHASE 51: Skeleton loaders PHASE 52: Responsive design PHASE 53: Accessibility PHASE 54: Performance PHASE 55: Security review PHASE 56: Testing PHASE 57: Production build PHASE 58: Deployment documentation ============================================================ 160. IMPORTANT CLAUDE WORKFLOW ============================================================ You are operating inside the project directory. FIRST inspect the existing files. If the directory is empty: Create everything. If existing code exists: Analyze it before modifying. Do not blindly delete existing functionality. After each major phase: Run relevant tests/build. Fix errors before continuing. Do not accumulate known errors. ============================================================ 161. DO NOT STOP AFTER PLAN ============================================================ Do not only give me architecture. Do not only give me SQL. Do not only give me UI. Actually implement the application. Create files. Install dependencies. Run commands. Test. Fix. Continue. ============================================================ 162. DO NOT ASK NORMAL IMPLEMENTATION QUESTIONS ============================================================ Do not repeatedly ask: "Should I continue?" "Should I use this component?" "Should I create this table?" "Should I implement this?" For normal engineering decisions: Choose the most professional practical solution and continue. Only ask me if absolutely necessary information cannot be inferred. ============================================================ 163. FINAL ACCEPTANCE TEST ============================================================ Before saying COMPLETE, verify: DATABASE: - schema works - migrations work - seed works - relationships work AUTH: - login - logout - password hashing - permissions - outlet isolation POS: - new order - dine-in - takeaway - delivery - room service - customer - table - items - variation - addon - modifier - discount - tax - KOT - payment - split payment - refund - print KITCHEN: - KOT - real-time - status updates - station routing INVENTORY: - stock - purchase - recipe - consumption - wastage - transfer - low stock HOTEL: - reservation - room - guest - check-in - folio - restaurant charge - room service - checkout - housekeeping REPORTS: - sales - payments - inventory - purchase - GST - KOT - hotel occupancy - revenue - day end UI: - desktop - laptop - tablet - mobile - POS touch screen - skeleton loading - errors - empty states - responsive navigation - dark mode BUILD: npm run build must succeed. ============================================================ 164. FINAL SECURITY REVIEW ============================================================ Check: No hardcoded passwords. No exposed secrets. No SQL injection. No unrestricted guest documents. No unrestricted admin endpoints. No missing authorization. No public access to private hotel data. No unsafe file upload. No stack traces in production. ============================================================ 165. FINAL OUTPUT ============================================================ At the end provide: 1. Complete implementation summary. 2. Technology stack. 3. Database tables. 4. API modules. 5. Frontend modules. 6. Admin modules. 7. POS modules. 8. Hotel modules. 9. Restaurant modules. 10. Kitchen modules. 11. Inventory modules. 12. Reports. 13. Exact commands to run. 14. Exact database setup commands. 15. Admin creation command. 16. Environment variables. 17. Production build command. 18. cPanel deployment. 19. VPS deployment. 20. Testing performed. 21. Known remaining issues. Only mention genuine remaining issues. ============================================================ 166. START NOW ============================================================ START IMPLEMENTATION NOW. Inspect the current directory first. Then build the system phase by phase. Do not just write a plan. Do not stop after creating the database. Do not stop after creating the UI. Do not create mock functionality. Do not use Vite. Do not use Next.js. Do not use Tailwind. Do not use Bootstrap. Do not use Material UI. Do not use any UI framework. The final application must use: REACT + JSX + HTML5 + PURE CSS3 + WEBPACK + BABEL + NODE.JS + EXPRESS + MYSQL The visual identity must be: SKY BLUE + WHITE The application must feel like a professional enterprise Hotel + Restaurant POS system. Build it completely.