Plataforma oficial de la Universidad de Panamá para la gestión digital de trabajos de extensión universitaria.
- VIEX · Sistema de Registro y Certificación de Trabajos de Extensión
- 📘 Índice
- 🎯 Panorama general
- ⚙️ Alcance funcional
- 🧭 Roles y visibilidad
- 🛠️ Sistema de Administración
- 🏗️ Arquitectura del sistema
- 🧩 Stack tecnológico
- ⚙️ Instalación y configuración
- 🧪 Pruebas y aseguramiento de calidad
- 🧭 Convenciones del proyecto
- 📚 Documentación complementaria
- 🧰 Soporte y contacto
- 🚀 Despliegue y mantenimiento
VIEX digitaliza el proceso completo de registro, revisión, aprobación y certificación de los trabajos de extensión universitaria, de acuerdo con el Manual de Procedimientos de la Universidad de Panamá.
- Reemplazar formularios físicos y firmas manuales por expedientes electrónicos auditables.
- Coordinar revisiones entre profesores, coordinaciones, decanatos y VIEX.
- Proveer trazabilidad, estadísticas e informes institucionales en tiempo real.
| Módulo | Descripción |
|---|---|
| Registro de trabajos | Formularios específicos para proyectos, actividades, publicaciones y asistencias técnicas. |
| Gestión documental | Carga de evidencias, resoluciones y certificados mediante MediaLibrary. |
| Flujo de aprobación | Secuencia: Borrador → Coordinador → Decano/Director → VIEX → Certificado / Rechazado. |
| Tableros por rol | KPIs, acciones rápidas y vistas personalizadas según el tipo de usuario. |
| Reportes y estadísticas | Filtros por unidad organizacional, estado y período académico. |
| Bitácora y auditoría | Historial completo de cambios, observaciones y responsables. |
| Rol | Alcance organizacional | Acciones principales |
|---|---|---|
| Profesor | Solo trabajos propios | Crear, editar, reenviar, adjuntar evidencias |
| Coordinador | Su unidad + unidades hijas | Revisar, aprobar o devolver trabajos |
| Decano/Director | Facultad o centro completo | Aprobar o devolver trabajos |
| Administrador VIEX | Toda la institución | Evaluar, certificar, emitir reportes |
| Super Admin | Acceso total | Gobernanza de usuarios y catálogos |
VIEX incluye un sistema de administración completo para la gestión centralizada de catálogos y configuración del sistema.
- Estadísticas en tiempo real de todos los módulos del sistema
- Distribución visual de trabajos por estado con gráficos interactivos
- Métricas de actividad de usuarios y trabajos (últimos 7 días)
- Accesos rápidos a todas las funcionalidades administrativas
El sistema permite administrar todos los catálogos de forma unificada:
| Catálogo | Descripción | Funcionalidades |
|---|---|---|
| Tipos de Trabajo | Clasificación de trabajos de extensión | CRUD completo, activación, conteo de trabajos |
| Estados de Trabajo | Flujo de aprobación con colores | Reordenamiento visual, estados finales, timeline |
| Unidades Organizacionales | Estructura universitaria jerárquica | Gestión padre-hijo, códigos únicos, tipos |
| Tipos de Proyectos | Clasificación de proyectos institucionales | CRUD, validaciones, conteo de proyectos |
- Interfaz Unificada: Todos los catálogos gestionados desde
/admin/catalogs - Operaciones AJAX: Sin recarga de página para mejor experiencia
- Búsqueda en Tiempo Real: Filtrado dinámico de todos los elementos
- Operaciones Masivas: Activar, desactivar, eliminar elementos en lote
- Exportación de Datos: Descarga de catálogos en Excel/CSV
- Validaciones Robustas: Form Requests para integridad de datos
- Cache Inteligente: Optimización automática de consultas frecuentes
- Diseño Moderno: AdminLTE 3 con animaciones CSS y efectos interactivos
- Drag & Drop: Reordenamiento visual de estados de trabajo
- Colores Dinámicos: Estados con colores personalizables desde base de datos
- Responsive Design: Optimizado para escritorio, tablet y móvil
Acceso: Usuarios con rol super_admin o viex_admin → /admin/catalogs
┌───────────────────────────────────────────────────────────────┐
│ Frontend (Vite + AdminLTE + Blade) │
│ - Formularios dinámicos y dashboards por rol │
│ - Componentes reutilizables y gráficos interactivos │
└───────────────▲───────────────────────────────────────────────┘
│ HTTP/JSON (Laravel routes + controllers)
┌───────────────┴───────────────────────────────────────────────┐
│ Backend (Laravel 11+) │
│ - Controladores delgados + Policies │
│ - Modelos con lógica de negocio y eventos │
│ - Jobs/Listeners para tareas diferidas │
│ - Spatie Permission & MediaLibrary │
└───────────────▲───────────────────────────────────────────────┘
│ Eloquent + yajra/laravel-oci8
┌───────────────┴───────────────────────────────────────────────┐
│ Bases de datos │
│ - Oracle (producción) │
│ - SQLite (testing/desarrollo) │
└───────────────────────────────────────────────────────────────┘
| Categoría | Herramientas |
|---|---|
| Backend | Laravel 11+, PHP 8.2, Eloquent, yajra/laravel-oci8 |
| Frontend | Vite, AdminLTE 3, Blade, jQuery, Select2 |
| Autenticación | Laravel Breeze (personalizado) |
| Permisos | Spatie/laravel-permission |
| Archivos | Spatie/laravel-medialibrary |
| Testing | PHPUnit, Laravel Testbench |
| Calidad de código | Laravel Pint, PHPStan nivel 6 |
- PHP 8.2+ con extensiones
oci8,mbstring,xml,curl,zip,gd - Composer 2.x
- Node.js 18.x / npm 9.x
- Oracle Instant Client o SQLite
git clone git@gitlab.com:viex/extension-platform.git
cd extension-platform
composer install
npm ci
cp .env.example .env
php artisan key:generateAPP_NAME="VIEX"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://viex.local
DB_CONNECTION=sqlite
QUEUE_CONNECTION=database
FILESYSTEM_DISK=publicPara entornos Oracle, configurar las variables DB_HOST, DB_SERVICE_NAME, DB_USERNAME, DB_PASSWORD.
php artisan migrate --seed
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider"| Tipo | Comando |
|---|---|
| Suite completa | php artisan test |
| Cobertura | php artisan test --coverage |
| Linter | ./vendor/bin/pint |
| Análisis estático | ./vendor/bin/phpstan analyse |
Ejecutar pruebas antes de cada merge hacia
developomain.
-
Controladores delgados → validación en Form Requests, lógica en Models o Services.
-
Eventos y listeners para acciones costosas o asíncronas.
-
Policies obligatorias para control de acceso.
-
Internacionalización en
resources/lang/es/*.php. -
Commits convencionales (
feat,fix,docs,refactor,test, etc.). -
Ramas:
develop: rama de integraciónfeature/*: nuevas funcionalidadesfix/*: correccioneshotfix/*: parches críticos
| Archivo | Contenido |
|---|---|
doc/tecnica/Manual_Procedimientos.md |
Flujo normativo aprobado por VIEX |
doc/tecnica/Documento_Tecnico_Funcional.md |
Requerimientos funcionales y técnicos |
doc/tecnica/Sistema_Administracion_VIEX.md |
Documentación técnica del sistema de administración |
doc/usuario/Manual_Administrador_VIEX.md |
Manual del usuario administrador |
doc/sega/DIST.md |
Alcance y jerarquía de roles/unidades |
doc/usuario/ |
Guías operativas por rol |
- Soporte TI VIEX: soporte.viex@up.ac.pa
- Mesa de ayuda: ext. 2450 (horario laboral)
- Incidencias: Service Desk UP → categoría Plataforma VIEX
-
Sincronizar rama de desarrollo
git pull origin develop
-
Instalar dependencias
composer install --no-dev --optimize-autoloader npm ci && npm run build -
Actualizar base de datos
php artisan migrate --seed
-
Optimizar configuración
php artisan config:cache php artisan route:cache php artisan view:cache
-
Ejecutar colas y scheduler
php artisan queue:work --tries=3 & php artisan schedule:run
Paso 1 — Preparar el servidor
-
PHP 8.2+, Nginx o Apache 2.4
-
Extensiones requeridas (
oci8,pdo,gd, etc.) -
Configurar permisos de escritura:
chmod -R 775 storage bootstrap/cache chown -R www-data:www-data .
Paso 2 — Despliegue automatizado (recomendado)
Usar Git pull o herramientas CI/CD:
git fetch origin main
git checkout main
git pull origin main
composer install --no-dev --optimize-autoloader
npm ci && npm run build
php artisan migrate --forcePaso 3 — Optimización post-deploy
php artisan optimize
php artisan queue:restartPaso 4 — Backups
- Base de datos Oracle:
expdp viex_app/viex_app@VIEXEXT ... - Archivos: sincronizar
storage/app/public/a S3 o NAS institucional
- Logs del sistema:
storage/logs/laravel.log - Colas fallidas:
php artisan queue:failed - Jobs pendientes:
php artisan queue:listen - Estado del sistema:
/healthendpoint interno para supervisión
VIEX · Vicerrectoría de Extensión · Universidad de Panamá 🏛️ www.up.ac.pa | 📧 extension@up.ac.pa
Digitalizando la extensión universitaria.