Sistema de Cotizaciones y Facturación (CotizaPro)
El sistema CotizaPro ha sido desarrollado utilizando un stack tecnológico moderno, robusto y escalable, basado en PHP y el ecosistema Laravel.
El sistema es un ERP simplificado centrado en la gestión ágil de cotizaciones comerciales.
| Módulo | Descripción / Funcionalidad |
|---|---|
| Dashboard | Panel de control con métricas en tiempo real: total de cotizaciones emitidas/aprobadas, ingresos totales, ticket promedio, tasa de aprobación. Gráficos de ingresos mensuales y distribución por estado. |
| Clientes | CRUD completo de clientes. Historial de cotizaciones por cliente. Exportación de listados a Excel (CSV) y PDF. |
| Productos | Catálogo de productos o servicios. Precios y unidades configurables. Exportación a Excel y PDF. |
| Empresas | Gestión de empresas o entidades asociadas. Exportación a Excel y PDF. |
| Cotizaciones | Creación, edición y eliminación de cotizaciones. Cálculo automático de subtotales, descuentos e IGV. Conversión de estados (Borrador, Emitida, Aprobada, Rechazada). Duplicación rápida (Clonar). Generación y descarga de PDF con formato profesional. Envío directo por correo electrónico. Exportación de lista a Excel y PDF. |
| Reportes | Análisis detallado por año. KPIs anuales, desglose mensual y top de clientes. Exportación de resultados a Excel y PDF. |
| Configuración | Parámetros globales: Moneda por defecto (PEN, USD, EUR), IGV, logotipo de la empresa emisora, datos fiscales, términos y condiciones predeterminados, y credenciales SMTP para envíos de correo. |
| Mantenimiento | Generación de copias de seguridad (Backups SQL) y restauración de la base de datos completa directamente desde la interfaz web. |
Esta guía asume que utilizarás un entorno de desarrollo local como XAMPP, Laragon o Herd en Windows.
Asegúrate de tener instalados los siguientes programas:
Abre tu terminal (Command Prompt, PowerShell o Git Bash) en la carpeta donde deseas alojar el proyecto (ej. C:\xampp\htdocs\ o C:\laragon\www\).
Copia el archivo de ejemplo y configura tu base de datos local:
Abre el archivo .env generado con un editor de texto y configura la conexión a la base de datos (asegúrate de haber creado una base de datos vacía llamada cotizapro en MySQL):
Ejecuta las migraciones para crear las tablas en la base de datos y compila los assets CSS/JS:
Levanta el servidor de desarrollo de Laravel:
El sistema estará disponible en tu navegador ingresando a: http://127.0.0.1:8000. Registra tu primer usuario administrador desde la opción "Register".
Para aplicaciones Laravel, es fundamental elegir un hosting que permita acceso SSH y soporte PHP 8.3+. A continuación se presentan las mejores opciones:
¿Por qué Hostinger?
Proceso paso a paso para subir CotizaPro a un hosting compartido estándar como Hostinger utilizando acceso SSH.
Opción A (Recomendada vía SSH): Conéctate por SSH a tu servidor y clona el repositorio en la carpeta raíz (usualmente fuera de public_html por seguridad, pero para este ejemplo usaremos una ruta estándar).
Opción B (Archivo ZIP):
npm run build.proyecto.zip (excluye node_modules, pero incluye vendor si no puedes correr composer en el server).public_html (o en una carpeta superior por seguridad) y extráelo.En el servidor, copia .env.example a .env. Edita el archivo con los datos de producción:
Conéctate por SSH y ejecuta los siguientes comandos dentro de la carpeta de tu proyecto:
En Laravel, el directorio público es /public. En un hosting compartido, el dominio apunta a /public_html. Existen varias formas de resolver esto.
Método más seguro:
/domains/tudominio.com/cotizapro).cotizapro/public/ al interior de la carpeta /domains/tudominio.com/public_html/.public_html/index.php:
// Cambia estas líneas:
require __DIR__.'/../cotizapro/vendor/autoload.php';
$app = require_once __DIR__.'/../cotizapro/bootstrap/app.php';
Alternativa (Archivo .htaccess en la raíz): Si subiste todo dentro de public_html, crea un archivo .htaccess en public_html con el siguiente contenido para redirigir el tráfico a la carpeta public:
Asegúrate de que las carpetas storage y bootstrap/cache tengan permisos de escritura (generalmente 755 o 775).