CafeteriaPM is a complete point-of-sale and operations platform for cafeterias and small restaurants. It exposes a FastAPI REST backend that powers a Flask admin web panel and a React Native mobile app — giving every staff role (admin, waiter, kitchen, cashier) a purpose-built interface to manage tables, orders, inventory, sales, and expenses in real time.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/123048152-JJDS/CafeteriaPM_S203/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Get the API running locally and make your first authenticated request in minutes.
Architecture
Understand how the API, web panel, and mobile app fit together.
API Reference
Explore every endpoint — authentication, orders, inventory, sales, and more.
Order Lifecycle
Follow an order from creation through payment and see how stock is managed automatically.
What’s included
CafeteriaPM is composed of three applications that share a single PostgreSQL database through the REST API:REST API
FastAPI backend with JWT authentication, role-based access control, and automatic OpenAPI docs at
/docs.Admin Web Panel
Flask application for administrators — dashboards, user management, reports, and full operational oversight.
Mobile App
React Native (Expo) app with three role-specific modules: mesero, caja (cashier), and cocina (kitchen).
Key capabilities
Role-Based Access
Four roles — admin, mesero, caja, cocina — each with precisely scoped API permissions.
Order Management
Full order lifecycle with kitchen queue, status transitions, and PDF ticket generation.
Inventory & Purchases
Track ingredients, receive low-stock alerts, and auto-deduct stock when orders are fulfilled.
Sales & Expenses
Record sales with multiple payment methods, log operational expenses, and calculate change.
Table Management
Manage dining tables with live status — disponible, ocupada, or reservada.
Reports
Export PDF and XLSX reports for sales, expenses, products, orders, and inventory.
Get started in 4 steps
Deploy the API
Clone the repo, configure your
.env file with database credentials and a JWT secret, then start the FastAPI server with uvicorn. See API Deployment.Authenticate
Send a
POST /auth/login request with admin credentials to receive a Bearer token. See Authentication.Seed initial data
Run the included seed scripts to create roles, order states, payment methods, and a default admin user. See Quickstart.
Connect a client
Point the admin web panel or mobile app at your API URL and log in. See Web Panel and Mobile App.