Appearance
Frontends: dependencias y configuración
Dependencias comunes
Presentes en los siete frontends, con la misma versión.
| Paquete | Versión | Uso |
|---|---|---|
vue | 3.5.32 | Framework de interfaz |
vue-router | 5.0.4 | Enrutamiento |
pinia | 3.0.4 | Estado global |
@vueuse/core | 14.3.0 | Composables utilitarios |
tailwindcss | 4.3.0 | Estilos por clases utilitarias |
@tailwindcss/vite | 4.3.0 | Integración de Tailwind con Vite |
reka-ui | 2.9.8 | Componentes accesibles sin estilo (base de shadcn-vue) |
class-variance-authority | 0.7.1 | Variantes de estilos de componentes |
clsx · tailwind-merge | 2.1.1 · 3.6.0 | Combinación de clases CSS |
@lucide/vue | 1.16.0 | Iconos |
Dependencias por función
| Paquete | Versión | Uso | Proyectos |
|---|---|---|---|
@apollo/client · @vue/apollo-composable · @vue/apollo-util | 3.11.8 · 4.2.1 · 4.2.2 | Cliente GraphQL | Todos excepto auth-authorization-frontend |
graphql · graphql-tag | 16.12.0 · 2.12.6 | Definición de operaciones GraphQL | Ídem |
apollo-upload-client | 18.0.1 | Subida de archivos por GraphQL | Ídem |
date-fns | 4.3.0 | Manejo de fechas | Ídem |
vee-validate · @vee-validate/zod · zod | 4.15.1 · 4.15.1 · 4.4.3 | Validación de formularios | Todos excepto auth-authorization-frontend y la estación |
@embedpdf/* (core, engines y plugins) | 2.14.4 | Visor de PDF embebido | frontend-public-auth y los tres portales del SPS |
js-sha1 | 0.7.0 | Hash SHA-1 en el cliente | frontend-public-auth y los tres portales del SPS |
@tiptap/* (vue-3, starter-kit, pm y extensiones) | 3.26–3.27 | Editor de texto enriquecido | Los tres portales del SPS |
@tiptap/extension-mention | 3.27.1 | Menciones en el editor | Portales administrativo y de comisiones |
tiptap-pagination-plus | 3.1.0 | Paginación en el editor | Portal administrativo |
echarts | 6.1.0 | Gráficos | Portales administrativo y de comisiones |
auth-authorization-frontend no usa GraphQL de forma general: consume los endpoints REST del flujo de login con Fetch.
Herramientas de desarrollo
| Paquete | Versión | Uso |
|---|---|---|
vite | ^8.0.8 | Servidor de desarrollo y empaquetado |
@vitejs/plugin-vue | ^6.0.6 | Soporte de componentes .vue |
vite-plugin-vue-devtools | ^8.1.1 | Vue DevTools integradas en desarrollo |
eslint · @eslint/js · eslint-plugin-vue · globals | ^10.2.1 · ^10.0.1 · ~10.8.0 · ^17.5.0 | Linter |
oxlint · eslint-plugin-oxlint | ~1.60.0 | Linter rápido (se ejecuta antes de ESLint) |
prettier · eslint-config-prettier | 3.8.3 · ^10.1.8 | Formato de código |
npm-run-all2 | ^8.0.4 | Ejecución de scripts lint:* en serie |
tw-animate-css | ^1.4.0 | Animaciones para Tailwind |
@types/node | ^25.9.1 | Tipos de Node para el editor |
cypress · eslint-plugin-cypress · start-server-and-test | ^15.16.0 · ^6.3.1 · ^3.0.5 | Pruebas end-to-end (solo auth-frontend-admin) |
Componentes de interfaz (shadcn-vue)
Los componentes de src/components/ui/ siguen shadcn-vue: su código fuente vive en el repositorio (no es una librería instalada) y se construye sobre Reka UI y Tailwind. La configuración está en components.json (estilo new-york, iconos lucide, CSS en src/assets/css/tailwind.css).
Variables de entorno
Las variables VITE_* se definen en .env (plantilla .env.example) y se incrustan en el bundle al compilar. La lista por proyecto está en Imágenes Docker.
| Variable | Descripción |
|---|---|
VITE_TITLE_APP | Título de la aplicación |
VITE_API_ENDPOINT | URL base del backend |
VITE_API_ENDPOINT_PATH | Path del schema GraphQL (por ejemplo /admin-schema/) |
VITE_API_ENDPOINT_FILES | URL base de archivos públicos |
VITE_API_FILES_PRIVATE | URL base de archivos privados |
VITE_AUTH_ORIGIN_PORTAL | Portal de origen enviado al iniciar sesión (por ejemplo PORTAL_ADMINISTRATIVO) |
VITE_AUTH_PUBLIC_URL | URL del portal de cuenta del IDP ("Mi cuenta") |
VITE_LOGIN_REDIRECT_URL | URL del portal de login del IDP (el logout usa <url>/logout) |
VITE_PUBLIC_AUTH_PORTAL · VITE_ADMIN_AUTH_PORTAL | URLs de los portales del IDP |
VITE_DOMAIN_PUBLIC_URL | Se recibe en el build; sin uso en el código actual |
VITE_JACOBITUS_API_URL | URL del servicio Jacobitus (firma digital con token) |
VITE_MANUAL_TECNICO_URL · VITE_MANUAL_USUARIO_URL | Enlaces a los manuales |
Scripts y ejecución local
sh
corepack enable pnpm
pnpm install
cp .env.example .env # completar valores
pnpm run dev| Script | Acción |
|---|---|
pnpm run dev | Servidor de desarrollo |
pnpm run build | Build de producción en dist/ |
pnpm run preview | Sirve el build localmente |
pnpm run lint | Oxlint + ESLint con corrección automática |
pnpm run format | Prettier sobre src/ |
pnpm run test:e2e | Pruebas Cypress (solo auth-frontend-admin) |
Puertos y host local de desarrollo (package.json y server.allowedHosts de vite.config.js):
| Frontend | Puerto | Host local |
|---|---|---|
auth-authorization-frontend | 8080 | login-auth-eje-local.app.com.bo |
auth-frontend-admin | 7070 | admin-auth-eje-local.app.com.bo, auth-admin-eje-local.app.com.bo |
frontend-public-auth | 9092 | auth-public-eje-local.app.com.bo |
frontend-portal-admin-seleccion-postulantes | 9090 | admin-portal-seleccion-eje-local.app.com.bo |
frontend-portal-postulantes-seleccion-postulantes | 9091 | postulantes-portal-seleccion-eje-local.app.com.bo |
frontend-portal-comisiones-seleccion-postulantes | 9093 | comisiones-portal-seleccion-eje-local.app.com.bo |
frontend-estacion-examen | 9094 | estacion-examen-eje-local.app.com.bo |
