Ordervista is a full-stack, responsive web application that digitizes and streamlines restaurant order management from a single centralized platform. Traditional restaurant operations often rely on paper tickets, verbal communication, and disconnected tools — Ordervista replaces that fragmented workflow with a unified system where menu items, live orders, kitchen commands, receipts, and sales reports all live in one place. Built as a capstone engineering project, it covers the complete order lifecycle: a customer browses the menu and places an online order, an operator manages in-person orders and kitchen flow, and an administrator oversees the catalog, staff, and business analytics — all secured by role-based JWT authentication.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ytabeloved/ordervista/llms.txt
Use this file to discover all available pages before exploring further.
User Roles
Every Ordervista account is assigned one of three roles. Each role unlocks a dedicated interface and a specific set of capabilities tailored to that user’s responsibilities.Administrator
Manages users, product catalog, and categories. Views the administrative dashboard, estimated sales reports, and top-selling product analytics with date-range filters.
Operator
Handles day-to-day restaurant operations: views active orders, creates in-person orders, advances order statuses, manages kitchen commands, and generates operational receipts.
Customer
Self-registers and logs in to browse the live menu, add items to cart, place online orders, manage delivery addresses, and track their own order history.
Key Capabilities
Ordervista covers the full spectrum of restaurant order operations:- Menu management — Create, edit, and toggle products and categories, including name, description, price, stock, image, and availability status.
- Order lifecycle — Support for both online (customer-placed) and in-person (operator-placed) orders, with statuses that advance from creation through completion.
- Kitchen commands — Operators generate kitchen-facing command tickets (comandas) tied directly to active orders, keeping the kitchen informed in real time.
- Receipts — Operational receipts can be generated for completed orders, providing a printable record of every transaction.
- Reports and analytics — Administrators query estimated revenue, total orders, average ticket size, customers served, daily sales trends, and top-selling products — all filterable by date range.
Technology Stack
Frontend
| Technology | Version | Role |
|---|---|---|
| React | 19 | UI component framework |
| Vite | 8 | Build tool and dev server |
| React Router DOM | 7 | Client-side routing |
| Axios | 1 | HTTP client for API calls |
| Chart.js / react-chartjs-2 | 4 / 5 | Reports and analytics charts |
| Lucide React | 1 | Icon library |
Backend
| Technology | Version | Role |
|---|---|---|
| Node.js | LTS | JavaScript runtime |
| Express | 5 | Web framework and API router |
| MySQL2 | 3 | MySQL driver for Node.js |
| jsonwebtoken | 9 | JWT generation and validation |
| bcryptjs | 3 | Password hashing |
| dotenv | 17 | Environment variable management |
| CORS | 2 | Cross-origin request handling |
Database
Ordervista uses a MySQL relational schema with 10 tables:ROLES, USUARIOS, CATEGORIAS, PRODUCTOS, PEDIDOS, DETALLE_PEDIDO, ESTADOS_PEDIDO, TIPOS_PEDIDO, DIRECCIONES, and COMANDAS. Table names are uppercase to ensure compatibility with case-sensitive Linux environments such as Render.
Deployment Targets
Ordervista is designed for deployment across three complementary services:- Frontend → Vercel — The React/Vite SPA is deployed from the
frontend/directory. Avercel.jsonrewrite rule ensures all paths are handled by React Router. - Backend → Render — The Express API is deployed as a Web Service from the
backend/directory, started withnpm start. - Database → Aiven MySQL — The production database is hosted on Aiven with SSL-secured connections. Table names in uppercase prevent case-sensitivity issues on Linux hosts.
Because all three tiers use free-tier plans, cold-start latency is expected after periods of inactivity. Before running functional tests, verify that the Aiven database is active, wake the Render backend by hitting
/api/health, and then open the Vercel frontend.