# Peppar — Integrations & Technical Stack

## Payment & billing integrations

| Integration | Purpose |
|-------------|---------|
| **PayU** | Guest online order payments (UPI, cards) — per-restaurant merchant keys |
| **Razorpay** | Peppar SaaS subscription billing for restaurant partners |

In-restaurant payments: Cash, UPI, Card, COD — recorded in POS (no gateway required).

## Cloud infrastructure

| Service | Purpose |
|---------|---------|
| **AWS S3** | Restaurant logos, menu images, file storage |
| **AWS SNS** | Transactional SMS (order updates, campaigns) |
| **AWS SES** | Transactional and marketing email |

## Authentication & social

| Integration | Purpose |
|-------------|---------|
| **Spring Social** | Facebook, Twitter, Google OAuth for guest sign-in |
| **JWT** | Customer SPA and platform admin API auth |
| **Spring Security sessions** | Staff console auth |

## Realtime

| Technology | Purpose |
|------------|---------|
| **CometD / Bayeux** | Live order updates, KDS push, print job notifications, guest toasts |

Channels include user order channel and print agent channel per device.

## Documents & QR

| Technology | Purpose |
|------------|---------|
| **ZXing + Flying Saucer** | Branded QR code PDF generation for tables |
| **Apache POI** | Excel import/export for menu, reports, customers |

## Maps & location

| Integration | Purpose |
|-------------|---------|
| **Google Maps** | Restaurant address linking |

## Monitoring

| Integration | Purpose |
|-------------|---------|
| **Sentry** | Frontend error monitoring (customer React app) |

## Print stack

| Component | Purpose |
|-----------|---------|
| **KotEscPosBuilder** | Server-side ESC/POS byte generation for KOT |
| **InvoiceEscPosBuilder** | Server-side ESC/POS for tax invoices |
| **print-agent/** | Electron desktop tray app (Node.js) |
| **menubeez-merchant** | Android WebView + native Bluetooth print bridge |
| **menubeez-native-bridge.js** | WebView ↔ native print API |

## Application stack

| Layer | Technology |
|-------|------------|
| Backend | Java 8, Spring MVC 4, Hibernate, MySQL 8, Flyway |
| Customer UI | React 19, TypeScript, Redux Toolkit, React Router 7 |
| Staff UI | JSP + Apache Tiles |
| Platform admin | React 19 + Vite (`admin-console/`) |
| Build | Maven WAR + frontend-maven-plugin |

## API surfaces

| Prefix | Auth | Purpose |
|--------|------|---------|
| `/api/restaurants/*` | Mostly public GET | Customer SPA data |
| `/api/auth/*` | Public / JWT | Customer & partner auth |
| `/api/print-agent/*` | Device token | Print Agent / Merchant App |
| `/api/v1/admin/*` | JWT + platform owner | Admin console |

## Not integrated (as of June 2026)

- Swiggy, Zomato order sync  
- Tally, QuickBooks, Zoho accounting  
- Stripe, PhonePe, Paytm (beyond PayU guest / Razorpay SaaS)  
- WhatsApp Business API (WhatsApp contact link only on website)  
- Offline mode / local-first sync  

## LLM / AI discovery files

| URL | Purpose |
|-----|---------|
| `/llms.txt` | Curated index for AI crawlers (llmstxt.org spec) |
| `/llms-full.txt` | Single-fetch full product context |
| `/ai/*.md` | Structured markdown docs for inference |
| `/sitemap.xml` | Search engine URL index |
| `/robots.txt` | Crawl rules + sitemap pointer |

## Brand colors (for UI references)

- Primary: `#F5C21A` · Hover: `#D4A416` · Text: `#1F2428`  
- Page bg: `#FFFFFF` · Footer: `#1F2428` · Font: Manrope  
