Producción: https://go-feed-me.vercel.app/ Aplicación web para gestionar pedidos de almuerzo en empresas. Permite cargar menús diarios, que los usuarios elijan sus platos, y ver un resumen de todos los pedidos.
- Carga de menús: Parser automático de menús en formato de texto
- Menús reutilizables: Guarda menús con nombres para reutilizarlos fácilmente
- Pedidos de usuarios: Interfaz simple para que cada empleado haga su pedido
- Resumen administrativo: Vista consolidada de todos los pedidos del día
- Control de estado: Abrir/cerrar ventana de pedidos
- Exportar pedidos: Copia todos los pedidos en formato optimizado para WhatsApp/Telegram
- Base de datos Postgres: Persistencia real con Vercel Postgres
# Instalar dependencias
npm install
# Configurar base de datos (ver sección Database Setup)
# Ejecutar los scripts SQL en orden
# Iniciar servidor de desarrollo
npm run devLa aplicación estará disponible en http://localhost:3000
/- Pantalla de usuario para hacer pedidos/admin/menu- Pantalla para cargar el menú del día/admin/resumen- Resumen de todos los pedidos
Puedes usar Vercel Postgres, o cualquier base de datos PostgreSQL.
# 1. Schema inicial
psql -d tu_database -f sql/schema.sql
# 2. Migraciones (si actualizas una DB existente)
psql -d tu_database -f sql/001_increase_varchar_limits.sql
psql -d tu_database -f sql/002_add_menu_name.sql
psql -d tu_database -f sql/003_remove_date_unique.sql
psql -d tu_database -f sql/004_create_master_menus.sql
psql -d tu_database -f sql/005_add_category_to_orders.sqlCrear archivo .env.local en la raíz:
# Para Vercel Postgres
POSTGRES_URL="postgres://..."
POSTGRES_URL_NON_POOLING="postgres://..."
# O cualquier otra base Postgres
DATABASE_URL="postgresql://user:password@host:port/database"-
Cargar el menú (
/admin/menu):- Opcionalmente darle un nombre al menú (ej: "Menú Verano")
- Pegar el texto completo del menú del restaurante
- El parser automáticamente detectará categorías y platos
- El menú se guarda y está listo para usar
- Los menús anteriores aparecen como botones para reutilizarlos
-
Ver resumen (
/admin/resumen):- Ver todos los pedidos agrupados por plato
- Abrir/cerrar ventana de pedidos
- Copiar todos los pedidos al clipboard en formato optimizado
- Actualizar en tiempo real
- Ir a la página principal (
/) - Ingresar tu nombre
- Seleccionar el plato deseado del menú
- Agregar observaciones (opcional)
- Confirmar pedido
GoFeedMe/
├── app/ # Next.js App Router
│ ├── page.tsx # Página principal (usuarios)
│ ├── layout.tsx # Layout global
│ ├── globals.css # Estilos globales
│ ├── admin/
│ │ ├── menu/
│ │ │ └── page.tsx # Cargar menú
│ │ └── resumen/
│ │ └── page.tsx # Resumen de pedidos
│ └── api/ # API Routes
│ ├── menu/
│ ├── orders/
│ └── status/
├── lib/
│ ├── db.ts # Funciones de base de datos
│ └── menuParser.ts # Parser de menús
├── sql/ # Scripts SQL
│ ├── schema.sql # Schema inicial
│ └── 00X_*.sql # Migraciones
├── ejemplo-menu.md # Ejemplo de formato de menú (markdown)
└── README.md
Ver DEPLOYMENT.md para instrucciones detalladas de deployment en Vercel.
URL de producción: https://go-feed-me.vercel.app/
La app expone un servidor MCP en /mcp compatible con clientes como Claude Desktop o VS Code Copilot.
JSON de configuración:
{
"mcpServers": {
"GoFeedMe": {
"type": "http",
"url": "https://go-feed-me.vercel.app/mcp"
}
}
}Tools disponibles: get_menu, get_orders, get_orders_status, place_order.
- Frontend: Next.js 16 con React 19
- Styling: Tailwind CSS 4
- Database: PostgreSQL (Vercel Postgres)
- TypeScript: Tipado completo
- Deploy: Vercel
El parser acepta menús en formato markdown estándar. A continuación se detallan todos los elementos soportados:
Usar ## para definir categorías. Se pueden incluir emojis:
## Ensaladas :green_salad:
## Platos Principales :stew:Usar blockquotes (>) para agregar notas informativas a la categoría:
## Pasta :spaghetti:
> Todas las pastas son caserasUsar blockquotes con listas para definir opciones que se aplican a múltiples platos:
## Pasta :spaghetti:
> Salsas:
> - Filetto
> - Bechamel
> - Bolognesa
> - PestoUsar ### para definir platos:
### POLLO GRILLADO
Pechuga a la parrilla con guarnición de ensalada mixtaAgregar una lista inmediatamente después del nombre del plato:
### MILANESA
- Ternera
- Pollo
- Berenjena
Con lechuga, tomate y mayonesaAgregar un asterisco (*) al final del nombre para que use las opciones definidas en la categoría:
### RAVIOLES*
- De espinaca y ricota
- De jamón y quesoEn este caso el usuario deberá elegir:
- La variante del plato (De espinaca o De jamón)
- La salsa de la categoría (Filetto, Bechamel, etc.)
## Pasta :spaghetti:
> Salsas:
> - Filetto
> - Bechamel
> - Bolognesa
### RAVIOLES*
- De espinaca y ricota
- De jamón y queso
### ÑOQUIS*
- De papa
- De espinaca
### LASAGNA
Lasagna de carne con salsa bolognesa caseraResultado:
- RAVIOLES y ÑOQUIS tendrán radio buttons para elegir variante + salsa
- LASAGNA solo mostrará la descripción (no usa salsas)
Ver ejemplo-menu.md para un ejemplo completo y funcional.
Mejoras sugeridas:
- Autenticación de usuarios
- Historial de pedidos por usuario
- Estadísticas de platos más pedidos
- Notificaciones cuando se cierra el pedido
- Soporte para múltiples restaurantes
- Modo oscuro
MIT