Skip to content

Ronny-Abreu/SaleSystem_

Repository files navigation

🧩 SaleSystem - Sistema de Facturación y Gestión de Ventas

SaleSystem es una aplicación web completa para la gestión de facturas, clientes y productos, diseñada para pequeñas y medianas empresas que necesitan un sistema de facturación moderno y eficiente.


🚀 Descripción General

SaleSystem resuelve el problema de la gestión manual de facturas y el control de inventario que enfrentan muchas empresas. La aplicación permite:

  • Gestión completa de clientes con información detallada y códigos únicos
  • Control de inventario con productos categorizados y seguimiento de stock
  • Sistema de facturación con generación automática de PDFs profesionales
  • Reportes y estadísticas en tiempo real para análisis de ventas
  • Interfaz moderna y responsiva que funciona en cualquier dispositivo

El proyecto fue desarrollado para demostrar habilidades en desarrollo full-stack, utilizando tecnologías modernas tanto en frontend como backend, con un enfoque en la experiencia del usuario y la eficiencia operativa.


⚙️ Tecnologías Utilizadas

🎨 Frontend

  • Next.js 15 - Framework React con App Router
  • React 19 - Biblioteca de interfaz de usuario
  • TypeScript - Tipado estático para JavaScript
  • Tailwind CSS - Framework de CSS utilitario
  • Lucide React - Iconografía moderna y consistente
  • TSParticles - Efectos visuales interactivos

🔧 Backend

  • PHP 8.3 - Lenguaje de programación del servidor
  • MySQL - Base de datos relacional
  • PDO - Interfaz de acceso a datos
  • Dompdf - Generación de PDFs
  • Composer - Gestión de dependencias PHP

🚀 Despliegue y Hosting

  • Vercel - Frontend (Next.js)
  • Railway - Backend (PHP)
  • MySQL - Base de datos en la nube

🛠️ Herramientas de Desarrollo

  • ESLint - Linting de código
  • PostCSS - Procesamiento de CSS
  • Autoprefixer - Compatibilidad de CSS

🧠 Características Principales

👥 Gestión de Clientes

  • ✅ Registro y edición de clientes
  • ✅ Códigos únicos automáticos
  • ✅ Información completa (teléfono, email, dirección)
  • ✅ Búsqueda y filtrado avanzado

📦 Control de Productos

  • ✅ Catálogo de productos con categorías
  • ✅ Control de stock en tiempo real
  • ✅ Precios y descripciones detalladas
  • ✅ Estados activo/inactivo

🧾 Sistema de Facturación

  • ✅ Creación de facturas con múltiples productos
  • ✅ Numeración automática de facturas
  • ✅ Generación de PDFs profesionales
  • ✅ Estados de factura (pagada, pendiente, anulada)
  • ✅ Comentarios y observaciones

📊 Reportes y Estadísticas

  • ✅ Dashboard con métricas clave
  • ✅ Reportes de ventas por período
  • ✅ Estadísticas de productos más vendidos
  • ✅ Análisis de clientes frecuentes

🎨 Interfaz de Usuario

  • ✅ Diseño responsivo y moderno
  • ✅ Navegación intuitiva
  • ✅ Modales y confirmaciones
  • ✅ Notificaciones en tiempo real
  • ✅ Efectos visuales con TSParticles

🧾 Estructura del Proyecto

SaleSystem/
├── 📁 app/                    # Frontend Next.js (App Router)
│   ├── 📁 clientes/           # Páginas de gestión de clientes
│   ├── 📁 facturas/           # Páginas de facturación
│   ├── 📁 productos/          # Páginas de productos
│   ├── 📁 reportes/           # Páginas de reportes
│   └── 📄 layout.tsx          # Layout principal
│ 
├── 📁 backend/                # Backend PHP
│   ├── 📁 api/                # Endpoints de la API
│   ├── 📁 models/             # Modelos de datos
│   ├── 📁 config/             # Configuración
│   ├── 📁 utils/              # Utilidades y helpers
│   └── 📁 database/           # Migraciones y scripts SQL
│ 
├── 📁 components/             # Componentes React reutilizables
│   ├── 📁 auth/               # Componentes de autenticación
│   ├── 📁 layout/             # Componentes de layout
│   ├── 📁 modals/             # Modales y diálogos
│   └── 📁 ui/                 # Componentes de interfaz
│ 
├── 📁 hooks/                  # Custom React hooks
├── 📁 contexts/               # Contextos de React
├── 📁 lib/                    # Librerías y configuraciones
└── 📄 package.json            # Dependencias del frontend

🗂️ Arquitectura del Backend

backend/
├── 📁 api/                    # Endpoints REST
│   ├── 📄 auth.php            # Autenticación
│   ├── 📄 clientes.php        # CRUD clientes
│   ├── 📄 facturas.php        # CRUD facturas
│   └── 📄 productos.php       # CRUD productos
├── 📁 models/                 # Modelos de datos
├── 📁 config/                 # Configuración de BD
├── 📁 utils/                  # Utilidades (CORS, respuestas)
└── 📁 database/               # Scripts SQL

📸 Capturas de Pantalla

  • Dashboard principal con estadísticas diarias e historial
image image
  • Creación de facturas
image image image image image
  • Lista de clientes con búsqueda
image
  • Vista de productos con categorías
image image image
  • Generación de PDFs automáticos
image image

💻 Instalación y Uso

📋 Prerrequisitos

  • Node.js 18+
  • PHP 8.3+
  • MySQL 8.0+
  • Composer

🔧 Instalación del Frontend

# Clonar el repositorio
git https://github.com/Ronny-Abreu/SaleSystem_.git
cd SaleSystem

# Instalar dependencias
npm install

# Configurar variables de entorno
cp .env.example .env.local
# Editar .env.local con tu configuración

# Ejecutar en modo desarrollo
npm run dev

🗄️ Instalación del Backend

# Navegar a la carpeta backend
cd backend

# Instalar dependencias PHP
composer install

# Configurar base de datos
# Editar backend/config/database.php con tus credenciales

# Ejecutar migraciones
mysql -u tu_usuario -p tu_base_de_datos < database/create_database.sql

🚀 Ejecutar la Aplicación

# Frontend (puerto 3000)
npm run dev

# Backend (puerto 8000)
cd backend
php -S localhost:8000

🧑‍💻 Autor

Ronny De León - Desarrollador Full Stack


📜 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

MIT License

Copyright (c) 2025 Ronny De León

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Si tienes ideas para mejorar el proyecto:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/NewFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

⭐ Si este proyecto te gusta, ¡dale una estrella en GitHub! ⭐