FerreMarket es un sistema de gestión completo para ferreterías y tiendas de materiales de construcción. Diseñado para simplificar las operaciones diarias, desde el control de inventario hasta la gestión de ventas y clientes, FerreMarket ofrece una interfaz moderna e intuitiva que se adapta tanto a pequeños negocios como a cadenas comerciales.
- Gestión de Inventario: Control completo de productos, categorías y stock
- Ventas y Facturación: Proceso de ventas rápido con generación de facturas en PDF
- Gestión de Clientes: Base de datos de clientes detallada con historial de compras
- Informes y Estadísticas: Análisis de ventas, inventario y rendimiento comercial
- Gestión de Proveedores: Control de órdenes de compra y reposición de stock
- Promociones y Descuentos: Creación y gestión de ofertas especiales
- Panel Administrativo: Control total del sistema con roles de usuario
- Node.js (v16 o superior)
- npm (v8 o superior)
- Navegador web moderno (Chrome, Firefox, Safari, Edge)
Sigue estos pasos para instalar y configurar el proyecto en tu entorno local:
- Clonar el repositorio
git clone https://github.com/tuusuario/FerreMarket.git
cd FerreMarket- Instalar dependencias
npm install- Instalar dependencias específicas para generación de PDF
npm install jspdf html2canvas- Configurar variables de entorno
Crea un archivo .env en la raíz del proyecto con el siguiente contenido:
# Auth0
VITE_AUTH0_DOMAIN_NAME = ""
VITE_AUTH0_CLIENT_ID = ""
# Supabase
VITE_SUPABASE_URL = ""
VITE_SUPABASE_ANON_KEY = ""
# R2 y Workers
VITE_CLOUDFLARE_CDN_URL = ""
VITE_CLOUDFLARE_WORKERS_URL = ""
VITE_CLOUDFLARE_WORKERS_API_KEY = ""
- Iniciar el servidor de desarrollo
npm run devLa aplicación estará disponible en http://localhost:5173 (o el puerto que Vite asigne).
- Abre tu navegador y accede a
http://localhost:5173
El panel principal muestra un resumen de la actividad reciente, incluyendo:
- Ventas del día y estadísticas comparativas
- Productos con stock bajo
- Últimas transacciones
- Gráficos de rendimiento
Gestiona el catálogo de productos con las siguientes funciones:
- Añadir, editar y eliminar productos
- Asignar categorías y proveedores
- Controlar niveles de stock
- Establecer precios y descuentos
Procesa ventas de manera eficiente:
- Crear nuevas ventas con selección de productos
- Aplicar descuentos y promociones
- Generar facturas en PDF
- Enviar comprobantes por email
Para generar PDFs de facturas:
- Selecciona una venta individual y haz clic en el botón "PDF"
- Para múltiples facturas, selecciona varias ventas con las casillas de verificación
- Usa el botón "PDF" en la barra de herramientas para generar documentos en lote
Administra la información de tus clientes:
- Registro de clientes individuales y empresas
- Historial de compras
- Datos de contacto y seguimiento
Gestiona tus proveedores y órdenes de compra:
- Catálogo de proveedores
- Generación de órdenes de reposición
- Seguimiento de entregas
Crea y administra ofertas especiales:
- Descuentos por porcentaje o monto fijo
- Promociones por categoría o producto
- Códigos promocionales
Analiza el rendimiento de tu negocio:
- Reportes de ventas por período
- Análisis de inventario
- Rentabilidad por categoría y producto
FerreMarket/
├── public/ # Archivos públicos estáticos
├── src/ # Código fuente de la aplicación
│ ├── assets/ # Imágenes, iconos y recursos
│ ├── components/ # Componentes reutilizables
│ ├── data/ # Datos mockup y servicios
│ ├── layouts/ # Estructuras de página
│ ├── pages/ # Páginas principales
│ ├── types/ # Definiciones de TypeScript
│ ├── utils/ # Utilidades y helpers
│ ├── App.tsx # Componente principal
│ └── main.tsx # Punto de entrada
├── .env # Variables de entorno
├── index.html # HTML principal
├── package.json # Dependencias y scripts
├── tsconfig.json # Configuración de TypeScript
└── vite.config.ts # Configuración de Vite
- Frontend: React, TypeScript, Tailwind CSS
- Construcción: Vite
- Gráficos: Recharts
- PDF: jsPDF, html2canvas
- Iconos: Lucide React
- Fecha/Hora: date-fns
El proyecto utiliza Tailwind CSS para los estilos. Puedes personalizar el aspecto modificando:
tailwind.config.jspara colores, fuentes y otros valores basesrc/index.csspara estilos globales
Durante el desarrollo, la aplicación utiliza datos mockup ubicados en src/data/mockData.ts. En producción, conecta la aplicación a tu API o backend preferido.
Para generar la versión de producción:
npm run buildLos archivos de producción se generarán en la carpeta dist, que puedes desplegar en cualquier servidor web estático.
- Error de generación de PDF: Asegúrate de tener instaladas las dependencias jsPDF y html2canvas.
- Imágenes no visibles: Verifica que las rutas a las imágenes sean correctas y que los archivos existan.
- Errores de TypeScript: Ejecuta
npm run typecheckpara verificar errores de tipo.
Las contribuciones son bienvenidas. Para contribuir:
- Haz fork del repositorio
- Crea una rama para tu característica (
git checkout -b feature/amazing-feature) - Realiza tus cambios y haz commit (
git commit -m 'Add some amazing feature') - Sube tus cambios (
git push origin feature/amazing-feature) - Abre un Pull Request
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
© 2025 FerreMarket. Todos los derechos reservados.
