Sistema web para calcular y gestionar costos de recetas de repostería y pastelería, incluyendo materiales, insumos y mano de obra.
- Frontend: Next.js + Vite
- Estilos: TailwindCSS + shadcn/ui
- Lenguaje: TypeScript
- Desarrollo Local: Docker
- Repositorio: GitHub (privado)
- Despliegue: Vercel
- Iconos: Lucide React
-
1.1 Configurar estructura inicial del proyecto Next.js con Vite
- Inicializar proyecto Next.js
- Configurar Vite
- Instalar y configurar TailwindCSS
- Configurar shadcn/ui
- Configurar TypeScript
- Crear estructura de carpetas base
-
1.2 Configurar Docker para ambiente local de desarrollo
- Crear Dockerfile
- Crear docker-compose.yml
- Configurar variables de entorno
- Documentar comandos Docker
-
1.3 Inicializar repositorio Git y configurar GitHub (privado)
- Inicializar Git
- Crear repositorio privado en GitHub
- Configurar .gitignore
- Primer commit y push
- Configurar ramas (main, develop)
-
2.1 Diseñar modelo de datos
- Definir tipos TypeScript para Productos
- Definir tipos TypeScript para Recetas
- Definir tipos TypeScript para Materiales
- Definir tipos TypeScript para Unidades de Medida
- Definir tipos TypeScript para Configuración de Mano de Obra
- Crear enums y constantes
-
2.2 Implementar lógica de cálculos
- Sistema de conversión de unidades (gramos, litros, onzas, unidad)
- Cálculo de costo por material
- Cálculo de costo total de materiales
- Cálculo de costo de mano de obra
- Cálculo de costo total de receta
- Cálculo de precio de venta sugerido
- 3.1 Implementar sistema de gestión de productos
- Crear componente ProductoForm
- Crear componente ProductoList
- Implementar CRUD de productos
- Validaciones de formulario
- Búsqueda y filtrado de productos
- Soporte para múltiples unidades de medida
- Cálculo automático de precio por unidad
- 4.1 Implementar sistema de costo de mano de obra configurable
- Crear componente ConfiguracionForm
- Configuración global de costo por hora
- Configuración de moneda
- Persistencia de configuración
- Componente CostoManoObraInput para recetas
- 5.1 Implementar sistema de gestión de recetas
- Crear componente RecetaForm
- Crear componente RecetaList
- Crear componente MaterialSelector
- Crear componente DesgloseCostos
- Implementar CRUD de recetas
- Selector de materiales/insumos
- Input de tiempo de preparación
- Cálculo automático de costos (materiales + mano de obra)
- Cálculo de precio de venta sugerido
- Búsqueda y filtrado de recetas
- Cálculo de margen de ganancia
- Precio de venta sugerido
- 6.1 Crear interfaz de usuario moderna
- Dashboard principal
- Navegación principal (Navbar/Sidebar)
- Página de productos
- Página de recetas
- Página de configuración
- Componentes reutilizables con shadcn/ui
- Diseño responsive (mobile, tablet, desktop)
- Integrar iconos con Lucide React
- Temas (light/dark) - opcional
- 7.1 Implementar almacenamiento de datos
- Implementar localStorage para productos
- Implementar localStorage para recetas
- Implementar localStorage para configuración
- Hooks personalizados (useProductos, useRecetas)
- Manejo de errores y validaciones
- Sistema de backup/export (opcional)
- 8.1 Configurar despliegue en Vercel
- Configurar proyecto en Vercel
- Configurar variables de entorno
- Documentación de despliegue
- CI/CD automático con Vercel
- Configurar dominio personalizado (opcional)
- Testing en producción
- 9.1 Testing y ajustes finales
- Pruebas de funcionalidad
- Validación de cálculos
- Pruebas de responsive
- Pruebas de rendimiento
- Corrección de bugs
- Optimizaciones
- Documentación final
{
id: string
nombre: string
precioTotal: number
cantidadTotal: number
unidadMedida: 'gramos' | 'litros' | 'onzas' | 'unidad' | 'mililitros' | 'kilogramos'
precioPorUnidad: number // calculado
categoria?: string
proveedor?: string
fechaActualizacion: Date
}{
id: string
nombre: string
descripcion: string
materiales: MaterialReceta[]
// Mano de Obra
tiempoPreparacion: number // minutos
costoPorHora: number
costoManoObra: number // calculado
// Costos
costoMateriales: number // calculado
costoTotal: number // calculado
// Opcional
margenGanancia?: number
precioVentaSugerido?: number
rendimiento?: number
unidadRendimiento?: string
fechaCreacion: Date
fechaActualizacion: Date
}{
id: string
productoId: string
nombreProducto: string
cantidadUtilizada: number
unidadMedida: string
costoUnitario: number
costoMaterial: number // calculado
}costoMaterial = (precioProducto / cantidadTotalProducto) * cantidadUtilizada
costoMateriales = Σ(costoMaterial)
costoManoObra = (tiempoPreparacion / 60) * costoPorHora
costoTotal = costoMateriales + costoManoObra
precioVentaSugerido = costoTotal * (1 + margenGanancia / 100)
dgbakerycake-costo-app/
├── .docker/
│ ├── Dockerfile
│ └── docker-compose.yml
├── src/
│ ├── app/
│ │ ├── layout.tsx
│ │ ├── page.tsx
│ │ ├── productos/
│ │ │ └── page.tsx
│ │ ├── recetas/
│ │ │ ├── page.tsx
│ │ │ └── [id]/
│ │ │ └── page.tsx
│ │ └── configuracion/
│ │ └── page.tsx
│ ├── components/
│ │ ├── ui/ (shadcn/ui)
│ │ ├── productos/
│ │ │ ├── ProductoForm.tsx
│ │ │ └── ProductoList.tsx
│ │ ├── recetas/
│ │ │ ├── RecetaForm.tsx
│ │ │ ├── RecetaList.tsx
│ │ │ ├── MaterialSelector.tsx
│ │ │ ├── CostoManoObraInput.tsx
│ │ │ └── DesgloseCostos.tsx
│ │ └── configuracion/
│ │ └── ConfiguracionForm.tsx
│ ├── lib/
│ │ ├── utils.ts
│ │ ├── storage.ts
│ │ └── calculations.ts
│ ├── types/
│ │ └── index.ts
│ └── hooks/
│ ├── useProductos.ts
│ └── useRecetas.ts
├── public/
├── .gitignore
├── package.json
├── tailwind.config.ts
├── tsconfig.json
├── next.config.js
├── vite.config.ts
└── README.md
# Construir imagen
docker-compose build
# Iniciar contenedor
docker-compose up
# Iniciar en segundo plano
docker-compose up -d
# Detener contenedor
docker-compose down
# Ver logs
docker-compose logs -f# Instalar dependencias
npm install
# Modo desarrollo
npm run dev
# Build producción
npm run build
# Iniciar producción
npm start- Ve a vercel.com e inicia sesión
- Click en "Add New Project"
- Importa el repositorio:
dgbakerycake-recetario-app - Vercel detectará automáticamente Next.js
- Click en "Deploy"
# Instalar Vercel CLI
npm install -g vercel
# Desplegar
vercel📖 Guía completa: Ver DEPLOYMENT.md
- Peso: gramos (g), kilogramos (kg), onzas (oz)
- Volumen: mililitros (ml), litros (l)
- Cantidad: unidad (u)
- 1 kg = 1000 g
- 1 l = 1000 ml
- 1 oz = 28.35 g
- Exportación de recetas a PDF
- Exportación a Excel
- Historial de precios de productos
- Gráficos de costos
- Multi-moneda
- Sistema de usuarios y autenticación
- Base de datos real (Vercel Postgres/Supabase)
- API REST
- Categorías de recetas
- Etiquetas y filtros avanzados
- Calculadora de porciones
- Modo offline (PWA)
Proyecto privado - DG Bakery Cake © 2026
DG Bakery Cake Team
Última actualización: 28 de Febrero, 2026