Skip to content

Utroleee/MVCWorkflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎫 Sistema de Tickets de Soporte Técnico

Laravel PHP Tailwind CSS PostgreSQL

Sistema completo de gestión de tickets de soporte técnico desarrollado con Laravel

🚀 Demo en Vivo📖 Documentación🐛 Reportar Bug


📋 Tabla de Contenidos


✨ Características

🎯 Funcionalidades Principales

  • Gestión Completa de Tickets - Crear, asignar, actualizar y resolver tickets
  • Sistema de Roles - Administrador, Técnico y Cliente con permisos específicos
  • Autenticación Segura - Laravel Fortify + Jetstream con 2FA opcional
  • Interfaz Responsiva - Diseño moderno con Tailwind CSS
  • Dashboard Intuitivo - Paneles específicos para cada rol
  • Notificaciones - Sistema de alertas y notificaciones
  • Búsqueda y Filtros - Encuentra tickets rápidamente
  • Historial de Actividades - Seguimiento completo de cambios

🎨 Experiencia de Usuario

  • 📱 Totalmente Responsivo - Funciona perfectamente en móviles y tablets
  • 🎯 Navegación Intuitiva - Menús adaptativos según el rol del usuario
  • Carga Rápida - Optimizado para rendimiento
  • 🌙 Interfaz Moderna - Diseño limpio y profesional

🛠️ Tecnologías

Backend Frontend Base de Datos Despliegue
  • Laravel 10.x
  • PHP 8.1+
  • Laravel Fortify
  • Laravel Jetstream
  • Blade Templates
  • Tailwind CSS
  • Alpine.js
  • Vite
  • PostgreSQL (Producción)
  • MySQL (Desarrollo)
  • Migraciones
  • Seeders
  • Docker
  • Render.com
  • GitHub Actions
  • Apache

👥 Roles de Usuario

🔑 Administrador

  • ✅ Gestión completa del sistema
  • ✅ Crear, editar y eliminar usuarios
  • ✅ Asignar roles y permisos
  • ✅ Ver todos los tickets del sistema
  • ✅ Generar reportes y estadísticas

🔧 Técnico

  • ✅ Ver tickets asignados
  • ✅ Actualizar estado de tickets
  • ✅ Agregar comentarios y soluciones
  • ✅ Marcar tickets como resueltos
  • ✅ Dashboard con métricas personales

👤 Cliente

  • ✅ Crear nuevos tickets de soporte
  • ✅ Ver estado de sus tickets
  • ✅ Agregar comentarios adicionales
  • ✅ Eliminar sus propios tickets
  • ✅ Historial completo de solicitudes

🚀 Instalación

📋 Prerrequisitos

  • PHP 8.1 o superior
  • Composer
  • Node.js y npm
  • MySQL o PostgreSQL
  • Git

🔧 Instalación Local

# 1. Clonar el repositorio
git clone https://github.com/Utroleee/MVCWorkflow.git
cd MVCWorkflow

# 2. Instalar dependencias de PHP
composer install

# 3. Instalar dependencias de Node.js
npm install

# 4. Copiar archivo de configuración
cp .env.example .env

# 5. Generar clave de aplicación
php artisan key:generate

# 6. Configurar base de datos en .env
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=mesa_ayuda
# DB_USERNAME=tu_usuario
# DB_PASSWORD=tu_contraseña

# 7. Ejecutar migraciones y seeders
php artisan migrate --seed

# 8. Compilar assets
npm run build

# 9. Iniciar servidor de desarrollo
php artisan serve

🎉 ¡Listo!

Visita http://localhost:8000 y usa estas credenciales:

👨‍💼 Administrador:

  • Email: admin@mesadeayuda.com
  • Contraseña: admin12345

🐳 Despliegue con Docker

# 1. Construir la imagen
docker build -t mesa-ayuda .

# 2. Ejecutar el contenedor
docker run -p 8000:80 \
  -e DB_HOST=tu_host_db \
  -e DB_DATABASE=tu_base_datos \
  -e DB_USERNAME=tu_usuario \
  -e DB_PASSWORD=tu_contraseña \
  mesa-ayuda

📱 Uso del Sistema

🎯 Para Clientes

  1. Registro - Crea tu cuenta seleccionando el rol "Cliente"
  2. Crear Ticket - Describe tu problema detalladamente
  3. Seguimiento - Monitorea el progreso en tiempo real
  4. Comunicación - Agrega comentarios cuando sea necesario

🔧 Para Técnicos

  1. Dashboard - Ve todos tus tickets asignados
  2. Gestión - Actualiza estados y agrega soluciones
  3. Comunicación - Mantén informado al cliente
  4. Resolución - Marca tickets como completados

👨‍💼 Para Administradores

  1. Panel de Control - Vista general del sistema
  2. Gestión de Usuarios - Crear y administrar cuentas
  3. Asignación - Distribuir tickets entre técnicos
  4. Reportes - Analizar métricas y rendimiento

🔒 Seguridad

🛡️ Medidas Implementadas

  • 🔐 Autenticación Robusta - Laravel Fortify con hash seguro
  • 🛡️ Protección CSRF - Tokens en todos los formularios
  • 👮 Middleware de Autorización - Control de acceso por roles
  • 🔒 Validación de Datos - Sanitización de entradas
  • 📝 Logs de Seguridad - Registro de actividades críticas

🔑 Credenciales por Defecto

⚠️ IMPORTANTE: Cambia estas credenciales en producción

Rol Email Contraseña
Administrador admin@mesadeayuda.com admin12345

📊 Base de Datos

🗄️ Estructura Principal

📋 users          # Información de usuarios
├── id            # Clave primaria
├── name          # Nombre completo
├── email         # Email único
├── password      # Contraseña hasheada
└── timestamps    # Fechas de creación/actualización

🎭 roles          # Roles del sistema
├── id            # Clave primaria
├── name          # Nombre del rol
├── description   # Descripción del rol
└── timestamps    # Fechas de creación/actualización

🎫 tickets        # Tickets de soporte
├── id            # Clave primaria
├── title         # Título del ticket
├── description   # Descripción detallada
├── status        # Estado actual
├── priority      # Prioridad
├── user_id       # Cliente que creó el ticket
├── assigned_to   # Técnico asignado
└── timestamps    # Fechas de creación/actualización

🔄 Migraciones

# Ejecutar migraciones
php artisan migrate

# Rollback de migraciones
php artisan migrate:rollback

# Refrescar base de datos
php artisan migrate:fresh --seed

🌐 Despliegue en Producción

🚀 Render.com (Recomendado)

  1. Fork este repositorio
  2. Conecta tu cuenta de GitHub con Render
  3. Crea un nuevo Web Service
  4. Configura las variables de entorno
  5. Despliega automáticamente

⚙️ Variables de Entorno Requeridas

APP_NAME="Mesa de Ayuda"
APP_ENV=production
APP_KEY=base64:tu_clave_generada
APP_DEBUG=false
APP_URL=https://tu-dominio.com

DB_CONNECTION=pgsql
DB_HOST=tu_host_postgresql
DB_PORT=5432
DB_DATABASE=tu_base_datos
DB_USERNAME=tu_usuario
DB_PASSWORD=tu_contraseña

SESSION_DRIVER=database
SESSION_DOMAIN=.tu-dominio.com

🔄 CI/CD con GitHub Actions

El proyecto incluye workflows automáticos para:

  • Testing automático en cada push
  • Despliegue automático a Render
  • Verificación de código con PHP CS Fixer

🤝 Contribuir

🎯 ¿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 some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📝 Estándares de Código

  • Seguir PSR-12 para PHP
  • Usar Conventional Commits
  • Incluir tests para nuevas funcionalidades
  • Documentar cambios importantes

📞 Soporte

🆘 ¿Necesitas Ayuda?


📄 Licencia

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


⭐ Si este proyecto te fue útil, ¡dale una estrella! ⭐

Desarrollado con ❤️ por Tu Nombre

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages