Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Henry4ndrew/saborGestion/llms.txt

Use this file to discover all available pages before exploring further.

SaborGestion covers the full lifecycle of a restaurant shift: from opening the dining room and taking the first order, through kitchen ticket management and delivery coordination, to generating invoices, registering payments, and closing the cash register. Each of the four user roles sees only the tools relevant to their job.

Key features

Role-based access

Four roles — admin, mesero, cocinero, cajero — each with their own dashboard and route-level permissions enforced by RoleMiddleware.

Product catalog & inventory

Manage menu items and track ingredient stock levels. The sidebar shows a live notification badge when inventory counts change.

Tables & orders

Waiters assign tables, place orders, and dispatch kitchen tickets (comandas). Order status moves through pendiente → preparando → listo → entregado.

Delivery management

A dedicated delivery module lets cashiers and admins track off-premises orders alongside dine-in service.

Billing & payments

Generate pre-invoices, convert them to final invoices, register cash and card payments, and run end-of-day cash-register closings.

Admin user management

Administrators can create, view, edit, and delete user accounts with full CRUD through the UsuarioController.

System architecture

SaborGestion is a server-rendered monolith — no separate API client. All business logic lives in Laravel controllers, views are compiled Blade templates, and styles are utility classes from Tailwind CSS.
LayerTechnology
FrameworkLaravel 12 (laravel/framework ^12.0)
Auth scaffoldingLaravel Breeze (laravel/breeze ^2.4)
ViewsBlade templates
StylesTailwind CSS
IconsFont Awesome
DatabaseMySQL (database name: saborGestion)
Build toolVite (via npm run build)
TestingPHPUnit 11

Request flow

  1. A browser request hits a route defined in routes/web.php.
  2. Laravel’s auth middleware verifies the session; unauthenticated requests redirect to /login.
  3. The RoleMiddleware checks Auth::user()->role against the roles declared on the route. Unauthorized access returns a 403.
  4. The matching controller method queries the database and returns a Blade view.

Route groups at a glance

All application routes (except the home page and auth routes) sit inside an auth middleware group. Individual resource routes apply an additional role middleware with the allowed roles:
// routes/web.php
Route::middleware(['auth'])->group(function () {
    Route::resource('productos', ProductoController::class)->middleware('role:admin,cocinero');
    Route::resource('mesas', MesaController::class)->middleware('role:admin,mesero');
    Route::resource('pedidos', PedidoController::class)->middleware('role:admin,cajero');
    Route::resource('usuarios', UsuarioController::class)->middleware('role:admin');
    // ...
});

Next step

Installation

Set up SaborGestion on your local machine.

Build docs developers (and LLMs) love