Skip to content

ecr17dev/OpenCRM-laravel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OPENCRM

image

Sistema CRM Opensource de Nueva Generación

License: MIT Laravel Vue.js PHP TypeScript

Desarrollado por ECR17.DEV

CaracterísticasDemoInstalaciónDocumentaciónContribuir


📋 Tabla de Contenidos


🎯 Acerca del Proyecto

OPENCRM es una solución CRM moderna y completa diseñada para equipos de ventas que necesitan gestionar prospectos, empresas y cotizaciones de manera eficiente. Construido con las últimas tecnologías web, ofrece una experiencia de usuario fluida y profesional.

¿Por qué OPENCRM?

  • 100% Opensource: Código abierto bajo licencia MIT
  • Moderno: Stack tecnológico de última generación
  • Completo: Desde leads hasta cotizaciones en PDF
  • Seguro: Autenticación 2FA y sistema RBAC robusto
  • Escalable: Arquitectura preparada para crecer
  • Docker Ready: Despliegue simplificado con contenedores

✨ Características Principales

🔐 Autenticación y Seguridad

  • Login y registro con validación robusta
  • Autenticación de dos factores (2FA/TOTP)
  • Recuperación de contraseña por email
  • Sistema RBAC (Role-Based Access Control)
  • Tokens de API con Laravel Sanctum

👥 Gestión de Usuarios

  • Roles personalizables (Jefatura, Vendedor, etc.)
  • Permisos granulares por recurso
  • Perfil de usuario con avatar
  • Gestión de equipos de venta

📊 Gestión de Leads

  • CRUD completo de prospectos
  • Tracking UTM para análisis de origen
  • Estados configurables del embudo de ventas
  • Asignación de leads a vendedores
  • Búsqueda y filtros avanzados
  • Historial de interacciones

📋 Vista Kanban

  • Tablero visual drag & drop
  • Paginación por columna
  • Filtros por fecha y agente
  • Actualización en tiempo real
  • Responsive design

🏢 Gestión de Empresas

  • Base de datos de clientes
  • Validación de RUT chileno
  • Categorización por industria y tamaño
  • Información de contacto completa
  • Relación con múltiples leads

📄 Cotizaciones

  • Creación de presupuestos profesionales
  • Numeración automática
  • Ítems con cálculo de subtotal e IVA
  • Estados del proceso (borrador, enviada, aceptada)
  • Exportación a PDF de alta calidad
  • Vinculación con leads

📅 Calendario

  • Vista de reuniones agendadas
  • Integración con leads
  • Links de videollamada
  • Notas y seguimiento

📈 Dashboard

  • Métricas en tiempo real
  • Embudo de ventas visual
  • Tasas de conversión
  • Total cotizado
  • Mini-Kanban de resumen
  • Filtros por agente (vendedores ven solo sus leads)

⚙️ Configuración

  • Personalización del sistema
  • Logo de empresa
  • Ajustes de moneda e IVA
  • Gestión de estados de leads
  • Configuración de roles y permisos

🛠 Stack Tecnológico

Backend

Tecnología Versión Propósito
PHP 8.4+ Lenguaje principal
Laravel 12 Framework backend
Inertia.js 2 SPA sin API REST
Laravel Fortify 1 Autenticación headless
Laravel Sanctum 4 API tokens
Laravel Wayfinder 0 Rutas tipadas TypeScript
DomPDF 3 Generación de PDFs
Pest 4 Testing framework
PostgreSQL 16 Base de datos

Frontend

Tecnología Versión Propósito
Vue.js 3 Framework reactivo
TypeScript 5 Type safety
Inertia.js 2 Routing SPA
TailwindCSS 4 Estilos utilitarios
Radix Vue 1 Componentes UI (shadcn/ui)
TanStack Table 8 Tablas avanzadas
Lucide Icons Sistema de íconos
VueUse 12 Composables
Vite 7 Build tool

DevOps

  • Docker & Docker Compose: Contenedorización
  • Nginx: Servidor web
  • Supervisor: Gestión de procesos
  • GitHub Actions: CI/CD (próximamente)

📸 Capturas de Pantalla

🚧 Próximamente: Capturas de pantalla del dashboard, kanban, y otras vistas principales.


🚀 Instalación Rápida

Requisitos Previos

  • PHP 8.4+ con extensiones: pdo, pdo_sqlite, gd, mbstring, xml
  • Composer 2.x
  • Node.js 20+ y npm
  • SQLite (desarrollo) o PostgreSQL 16 (producción)

Instalación Local (Desarrollo)

# 1. Clonar el repositorio
git clone https://github.com/ecr17dev/OpenCRM-laravel#
cd opencrm

# 2. Instalar dependencias
composer install
npm install

# 3. Configurar entorno
cp .env.example .env
php artisan key:generate

# 4. Crear base de datos y datos de prueba
php artisan migrate --seed

# 5. Iniciar servidor de desarrollo
composer run dev

La aplicación estará disponible en http://localhost:8000

Credenciales de Prueba

Después de ejecutar los seeders:

  • Admin: admin@example.com / password
  • Vendedor: vendedor@example.com / password

🐳 Instalación con Docker

Opción 1: Script Automatizado

# Clonar y configurar
git clone https://github.com/ecr17/opencrm.git
cd opencrm

# Ejecutar script de inicio
./scripts/docker-start.sh

Opción 2: Manual

# Copiar configuración
cp .env.docker .env

# Construir y levantar contenedores
docker-compose build
docker-compose up -d

# Ejecutar migraciones
docker-compose exec app php artisan migrate --seed

Opción 3: Makefile

# Instalación completa en un comando
make install

# Otros comandos útiles
make up          # Levantar contenedores
make down        # Detener contenedores
make logs        # Ver logs
make shell       # Acceder al contenedor
make test        # Ejecutar tests

La aplicación estará disponible en http://localhost


⚙️ Configuración

Variables de Entorno Principales

# Aplicación
APP_NAME=OPENCRM
APP_ENV=production
APP_DEBUG=false
APP_URL=https://tu-dominio.com

# Base de Datos (PostgreSQL)
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=opencrm
DB_USERNAME=opencrm_user
DB_PASSWORD=tu_password_seguro

# Email (SMTP)
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=tu-email@gmail.com
MAIL_PASSWORD=tu-password-app
MAIL_FROM_ADDRESS=noreply@tu-dominio.com

Ver .env.example para todas las opciones disponibles.


🌐 Despliegue

Dokploy (Recomendado)

  1. Crear proyecto en Dokploy
  2. Conectar repositorio Git
  3. Configurar variables de entorno
  4. Deploy automático

El archivo dokploy.json incluye toda la configuración necesaria.

Otros Servicios

  • DigitalOcean App Platform: Compatible
  • AWS ECS: Con configuración Docker
  • Heroku: Requiere buildpack PHP
  • VPS Manual: Usar Docker Compose

Checklist de Producción

  • Configurar APP_ENV=production
  • Desactivar APP_DEBUG=false
  • Configurar SMTP real
  • Configurar dominio y SSL
  • Configurar backups automáticos
  • Revisar permisos de storage
  • Configurar queue workers
  • Optimizar caches: php artisan optimize

💻 Desarrollo

Estructura del Proyecto

opencrm/
├── .config/                # Configuración de herramientas
│   ├── boost.json          # Laravel Boost
│   ├── components.json     # shadcn/ui
│   ├── mcp.json            # Model Context Protocol
│   └── pint.json           # Laravel Pint
├── app/                    # Lógica de negocio
│   ├── Http/Controllers/   # Controladores
│   ├── Models/             # Modelos Eloquent
│   └── Providers/          # Service Providers
├── database/
│   ├── migrations/         # Migraciones
│   └── seeders/            # Datos de prueba
├── docs/                   # Documentación
│   ├── ABOUT.md            # Acerca del proyecto
│   ├── CLAUDE.md           # Guías de desarrollo
│   └── LICENSE             # Licencia MIT
├── docker/                 # Configuración Docker
│   ├── nginx/              # Nginx config
│   ├── php/                # PHP-FPM config
│   └── supervisor/         # Supervisor config
├── resources/
│   ├── js/                 # Frontend Vue
│   │   ├── pages/          # Páginas Inertia
│   │   ├── components/     # Componentes Vue
│   │   └── layouts/        # Layouts
│   └── css/                # Estilos
├── routes/                 # Definición de rutas
├── scripts/                # Scripts de utilidad
│   ├── docker-start.sh     # Inicio automatizado
│   ├── docker-verify.sh    # Verificación Docker
│   └── fix-logo-upload.sh  # Corrección de permisos
├── tests/                  # Tests automatizados
├── docker-compose.yml      # Orquestación Docker
├── Dockerfile              # Imagen Docker
└── Makefile                # Comandos Make

Scripts de Desarrollo

# Backend
composer run dev        # Servidor completo (PHP + Queue + Vite)
composer run lint       # Formatear código PHP
composer run test       # Ejecutar tests

# Frontend
npm run dev             # Vite dev server
npm run build           # Build producción
npm run lint            # ESLint
npm run format          # Prettier

Comandos Artisan Útiles

php artisan route:list              # Listar rutas
php artisan migrate:fresh --seed    # Resetear DB
php artisan tinker                  # REPL interactivo
php artisan queue:work              # Procesar colas
php artisan pail                    # Ver logs en tiempo real

🧪 Testing

El proyecto usa Pest 4 para testing.

# Ejecutar todos los tests
php artisan test

# Tests específicos
php artisan test --filter=LeadTest

# Con cobertura
php artisan test --coverage

# En Docker
make test

Escribir Tests

// tests/Feature/LeadTest.php
test('usuario puede crear un lead', function () {
    $user = User::factory()->create();
    
    $response = $this->actingAs($user)->post('/leads', [
        'name' => 'Juan Pérez',
        'email' => 'juan@example.com',
    ]);
    
    $response->assertRedirect('/leads');
    $this->assertDatabaseHas('leads', ['email' => 'juan@example.com']);
});

🔒 Seguridad

Características de Seguridad

  • ✅ Autenticación 2FA (TOTP)
  • ✅ Protección CSRF automática
  • ✅ Rate limiting en rutas sensibles
  • ✅ Validación de entrada robusta
  • ✅ Hashing de contraseñas (bcrypt)
  • ✅ Sesiones seguras en base de datos
  • ✅ Tokens de API con Sanctum
  • ✅ Sistema RBAC completo

Reportar Vulnerabilidades

Si encuentras una vulnerabilidad de seguridad, por favor envía un email a security@ecr17.dev en lugar de usar el issue tracker público.


🗺 Roadmap

v1.1 (Q2 2026)

  • Integración con WhatsApp Business API
  • Notificaciones push
  • Exportación de reportes a Excel
  • Dashboard personalizable

v1.2 (Q3 2026)

  • Integración con Zapier
  • API REST pública documentada
  • Webhooks para eventos
  • Multi-idioma (i18n)

v2.0 (Q4 2026)

  • Módulo de email marketing
  • Automatizaciones de ventas
  • Inteligencia artificial para scoring de leads
  • App móvil (React Native)

Ver Issues para más detalles.


🤝 Contribuir

¡Las contribuciones son bienvenidas! Este es un proyecto opensource y valoramos tu ayuda.

Cómo Contribuir

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

Guías de Contribución

  • Sigue el estilo de código existente (Laravel Pint + ESLint)
  • Escribe tests para nuevas funcionalidades
  • Actualiza la documentación si es necesario
  • Usa commits descriptivos (Conventional Commits)

Tipos de Contribuciones

  • 🐛 Reportar bugs
  • 💡 Proponer nuevas características
  • 📝 Mejorar documentación
  • 🌐 Traducciones
  • 🎨 Mejoras de UI/UX
  • ⚡️ Optimizaciones de rendimiento

📄 Licencia

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

MIT License

Copyright (c) 2026 ECR17.DEV

Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia
de este software y archivos de documentación asociados (el "Software"), para
utilizar el Software sin restricciones...

📞 Contacto

ECR17.DEV

Soporte

Documentación Adicional


⭐️ Si te gusta OPENCRM, dale una estrella en GitHub

Hecho con ❤️ por ECR17.DEV

LaravelVue.jsInertia.jsTailwindCSS

About

OpenCRM is a lightweight, open-source Customer Relationship Management platform built with Laravel. It focuses on simplicity and speed, providing developers with a modular foundation to manage leads, track interactions, and streamline sales pipelines without the bloat of enterprise software.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors