Sistema profesional de gestión de inventario, ventas y compras — auto-hospedado, open source, listo para PYMEs
Master Inventario es un sistema web completo de gestión de inventario pensado para pequeñas y medianas empresas que necesitan control profesional sin pagar licencias SaaS mensuales. Instalable en cualquier hosting compartido, con UI profesional, seguridad enterprise y auditoría completa.
✅ Auto-hospedado — tus datos en tu servidor, cero dependencia cloud
✅ Open Source (MIT) — gratis para siempre, sin licencias mensuales
✅ Sin framework — PHP puro, compatible con cualquier hosting cPanel
✅ UX Profesional — diseño glassmorphism, dark mode, totalmente responsive
✅ Seguridad Enterprise — rate limiting, 11 tablas de auditoría con triggers
| 🔐 Inicio de sesión | 📊 Dashboard analítico |
![]() |
![]() |
| 📦 Gestión de inventario | 🛒 Ventas |
![]() |
![]() |
| 📋 Reportes | ⚙️ Configuración del sistema |
![]() |
![]() |
| Módulo | Descripción |
|---|---|
| 📦 Inventario | Control de stock en tiempo real con alertas de stock bajo y umbral configurable |
| 🛒 Ventas | Registro de transacciones, detalle de venta y generación de facturas en PDF |
| 🚚 Compras | Órdenes de compra, gestión de proveedores y control de abastecimiento |
| 👥 Usuarios | Roles jerárquicos (Administrador / Empleado / Usuario) con rate limiting |
| 📊 Dashboard | KPIs en tiempo real, gráficas interactivas con Chart.js y tendencias |
| 📋 Reportes | Exportación a PDF y CSV, reportes históricos y plantillas personalizadas |
| 📄 Documentos | Gestión documental con historial de versiones |
| 🗓️ Agenda | Calendario de eventos y tareas de mantenimiento |
| ⚙️ Configuración | Tema, moneda, logo, banner y parámetros del sistema completamente personalizables |
| 🔒 Seguridad | Protección contra SQL injection, CSRF, rate limiting por IP y cuenta |
- ✅ Prepared statements en todas las consultas SQL (MySQLi)
- ✅ Rate limiting por IP (20 fallos / 15 min) y por cuenta (escalado: 15 / 30 / 60 min)
- ✅ Registro de intentos de inyección SQL en tabla de auditoría
- ✅ Auditoría completa: 11 tablas de historial + triggers automáticos en BD
- ✅ Roles y permisos granulares por módulo
| Tecnología | Uso |
|---|---|
| PHP 8.3 | Lógica de negocio (procedural modular) |
| MySQL 8.0 | Base de datos relacional con triggers |
| FPDF | Generación de reportes PDF |
| Tecnología | Uso |
|---|---|
| Bootstrap 5.3 | Grid, componentes UI responsivos |
| Chart.js | Gráficas de barras, líneas y dona |
| Font Awesome 6 | Iconografía (1,500+ iconos) |
| DM Sans / Inter | Tipografía profesional (Google Fonts) |
| CSS Custom Properties | Theming dinámico, modo oscuro, glassmorphism |
El sistema utiliza 28 tablas organizadas en los siguientes dominios:
📁 Usuarios & Auth → Usuarios, LoginAttempts, configuracion_interfaz
📁 Inventario → Inventario, Entradas_Inventario, Salidas_Inventario
📁 Ventas → Ventas, Detalle_Ventas
📁 Compras → Compras, Detalle_Compras, Proveedores
📁 Documentos → Documentos, Documentos_Registros, Reportes
📁 Sistema → configuracion_sistema_global, incidentes_soporte
📁 Auditoría (11 tablas) → Historial_* (triggers automáticos en todas las entidades)
- PHP >= 8.0
- MySQL >= 8.0 o MariaDB >= 10.6
- Composer
- Servidor web (Apache / Nginx) o XAMPP
# 1. Clona el repositorio
git clone https://github.com/Niicko12/Master-Inventario.git
cd Master-Inventario
# 2. Instala dependencias PHP
composer install
# 3. Copia y configura las variables de entorno
cp .env.example .env
# Edita .env con tus credenciales de BD
# 4. Importa el esquema de base de datos
mysql -u root -p < bd.sql
# 5. Inicia el servidor (desarrollo)
php -S localhost:8000
# 6. Abre en tu navegador
# http://localhost:8000XAMPP: Copia la carpeta en
C:/xampp/htdocs/Inventarioy accede desdehttp://localhost/Inventario
Master-Inventario/
├── 📂 assets/ # Recursos estáticos
│ └── images/ # Logos, banners, SVG íconos, productos
├── 📂 docs/ # Documentación y capturas
│ └── screenshots/ # Capturas del sistema
├── 📂 functions/ # Funciones auxiliares (auth, rate limiting)
├── 📂 includes/ # Componentes reutilizables (auth_check, acciones)
├── 📂 layout/ # Plantillas de layout (sidebar, footer)
├── 📂 styles/ # CSS personalizado (components, template-theme)
├── 📂 utils/ # Utilidades (BD, paginación, configuración)
├── 📂 vendor/ # Dependencias PHP (composer)
├── ⚙️ config.php # Bootstrap principal (carga .env, BD, utils)
├── 🗄️ bd.sql # Esquema completo de base de datos
├── 🏠 index.php # Panel de inicio
├── 📊 dashboard.php # Dashboard analítico
├── 🔐 login.php # Autenticación
├── 📦 gestion_inventario.php
├── 🛒 gestion_ventas.php
├── 🚚 gestion_compras.php
├── 👥 administrar_usuarios.php
├── 📋 reportes.php
└── ⚙️ configuracion_sistema.php
Todas las opciones del sistema se gestionan desde Configuración → Sistema:
| Parámetro | Descripción |
|---|---|
nombre_instancia |
Nombre que aparece en la UI |
moneda_codigo |
Moneda del sistema (MXN, USD, EUR) |
umbral_stock_bajo |
Número mínimo de unidades antes de alertar |
banner_imagen |
Imagen de fondo de los módulos |
banner_overlay_color |
Color del overlay del banner |
modo_oscuro_permanente |
Activar modo oscuro por defecto |
logo_path |
Logo de la instancia |
logs_actividad |
Habilitar / deshabilitar auditoría |
| Rol | Acceso |
|---|---|
| Administrador | Acceso total: usuarios, configuración, reportes, todos los módulos |
| Empleado | Inventario, ventas, compras, proveedores, agenda |
| Usuario | Solo lectura en módulos asignados |
Las contribuciones son bienvenidas.
# 1. Fork del repositorio
# 2. Crea tu rama de feature
git checkout -b feature/nueva-funcionalidad
# 3. Commit con mensaje descriptivo
git commit -m "feat: agrega exportación de inventario a CSV"
# 4. Push y abre un Pull Request
git push origin feature/nueva-funcionalidadDistribuido bajo la licencia MIT. Ver LICENSE para más información.
Hecho con ❤️ por Limber Magaña
⭐ Si este proyecto te es útil, dale una estrella en GitHub





