How ropastrana/qr-cafe-ordering-system works
This is a QR-based café self-ordering and cashier/POS system. Customers browse a menu, submit orders without accounts, and track their status; cashiers authenticate, take payment or enter walk-ins, advance orders through preparation, and review history and sales. The PHP API separates HTTP endpoints, services, repositories, and shared request/session/database handling. The README documents the broader customer and cashier screens; sampled source confirms the order, payment, repository, and shared API behavior. Frontend internals are not sampled, so their detailed calls are not inferred.
Main entry points: qr-cafe-cashier Cashier POS · qr-cafe Customer app · OrderService.php Order service · OrderRepository.php Order repository
Components 30
Customer ordering
- Customer app
qr-cafe-customer-html/qr-cafe - E-receipt page
receipt
Cashier POS
- Cashier POS
qr-cafe-cashier-html/qr-cafe-cashier
API endpoints
- Self-order API
api/orders.php - Menu API
api/menu.php - Tracking API
api/track.php - Receipt API
api/receipt.php - Login and session API
api/login.php - Queue API
api/queue.php - Payment API
api/pay.php - Status API
api/status.php - Walk-in API
api/walkin.php - History API
api/history.php
Order domain
- Menu repository
api/src/MenuRepository.php - Order repository
api/src/OrderRepository.php - Cafe database
database/cafe_pos.sql - Order service
api/src/OrderService.php - Payment service
api/src/PaymentService.php - Login service
api/src/LoginService.php
API foundations
- Request parsing
api/src/Request.php - JSON responses
api/src/Response.php - Cashier sessions
api/src/Session.php - Rate limiting
api/src/RateLimiter.php - PDO connection
api/src/Database.php - API bootstrap
api/src/bootstrap.php - Error handling
api/src/ErrorHandler.php - API exceptions
api/src/ApiException.php - Payment exceptions
api/src/PayException.php
Other components
- Customer
- Cashier
Connections 38
- Customer → Customer app: uses
README.md - Customer app → Menu API: fetches menu
README.md - Customer app → Self-order API: places orders
README.md - Customer app → Tracking API: polls status
README.md - Customer app → E-receipt page: opens receipt
README.md - Menu API → Menu repository: reads menu
api/menu.php - Self-order API → Order service: creates order
api/orders.php - Tracking API → Order repository: reads tracking
api/track.php - Receipt API → Order repository: reads receipt
api/receipt.php - E-receipt page → Receipt API: loads receipt data
README.md - Cashier → Cashier POS: uses
README.md - Cashier POS → Login and session API: signs in
README.md - Cashier POS → Queue API: views queue
README.md - Cashier POS → Payment API: takes payment
README.md - Cashier POS → Walk-in API: enters walk-ins
README.md - Cashier POS → Status API: advances orders
README.md - Cashier POS → History API: views history
README.md - Login and session API → Login service: authenticates
api/login.php - Queue API → Order repository: reads queue
api/queue.php - Payment API → Payment service: settles payment
api/pay.php - Status API → Order service: changes status
api/status.php - Walk-in API → Order service: creates walk-in
api/walkin.php - History API → Order repository: reads history
api/history.php - Order service → Payment service: settles walk-in
api/src/OrderService.php - Order service → Cafe database: prices and saves
api/src/OrderService.php - Payment service → Cafe database: records payment
api/src/PaymentService.php - Order repository → Cafe database: reads orders
api/src/OrderRepository.php - Menu repository → Cafe database: reads menu
- Login and session API → Cashier sessions: starts session
api/login.php - Login and session API → Rate limiting: limits attempts
api/login.php - Self-order API → Rate limiting: limits orders
api/orders.php - Self-order API → Cashier sessions: checks CSRF
api/orders.php - Request parsing → API exceptions: raises errors
api/src/Request.php - Payment exceptions → API exceptions: extends
api/src/PayException.php - Error handling → API exceptions: handles
api/src/ErrorHandler.php - Error handling → JSON responses: sends errors
api/src/ErrorHandler.php - API bootstrap → Error handling: registers
api/src/bootstrap.php - PDO connection → Cafe database: connects to
api/src/Database.php