Documentacion funcional del sitio COIL UNAM (Vue 2 + Tailwind). Resume la configuracion, scripts y estructura para ejecutar y mantener el proyecto.
- Node.js 16+ y npm.
- Acceso a Internet para descargar dependencias y consumir la API configurada en
src/api.js.
- Instalar dependencias:
npm install - Levantar el entorno de desarrollo:
npm run serve - Abrir
http://localhost:8080(puerto por defecto de Vue CLI).
npm run serve: entorno de desarrollo con hot reload.npm run build: compila la aplicacion para produccion endist/.npm run lint: ejecuta ESLint sobre el codigo fuente.
- Vue 2.6 con Vue Router.
- Tailwind CSS 3 para estilos utilitarios (entrada en
src/assets/css/tailwind.css). - Font Awesome (iconos solidos) via
@fortawesome/vue-fontawesome. - Moment + moment-timezone para fechas.
- No necesitas instalar Vue CLI global; con
npm installya tienes todo (vue-cli-service viene en devDependencies). - Las paginas estan en
src/views/como componentes de un solo archivo.vue(template + script + style). - La navegacion esta en
src/router.js: cadapathapunta a una vista; si agregas una nueva pagina, importa la vista y agrega una ruta. - El punto de entrada es
src/main.js, que monta la app y carga estilos globales. - Para probar:
npm run servelevantahttp://localhost:8080. Para compilar:npm run buildgeneradist/.
src/main.js: arranque de Vue, registro de iconos y carga global de estilos.src/router.js: definicion de rutas publicas para home, eventos, recursos y ediciones de Coilaborando (2023-2025).src/App.vue: layout principal conBurgerMenuyrouter-view.src/api.js: helpers de fetch contrahttps://semanahddata.cuaieed.unam.mx/api/para eventos, demos y comisiones. Contiene token embebido (ver notas de seguridad).src/timezone.js: catalogo de zonas horarias para formularios.src/components/: componentes UI (menus, formularios, alertas, carruseles).src/views/: paginas del sitio, incluyendo jornadas y entregas por anio de Coilaborando.
- Home (
/,HomeCoilView.vue): portada del sitio. - Acerca de (
/acerca-de,AboutCoilView.vue): informacion general COIL UNAM. - Te interesa diseñar un COIL (
/interes,InterestedCoilView.vue): guia para diseñar un COIL. - Testimonios (
/testimonios,TestimonialsCoilView.vue). - Presencia (
/presencia,PresenceCoilView.vue): COIL en medios. - Publicaciones (
/publicaciones,PublicationsCoilView.vue): materiales UNAM. - Recursos (indice
/recursos,resources/IndexView.vue): categorías de recursos. - Recursos > Articulos (
/recursos/articulos,resources/ArticlesView.vue). - Recursos > Libros (
/recursos/libros,resources/BooksView.vue). - Recursos > Infografias (
/recursos/infografias,resources/InfographicsView.vue). - Recursos > Varios (
/recursos/varios,resources/SomeView.vue). - Recursos > Tutorial (
/recursos/tutorial,resources/TutorialView.vue). - Recursos > Workbook (
/recursos/workbook,resources/WorkbookView.vue). - Eventos (
/eventos,EventsCoilView.vue). - Comision (
/consejeros,ComissionCoilView.vue). - Registro (
/registro,RegistrationCoilView.vue). - Jornada COIL (
/jornada-coil,JornadaCoilView.vue). - 1a Jornada (
/1jornada,Jornada1stView.vue). - 2a Jornada (
/2jornada,Jornada2thView.vue). - 3a Jornada (
/3jornada,Jornada3thView.vue). - COILaborando actual (
/coilaborando,CoilaborandoView.vue): boletin vigente. - COILaborando previos (
/coilaborando/previos,PreviosView.vue): indice de boletines. - COILaborando ediciones 2023 (
/coilaborando/previos/2023/{mes}, vistas enviews/coilaborando/2023/). - COILaborando ediciones 2024 (
/coilaborando/previos/2024/{mes}, vistas enviews/coilaborando/2024/). - COILaborando ediciones 2025 (
/coilaborando/previos/2025/{mes}, vistas enviews/coilaborando/2025/).
- Variables sensibles: actualmente el token API esta hardcodeado en
src/api.js. Moverlo a variables de entorno (.env.localcon prefijoVUE_APP_) antes de publicar o compartir el codigo. - Rutas: al agregar nuevas paginas, registrar el componente en
src/router.jsy crear la vista dentro desrc/views/(o subcarpetas por anio). - Estilos: usar utilidades Tailwind cuando sea posible; para estilos globales, editar
src/assets/css/tailwind.csso agregar clases locales en los componentes. - Imágenes: los recursos estan bajo
src/assets/images/con carpetas por categoria y anio para mantener orden. - Largos de linea: mantener lineas en componentes Vue por debajo de ~120 caracteres; dividir props/atributos largos en varias lineas para preservar legibilidad y cumplir con linters.
- Linter/Prettier para el limite:
npm run lintusa ESLint con Prettier. Para forzar 120 caracteres agrega.prettierrccon{ "printWidth": 120 }y en.eslintrc.jssuma"max-len": ["warn", { "code": 120, "template": 120, "ignoreUrls": true }](o"vue/max-len"si prefieres aplicar solo a templates).
- Vista principal vigente:
src/views/CoilaborandoView.vueimporta el numero actual comoNewsletterViewy muestra su portada + boton "ver anteriores". - Patrón de previos (ej. Octubre 2025): contenedor con
HeaderCoil, portadacover.jpg, contenido del boletin y CTA al indice de previos. - Patrón vigente (ej. Diciembre 2025 actual): puede ser más simple, pero se recomienda alinear al patrón de previos para consistencia.
Pasos para archivar el numero vigente en previos
- Crear/ajustar la vista en
src/views/coilaborando/YYYY/MesView.vuecon:nameacorde (ej.DiciembreView).- Layout con contenedor + portada +
HeaderCoil+ CTArouter-linka{ name: 'previos' }. - Usar assets en
src/assets/images/coilaborando/YYYY/mes/(incluyecover.jpg).
- Registrar ruta en
src/router.jscon path/coilaborando/previos/YYYY/mesynameunico (ej.2025-diciembre). - Agregar entrada en
src/views/coilaborando/PreviosView.vue(arreglobulletins):number,cover,name(coincide con la ruta). - Mantener las imagenes del numero archivado en su carpeta correspondiente; no mover assets.
Pasos para publicar un nuevo numero vigente
- Crear la nueva vista (ej.
src/views/coilaborando/2026/EneroView.vue) siguiendo el mismo layout de previos (portada +HeaderCoil+ CTA a previos). - Guardar assets en
src/assets/images/coilaborando/2026/enero/(incluyecover.jpg). - En
src/views/CoilaborandoView.vue, cambiar el import deNewsletterViewa la nueva vista y actualizar la portada mostrada. - Opcional: preparar desde ya la ruta futura en
router.jsy la entrada enPreviosView.vue(se activará cuando el numero pase a previos).
Checklist rapido
router.js: ruta connameunico por numero.PreviosView.vue: entrada enbulletinsalineada alnamey portada correcta.CoilaborandoView.vue: importa el numero vigente y muestra la portada actual.- Assets: organizados por anio/mes bajo
src/assets/images/coilaborando/. - Revisión:
npm run serve+npm run lintantes de build.
- Ejecutar
npm run build; se generadist/listo para servir en Nginx/Apache o subir a un hosting estatico. - Si se despliega detras de un subpath, ajustar
publicPathenvue.config.jssi es necesario.
- No hay pruebas automatizadas configuradas. Ejecutar
npm run lintantes de subir cambios.
- Crear rama de trabajo desde
vuejs. - Instalar dependencias, correr
npm run serve, realizar cambios y validar visualmente. - Ejecutar
npm run linty generar build de prueba si aplica.
GPL-3.0