Aplicación Kanban completa construida con Laravel 11 y Vue.js 3 para gestionar el flujo de trabajo de producción de videos animados de YouTube con IA. Diseñada para equipos que crean videos con herramientas como Kling, MidJourney y Suno.
- Columnas Optimizadas para IA: Ideas → Script Writing → Pre-production → Animating → Editing → Review/Approval → Publishing → Published
- Tableros Personalizables: Crea múltiples tableros con configuraciones de columnas personalizadas
- Drag & Drop: Movimiento suave de tarjetas entre columnas con seguimiento de posición
- Asignaciones Basadas en Roles: Owner, Editor, Reviewer, Viewer por tarjeta
- Actualizaciones en Tiempo Real: Seguimiento de actividad y notificaciones
- Sistema de Comentarios: Comentarios anidados para discusiones en equipo
- Seguimiento Manual de Créditos: Rastrea créditos de Kling, MidJourney y Suno
- Alertas de Créditos Bajos: Notificaciones cuando los créditos caen por debajo del 20%
- Historial de Uso: Monitorea el consumo de créditos a lo largo del tiempo
- Google Drive: Sube y gestiona assets de video, scripts, miniaturas
- YouTube Analytics: Conecta tu canal de YouTube vía OAuth 2.0
- Seguimiento de Videos: Monitorea vistas, likes, tiempo de visualización desde las tarjetas
- Dashboard: Vista general de tableros, próximos vencimientos, actividad
- Gráficos Gantt: Visualiza líneas de tiempo del proyecto
- Logs de Actividad: Registro completo de auditoría de todas las acciones
- Mobile-First: UI totalmente responsive con Tailwind CSS
- Soporte para Tablets: Optimizado para todos los tamaños de pantalla
- Touch-Friendly: Drag-and-drop funciona en dispositivos móviles
- Laravel 11 - Framework PHP
- MySQL - Base de datos
- Inertia.js - Server-side rendering
- Laravel Sanctum - Autenticación API
- Laravel Socialite - Integración OAuth
- Google API Client - APIs de YouTube y Drive
- Vue.js 3 - Framework JavaScript (Composition API)
- Tailwind CSS - CSS utility-first
- Chart.js - Gráficos
- vue-draggable-next - Drag and drop
- @headlessui/vue - Componentes UI
- Heroicons - Librería de iconos
- PHP 8.2+
- Composer
- Node.js 18+
- MySQL 8.0+
-
Clonar repositorio
git clone <your-repo-url> cd nmin
-
Instalar dependencias PHP
composer install
-
Instalar dependencias Node
npm install --legacy-peer-deps
-
Configurar entorno
cp .env.example .env php artisan key:generate
-
Configurar base de datos (editar
.env)DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nmin_kanban DB_USERNAME=root DB_PASSWORD=
-
Ejecutar migraciones
# Crear base de datos (si usas Laragon/MySQL) mysql -uroot -e "CREATE DATABASE nmin_kanban" # Ejecutar migraciones php artisan migrate
-
Compilar assets
# Para producción npm run build # Para desarrollo con hot-reload npm run dev
-
Iniciar servidor
php artisan serve
Visita:
http://localhost:8000
- Ve a Google Cloud Console
- Crea un nuevo proyecto
- Habilita las APIs:
- YouTube Data API v3
- Google Drive API
- Ve a "APIs y servicios" → "Pantalla de consentimiento de OAuth"
- Selecciona "Externo" (para pruebas) o "Interno" (para organización)
- Completa la información de la aplicación
- Añade alcances (scopes):
https://www.googleapis.com/auth/youtube.readonlyhttps://www.googleapis.com/auth/youtube.uploadhttps://www.googleapis.com/auth/drive.file
- Ve a "APIs y servicios" → "Credenciales"
- Click en "Crear credenciales" → "ID de cliente de OAuth"
- Selecciona "Aplicación web"
- Añade URIs de redireccionamiento autorizados:
- Local:
http://localhost:8000/auth/google/callback - Producción:
https://tudominio.com/auth/google/callback
- Local:
- Copia el ID de Cliente y Secreto de Cliente
GOOGLE_CLIENT_ID=tu-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=tu-client-secret
GOOGLE_REDIRECT_URI=http://localhost:8000/auth/google/callback
YOUTUBE_API_KEY=tu-youtube-api-key- Hosting compartido HostGator o VPS con cPanel
- PHP 8.2 o superior
- Base de datos MySQL
- Acceso SSH (recomendado) o Administrador de Archivos
# Compilar assets para producción
npm run build
# Optimizar para producción
composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
php artisan view:cache- En cPanel → Bases de datos MySQL
- Crear nueva base de datos (ej:
usuario_kanban) - Crear nuevo usuario
- Añadir usuario a la base de datos con TODOS LOS PRIVILEGIOS
ssh usuario@tudominio.com
cd public_html
git clone <tu-repo-url> .- Comprimir proyecto en ZIP
- Subir a cPanel
- Extraer en el directorio deseado
- En cPanel → Dominios
- Editar tu dominio
- Establecer Document Root a
/public_html/public
APP_NAME="YouTube Video Kanban"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://tudominio.com
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=usuario_kanban
DB_USERNAME=usuario_dbuser
DB_PASSWORD=tu-password-db
GOOGLE_CLIENT_ID=tu-production-client-id
GOOGLE_CLIENT_SECRET=tu-production-client-secret
GOOGLE_REDIRECT_URI=https://tudominio.com/auth/google/callbackchmod -R 755 storage bootstrap/cache
php artisan storage:linkphp artisan migrate --forcephp artisan optimize
php artisan config:cache
php artisan route:cache
php artisan view:cacheDado que Kling, MidJourney y Suno no tienen APIs públicas gratuitas:
- Ve a Dashboard → Créditos IA
- Click en "Actualizar Créditos"
- Ingresa información actual de créditos de cada servicio
- Establece fechas del período de facturación
- El sistema alertará cuando créditos < 20%
- Kling AI: API disponible (pago)
- MidJourney: Sin API pública oficial
- Suno AI: Disponibilidad limitada
- Verifica que
.htaccessexiste en carpetapublic/ - Verifica permisos de archivos (755/644)
- Revisa logs de error en cPanel
- Asegura que la versión de PHP sea 8.2+
- Verifica credenciales en
.env - Verifica que el host sea
localhost - Asegura que el usuario tenga privilegios correctos
- Actualiza URIs en Google Cloud Console
- URL debe coincidir exactamente (http/https)
- Limpia caché del navegador
chmod -R 755 storage bootstrap/cache
php artisan cache:clear
php artisan config:clearnmin/
├── app/
│ ├── Http/
│ │ └── Controllers/
│ │ ├── BoardController.php
│ │ ├── CardController.php
│ │ ├── GoogleDriveController.php
│ │ ├── YoutubeController.php
│ │ └── ...
│ └── Models/
│ ├── Board.php
│ ├── Card.php
│ ├── AiCredit.php
│ └── ...
├── database/
│ └── migrations/
│ ├── create_boards_table.php
│ ├── create_cards_table.php
│ └── ...
├── resources/
│ ├── js/
│ │ ├── Components/
│ │ ├── Layouts/
│ │ └── Pages/
│ └── views/
├── routes/
│ └── web.php
└── public/
└── .htaccess
- Real-time collaboration con WebSockets
- Exportar reportes PDF/CSV
- Notificaciones por email
- Integración oficial API de Kling
- Gráficos Gantt avanzados
- App móvil React Native
- Publicación automatizada a YouTube
- Biblioteca de plantillas de workflows
Este proyecto es software de código abierto bajo licencia MIT.
Para problemas, preguntas o contribuciones:
- Crea un issue en GitHub
- Contacto: dev@kanban.local
Construido con ❤️ para creadores de YouTube que usan herramientas de animación IA