Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Al Toque es un sistema para gestionar un restaurante completo —salón de mesas, pedidos, cocina, caja, stock y reportes— y también centros culturales, escuelas, talleres, mercados y nodos: inscripcione
Translation pending
BusinessPHP · BladeGitHub @Smansilla98OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Sistema de gestion para restaurantes: mesas, pedidos, cocina, caja, stock y reportes con permisos por rol. Laravel 10 + PostgreSQL + Docker, arquitectura por capas y API REST documentada. Demo en vivo: admin/admin123
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Aplicación web para la operación completa de un restaurante: salón, pedidos, comandas de cocina, caja, stock, reportes y permisos por rol.
| Usuario | Contraseña | Rol |
|---|---|---|
admin | admin123 | Administrador (acceso completo) |
Entorno de demostración con datos de prueba. Podés crear, editar y borrar libremente.
| Salón de mesas | Pedido |
|---|---|
| Caja | Reportes |
|---|---|
| Capa | Ubicación | Responsabilidad |
|---|---|---|
| Controladores HTTP (API) | app/Http/Controllers/Api/ | Request/response JSON, autorización (Gate / policies), delegación al servicio |
| Controladores web (legado gradual) | app/Http/Controllers/ | Vistas Blade, Livewire; se documentan puntos de entrada hacia la nueva API |
| Servicios | app/Services/ | Reglas de negocio; ProductService, UserService, ClientService, OrderRestService orquestan repositorios y, en pedidos, reutilizan OrderService / Eloquent para no romper observers y notificaciones |
| Repositorios | app/Repositories/ | Acceso a datos con PDO y sentencias preparadas |
| Modelos | app/Models/ | Entidades Eloquent (persistencia web y compatibilidad) |
| Requests | app/Requests/Api/ | Validación y saneo de entrada API |
| Núcleo | app/Core/ | Database (singleton PDO), Logger, Container (DI mínima), ApiRouter (tabla método+path) |
routes/api.php
→ middleware auth:sanctum
→ ApiRouter::sharedRestRoutes() (products, orders, clients)
→ role:ADMIN,GERENTE → ApiRouter::adminUserRestRoutes()
password_hash / verificación compatible con el stack Laravel.app/Requests/Api/*.strip_tags, filter_var en emails donde aplica).mbstring, openssl, pdo_mysql, tokenizer, xml, ctype, json, bcmath)git clone <repo> && cd restaurante-laravelcomposer installnpm installcp .env.example .env (o copiar desde tu plantilla; configurar APP_KEY, DB, etc.)php artisan key:generate.envphp artisan migrate --seedphp artisan serve y en otra terminal npm run devServicios: nginx (puerto 8080), PHP-FPM (app), MySQL 8.
docker compose up -d --build
Dentro del contenedor app (o en el host con la misma .env):
composer install
cp .env.example .env # ajustar DB_HOST=mysql, DB_DATABASE=restaurante, etc.
php artisan key:generate
php artisan migrate --seed
http://localhost:808033060 (usuario laravel / contraseña secret según docker-compose.yml).Variables útiles en compose (ya definidas en docker-compose.yml para el servicio app):
DB_HOST=mysqlDB_DATABASE=restauranteDB_USERNAME=laravelDB_PASSWORD=secretAutenticación: Laravel Sanctum (token Bearer o cookie según configuración SPA).
Cabecera recomendada: Accept: application/json.
/api)| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/products | Lista productos del restaurante |
| GET | /api/products/{id} | Detalle |
| POST | /api/products | Alta (políticas: rol con permiso de creación) |
| PUT/PATCH | /api/products/{id} | Actualización |
| DELETE | /api/products/{id} | Baja (no permite si hay ítems en pedidos) |
| GET/POST | /api/orders | Lista / crear (crear usa OrderService interno) |
| GET/PUT/PATCH/DELETE | /api/orders/{id} | CRUD acotado por policies |
| GET/POST | /api/clients | Clientes CRM (clients); requiere migración 2026_03_29_000001 |
| GET/PUT/PATCH/DELETE | /api/clients/{id} | |
| GET/POST | /api/users | Solo ADMIN y GERENTE (middleware role) |
| GET/PUT/PATCH/DELETE | /api/users/{id} |
Respuesta típica: { "success": true, "data": ... } o errores de validación 422.
| Método | Ruta | Descripción |
|---|---|---|
| POST | /api/auth/select-branch | Elige la sucursal activa (restaurant_id); devuelve un par de tokens atado a ella. login y me informan branches y requires_branch_selection |
| GET | /api/tables?sort= | Mesas en el mismo orden que la web: number (natural, por defecto), status o capacity |
| GET/POST | /api/stock/reset | Puesta a punto: vista previa y ejecución (permiso stock.reset, confirmación PUESTA A PUNTO) |
| GET | /api/kitchen/board | Tablero de cocina de solo lectura (pedidos + ítems + server_time) |
Los ítems de pedido aceptan variant_id: si el producto tiene variantes activas es obligatorio y define el precio de la línea.
GET /api/products devuelve variants en cada producto.
Pizza con control de stock y una variante por sabor (Napolitana $20.000, Jamón y morrones $24.000).
Cada venta descuenta una pizza y, si la variante tiene insumos propios, también esos insumos.Fernet con coca, medida del vaso 500 cc, receta 30% Fernet + 70% Coca.
Cada venta descuenta 150 y 350 de cada insumo (los insumos se llevan en la misma unidad que el vaso: ml/cc)./api/v1/*Se mantienen rutas anteriores (tables, orders parcial, products lectura extendida) bajo /api/v1/....
GET /api/user (Sanctum)storage/logs/app.log (clase App\Core\Logger).storage/logs/laravel.log.Requiere MySQL/MariaDB con una base testing aparte (las migraciones no corren en SQLite).
Guía completa, variables y qué cubre cada archivo: docs/TESTING.md.
DB_DATABASE=testing DB_USERNAME=test DB_PASSWORD=test php artisan test
./vendor/bin/pintvendor/bin/phpstan analyse (también en el CI)composer auditAñadí la carpeta docs/screenshots/ para que puedas versionar capturas (dashboard, pedidos, caja, respuestas de la API en Postman/Insomnia). Sustituí los placeholders por imágenes reales cuando quieras publicar la documentación.
.env, permisos de storage/ y bootstrap/cache/, php artisan key:generate.api.clients: ejecutar php artisan migrate tras actualizar el código.Si cambian reglas de roles o flujos de pedido, actualizá policies (app/Policies) y este README para mantener coherencia entre web y API.