Skip to content

Frontends: estructura ​

Los siete frontends son aplicaciones de página única (SPA) con Vue 3, empaquetadas con Vite y con la misma organización base.

Organización general ​

text
<frontend>/
├── public/                # Archivos estáticos copiados tal cual al build
├── src/
│   ├── main.js            # Punto de entrada: crea la app, registra Pinia y el router
│   ├── App.vue            # Componente raíz
│   ├── assets/            # CSS (Tailwind), imágenes y fuentes
│   ├── components/        # Componentes reutilizables
│   │   └── ui/            # Componentes base (shadcn-vue / Reka UI), alias @ui
│   ├── composables/       # Lógica reutilizable (Composition API)
│   ├── configs/           # Variables de entorno, cliente Apollo y constantes
│   ├── graphql/           # Queries y mutations GraphQL
│   ├── lib/               # Utilidades (por ejemplo combinación de clases CSS)
│   ├── router/            # Rutas y guards de Vue Router
│   ├── shared/            # Utilidades y estado compartido entre módulos
│   ├── stores/            # Stores globales (Pinia)
│   └── views/             # Vistas asociadas a rutas, una carpeta por módulo
├── index.html             # HTML base donde Vite inyecta la aplicación
├── vite.config.js         # Plugins, alias y configuración de build
├── components.json        # Configuración de shadcn-vue
├── eslint.config.js · jsconfig.json
├── .env.example           # Plantilla de variables VITE_*
├── Dockerfile · nginx.conf
└── package.json · pnpm-lock.yaml · pnpm-workspace.yaml

Flujo de arranque ​

index.html carga src/main.js, que crea la aplicación con createApp, registra Pinia y el router, y monta App.vue. El router renderiza la vista de views/ que corresponde a la URL.

Carpetas propias de algunos proyectos ​

CarpetaProyectosUso
src/api/auth-authorization-frontendCliente HTTP (Fetch) de los endpoints REST del flujo de login
src/services/auth-authorization-frontendOrquestación de llamadas del flujo de login
src/auth/Portales del SPS, estación, frontend-public-authInicio de sesión vía IDP y manejo de sesión
src/jacobitus/frontend-public-authIntegración con Jacobitus (firma digital con token) para aprobar documentos
cypress/auth-frontend-adminPruebas end-to-end

Convenciones de build ​

vite.config.js define los alias @ (src/), @ui (src/components/ui/) y, en todos salvo el portal de postulantes, @pages (src/components/pages/, reservado; la carpeta no existe actualmente). La salida del build se organiza en js/, assets/img/ y assets/font/ con hash en el nombre.

Módulos por proyecto ​

Carpetas de src/views/ de cada frontend:

FrontendAPI que consumeMódulos (views/)
auth-authorization-frontendREST auth/flow/* + main-schemalogin-identifier, login-password, login-totp, login-register, login-recovery, login-consent, login-complete, auth-callback, logout
auth-frontend-adminadmin-schema (IDP)home, identidad-usuarios, interoperabilidad, configuracion
frontend-public-authpublic-schema (IDP)perfil, aprobacion-documentos, aprobacion-detalle, aprobacion-cd, federated
frontend-portal-admin-seleccion-postulantesadmin-schema (SPS)home, login, login-callback, convocatorias, convocatoria, convocatoria-historica, postulacion, postulacion-historica, historial-postulaciones, informes-previos, planillas, sgc, usuarios, accesos, custodio, interoperabilidad, provincias-municipios, preguntas-frecuentes, casos-ayuda
frontend-portal-comisiones-seleccion-postulantescomision-schemahome, login, login-callback, convocatorias, comision, sesion
frontend-portal-postulantes-seleccion-postulantespostulante-schemahome, login-callback, dashboard, convocatorias-vigentes, convocatoria-detalle, postulacion-proceso, aviso-detalle, perfil, verificacion, preguntas-frecuentes
frontend-estacion-examenestacion-examen-schemahome

Las APIs se describen en APIs de los backends.