🍦 BSC Cafe Automation

Complete Feature Guide β€” Telegram Commands β€’ Dashboards β€’ Data Import

πŸ“± Telegram Commands

Bot: @bsc_cafe_manager_bot | Chat ID: 515510458

πŸ’° Financial & Accounting

/expense <amount> <desc>

Log expense β€” AI automatically categorizes

/daily_summary [YYYY-MM-DD]

POS sales, Paytm QR, expenses, purchases, bank match status

/reconcile

Show unmatched bank transactions count (Paytm/Zomato/Cash)

/reconcile_run

Run auto-match engine for all 6 match types

/purchase

Guided manual purchase entry

/pending_payments

Show unpaid vendor invoices

πŸ“‹ Report Tracking

/pending

Check Petpooja reports status (daily/weekly/monthly)

/skip <report_key>

Mark report as not available for period

/bankstatement

Trigger after uploading Axis Bank XLSX file

🍜 Menu & Costing

/cost <item>

Recipe cost breakdown + margin for one menu item

/low_margin

Menu items with gross margin < 50%

/recipe_coverage

Active/draft/no-recipe counts + coverage %

πŸ“¦ Stock & Variance

/stock_low

Ingredients below reorder level or zero stock

/stock_count <ing> <qty>

Log physical closing stock count

/variance

Top 5 worst variance ingredients this month

/variance <ingredient>

Last 4 weeks weekly breakdown for one ingredient

πŸ• Zomato Analytics

/zomato_summary

Last 7 days Zomato for both brands: orders, revenue, cancel rate

/peak_hours

Top 3 peak hours β€” Zomato + Dine-In with medals (πŸ₯‡πŸ₯ˆπŸ₯‰)

πŸ‘₯ Customers

/top_customers

Top 10 VIP customers (all-time) with spend + last visit + segment

/at_risk

At-risk customers (30–60 days no visit) with phone + days

/lost_customers

Lost customers (60+ days) with phone + total spend

βš™οΈ Operations & Checklists

/opening

Opening checklist (14 items, toggle + submit)

/closing

Closing checklist (14 items, warns if opening missing)

/clean <zone>

Log cleaning for a zone (fuzzy name match)

/cleaning_status

Today's cleaning status for all zones

/cleaning_history <zone>

Last 7 cleaning entries for a zone

πŸ”§ Maintenance

/issue <equipment> <desc>

Report maintenance issue with severity

/issue_close <id> [cost] [notes]

Close issue + optional expense link

/maintenance

All open issues grouped by severity

/equipment_status

All equipment β€” operational/needs_attention/under_repair count

πŸ“¦ Ordering & Vendors

/order

Auto-create draft POs for all low-stock items

/order <vendor>

Create draft PO for specific vendor

/order_confirm <po_number>

Confirm PO + get WhatsApp-ready message

/orders

All open POs β€” draft/sent/confirmed

/order_received <po_number>

Mark PO as received + prompt bill upload

/reorder_status

Ingredients with reorder levels β€” current stock vs threshold

πŸ“€ File Uploads (Auto-Detect)

πŸ“Š XLSX Files

Auto-detects: Petpooja reports / Axis Bank statement / Zomato Settlement

πŸ“„ CSV Files

Auto-detects: Zomato Business Report

πŸ“• PDF Files

Auto-detects vendor bills: Vaani Ventures / HyperPure / Blinkit

πŸ“Έ Photos

Auto-detects: Vendor bill / Paytm receipt / Daily register book (NO caption needed)

πŸ“Š Web Dashboards

Access at: http://localhost:8000/dashboard (or your production URL)

/dashboard

Main overview

KPIs, sales charts, top 10 customers with segment badges

/dashboard/pending

Report Tracker

Petpooja report status (daily/weekly/monthly) β€” pending/received/skipped

/dashboard/pl

Profit & Loss

Revenue vs expenses, brand breakdown, margin %, revenue sources per channel

/dashboard/reconcile

Bank Reconciliation

Auto-match: vendor payments, rent, Paytm QR, Zomato payouts, cash deposits

/dashboard/menu-costing

Recipe & Menu Costing

Recipe costs, ingredient unit costs, menu margin %, coverage %, no-recipe items

/dashboard/variance

Stock Variance

Theoretical vs actual consumption β€” waste detection, 30-day trends per ingredient

/dashboard/zomato

Zomato Analytics

Peak hours, day-of-week, funnel (impressions→clicks→orders), ads, cancellation trend

/dashboard/customers

Customer Segments

VIP, regular, occasional, one-time β€” at-risk & lost customers, live search

/dashboard/cleaning

Cleaning Status

Today's cleaning by zone + last 7 days log

/dashboard/maintenance

Maintenance Tracker

Equipment status grid, open issues, repair cost chart, warranty expiry

/dashboard/ordering

Ordering & Restock

Low stock table, open POs, vendor spend chart, reorder status

/admin

Filament Admin Panel

CRUD for Staff, Checklists, Expenses, Recipes, Equipment, POs, etc.

Email: mwctechnologies2023@gmail.com

πŸ“₯ Data Import Formats

POS β€” Petpooja (5 Daily/Weekly/Monthly Reports)

Upload XLSX file β†’ Auto-detects report type from Row 2 (NOT filename)

  • βœ… Item Report With Customer/Order Details β€” DAILY β†’ pos_line_items
  • βœ… Order Report: After Print Modification β€” MONTHLY β†’ pos_bill_modifications
  • βœ… KOT Report: Modifications Of Item β€” DAILY β†’ pos_kot_modifications
  • βœ… Total Customer Spend Report β€” WEEKLY β†’ pos_customer_spend
  • βœ… Tax Bifurcation: Group Wise β€” MONTHLY β†’ pos_tax_group_summary

Idempotency: Replace-by-date-range (delete + reinsert same period)

Bank Statements β€” Axis Bank (XLSX)

Upload "Smart Statement Report" XLSX β†’ Auto-categorizes each transaction

  • Header: Row 15 | Data starts: Row 16
  • Amount format: "INR 1,230.00" (includes comma)
  • Date format: DD/MM/YYYY

Auto-category rules: POS Settlement, Vendor Payment, TDS, Rent, Bank Charges, Owner Withdrawal, etc.

Zomato Settlement (XLSX Multi-Sheet)

Upload settlement report β†’ Detects key sheets automatically

  • πŸ“Š Order Level sheet (data row 9+) β†’ zomato_orders, zomato_settlements
  • πŸ“‹ HSummary sheet (row 2) β†’ metadata
  • πŸ’° Addition Deductions Details β†’ ads

Both brands tracked: BSC Zomato (21896844) + Korean Kick Zomato (22485506)

Zomato Business Report (CSV)

Daily CSV report β†’ zomato_daily_metrics

Vendor Bills (Auto-Detection)

πŸ“• PDF Bills

Vaani Ventures, HyperPure, Blinkit β€” parsed & saved to purchases

πŸ“Έ Photo Bills

Kunal (Syrups), DMart β€” Gemini OCR β†’ analyzeVendorBill()

Daily Register Book (Photo)

πŸ“Έ Upload photo β†’ Auto-detects register vs Paytm receipt

Register format:
Cash Balance β†’ Cash Sale β†’ subtotal β†’ Exp β†’ Owner Taken β†’ Shortage β†’ Petty Cash closing

No caption needed! Auto re-runs Paytm OCR if paytm_total detected

Paytm EDC Receipt (Photo)

πŸ“Έ QR code machine thermal printout β†’ paytm_edc_daily

Auto-matched against Petpooja UPI orders: Β±β‚Ή1 amount + Β±15 min time

βš™οΈ Local Development Setup

πŸ“ Project Location

/Users/vivek/Documents/Claude/Projects/BSC Cafe Automation Project/bsc

πŸš€ Start Laravel Server

cd bsc && php artisan serve

Port: 8000 (or 8001/8002 if busy)

πŸ“¦ Queue Worker

php artisan queue:work

Run in separate terminal

πŸ”— Ngrok Tunnel

ngrok http 8000

For Telegram webhook

πŸ—„οΈ Database

Local: bsc_local (XAMPP MariaDB)

User: bsc_user

phpMyAdmin: http://localhost/phpmyadmin

πŸ”‘ Key URLs

Dashboard: http://localhost:8000/dashboard

Admin: http://localhost:8000/admin

Filament Email: mwctechnologies2023@gmail.com

πŸ’» Key Code Locations

Developer reference β€” where things are built

πŸ€– Core Systems

app/Http/Controllers/Api/TelegramWebhookController.php

Telegram command routing & webhooks

routes/console.php

All scheduled tasks (04:00 IST β†’ 23:30 IST)

routes/web.php

Dashboard & admin panel routes

πŸ“₯ Data Importers

app/Services/Importers/

  • β€’ AxisBankImporter.php
  • β€’ ZomatoSettlementImporter.php
  • β€’ ZomatoBusinessReportImporter.php
  • β€’ PurchaseImporter.php

app/Services/Parsers/

Vendor bill PDF/photo parsers (Vaani, HyperPure, Blinkit, etc.)

🧠 Business Logic

app/Services/Ocr/

  • β€’ GeminiOcrService.php (OCR engine)
  • β€’ RegisterPhotoProcessor.php (Register book parsing)
  • β€’ VendorBillPhotoProcessor.php (Vendor bill saving)

app/Services/Recipes/

  • β€’ RecipeImporter.php
  • β€’ RecipeCostCalculator.php
  • β€’ UnitConverter.php

app/Services/Stock/

  • β€’ IngredientCostUpdater.php
  • β€’ VarianceReportService.php

app/Services/Reconciliation/

  • β€’ PaytmBankMatcher.php
  • β€’ ZomatoBankMatcher.php
  • β€’ CashDepositMatcher.php

πŸ“Š Dashboards & Views

resources/views/dashboard/

  • β€’ index.blade.php (Main overview)
  • β€’ pl.blade.php (P&L)
  • β€’ reconcile.blade.php (Bank reconciliation)
  • β€’ menu-costing.blade.php (Recipe costs)
  • β€’ variance.blade.php (Stock variance)
  • β€’ zomato.blade.php (Zomato analytics)
  • β€’ customers.blade.php (Customer segments)
  • β€’ cleaning.blade.php (Cleaning tracker)
  • β€’ maintenance.blade.php (Equipment)
  • β€’ ordering.blade.php (PO & stock)

βš™οΈ Filament Admin Resources

app/Filament/Resources/

  • β€’ StaffResource.php
  • β€’ IngredientResource.php
  • β€’ MenuItemResource.php
  • β€’ RecipeResource.php
  • β€’ ExpenseResource.php
  • β€’ ExpenseCategoryResource.php
  • β€’ PurchaseOrderResource.php
  • β€’ EquipmentResource.php
  • β€’ ChecklistTemplateResource.php

πŸ“¦ Artisan Commands

app/Console/Commands/

All scheduled commands + manual commands (recipe import, bank recategorize, etc.)

πŸ“Œ Quick Reference

πŸ“ž Telegram Bot

@bsc_cafe_manager_bot

Chat ID: 515510458

πŸͺ Two Brands, One Kitchen

BSC (Dine-in + Zomato) | Korean Kick (Zomato only)

πŸ’Ύ Database

MySQL (XAMPP Local) | cPanel Prod

πŸ€– OCR Engine

Gemini 2.5 Flash (Active)