🧠

Sistema de captura del Formato 911 para Coordinación General de Vinculación y Cooperación Académica

Resumen

La SEP solicita en septiembre a todos los niveles educativos en México datos sobre su infraestructura, empleados y alumnos mediante el formato 911.

Para esto el departamento administrativo de UABC propone el proyecto911, sistema software que sistematiza y automatiza los esfuerzos de la generación de reportes del formato 911 para la Coordinación General de Vinculación y Cooperación Académica por lo que nuestros alcance ellos lo determinan.

Este proyecto se encamarca en la visión universitaria:

UABC

Misión y Visión

Política institucional

Cultura digital

Infraestructura, equipamiento y seguridad

Gobernanza universitaria, transparencia y rendición de cuentas

Acceso

Los sistemas solo funcionan dentro de la red universitaria. En caso de que se quiera accesar desde afuera, debe usarse una VPN.

💡
Por favor, revisa que las CIMAPIS funcionen con la VPN destinada a este fin antes de realizar cualquier tipo de instalación del proyecto. Si estás APIs no funcionan, contactate con el departamento de informática.

http://148.231.211.41:3001/

Enlaces de interés

https://www.f911.sep.gob.mx

https://github.com/sanchezcarlosjr/proyecto911
Examples
Set plantuml:{filename} as a fence information. filename is used as the file name of generated diagrams. In the following case, md-sample-sequence.svg is created. filename is required. @startuml actor Foo1 boundary Foo2 control Foo3 entity Foo4 database Foo5 collections Foo6 Foo1 -> Foo2 : To boundary Foo1 -> Foo3 : To control Foo1 -> Foo4 : To entity Foo1 -> Foo5 : To database Foo1 -> Foo6 : To collections @enduml @startuml can be omitted.
https://sanchezcarlosjr.github.io/proyecto911/

Palabras clave

RUP, SEP, formato 911

Introducción

Antecedentes

Procedimiento de captura de datos (actual):

https://portal.ucol.mx/content/micrositios/186/file/procedimientos/02_captura_911_ES.PDF

https://planeacion.uan.mx/wp-content/uploads/2021/09/Presentacion-formato-911-Nivel-Superior.pdf

https://indicadores.uabc.mx/indicadores/AcercaDe/downloadfile

https://planeacion.uan.mx/wp-content/uploads/2021/09/ESCUELA-911.9-1.pdf

https://planeacion.uan.mx/wp-content/uploads/2021/09/INFRAESTRUCTURA-911-9I-2.pdf

Estadística Educativa del Formato 911. Estadística de Educación Inicial, Especial, Básica, Media Superior, Superior y Capacitación para el Trabajo 2017-2018, (Fin de cursos)
La información estadística de los alumnos se captura por grado, sexo, Existencia y promovidos, dependiendo del nivel educativo; así como discapacidades, migración, y grupos por grado.
https://www.inegi.org.mx/rnm/index.php/catalog/539

https://www.planeacion.sep.gob.mx/principalescifras/

http://www.dgei.unam.mx/hwp/metodologia/

https://dgesui.ses.sep.gob.mx/sep.subsidioentransparencia.mx/2021/subsidio-ordinario/universidad/UABC

http://transparencia.uabc.mx/Estad_e_Indic/IndicadoresCalidad/20082009/DES/DESCsDeportes.pdf

http://transparencia.uabc.mx/Estad_e_Indic/IndicadoresCalidad/2006/Programa/PrgCsEducacionHumanidades.pdf

Documentos organizacionales de gestión de proyectos

Caso de proyecto organizacional (Proyectos anteriores, proyectos parecidos internos/externos/,…).

Plan de gestión de beneficios del proyecto.

Objetivos del proyecto

Identificar una propuesta de valor para generar un Sistema de Internacionalización óptimo, que permita desarrollar módulos de información que agilicen las funciones del capital humano, reduzcan tiempos de captura y reportes institucionales.

Aunque la Oficina de Planeación y Desarrollo Institucional está realizando un sistema parecido, nosotros nos concentraremos en terminar los requerimientos anteriores y cumpliremos con lo pedido para nuestro principal cliente que es la maestra Judith (véase el riesgo asociado).

En este orden de ideas nuestro principal propósito es volver funcional el diseño anterior y agregar nuevos requerimientos por parte del PPVC para el Coordinación General de Vinculación y Cooperación Académica.

Modelo de dominio

classDiagram
    class Modulo {
        listar(consulta)
        editar(id)
        crear()
        eliminar(id)
    }
    Modulo <-- MovilidadAcademicaDeEntrada
    Modulo <-- MovilidadAcademicaDeSalida
    Modulo <-- IntercambioEstudiantilDeSalida
    Modulo <-- IntercambioEstudiantilDeEntrada
    Modulo <-- Convenios

Requisitos

Mockups. Guía de estilos gráficos. Layout. Tema.

Componentes

Logo

Colores

Aquí listaremos como deben ser los colores y el conjunto de componentes reutilizables.

{
    type: 'light',
    primary: {
        main: '#00723F',
    },
    secondary: {
        light: '#DD971A',
        main: '#DD971A',
        dark: '#DD971A',
        contrastText: '#fff',
    },
    error: {
        main: '#af3c0b',
    },
    warning: {
        main: '#AF870B',
    },
    info: {
        main: '#20419A',
    },
    background: {
        default: '#fcfcfe',
    }
}
typography: {
        fontFamily: '"Noto Sans", "Monserrat", Arial, sans-serif',
}

Layouts

Inicio de sesión

Lista

Crear

Editar

Menú de usuario

Análisis y diseño

Como los módulos son iguales en cuanto a funcionalidad pero no en cuanto información presentamos un esquema genera por las funcionalidades de cada módulo.

Como en general existen varios componentes y estrictamente no seguimos el paradigma orientado a objetos, mostramos la secuencia de una interacción desde el usuario.

Listar

sequenceDiagram
    ModuloLista->>ModuloLista: Renderiza columnas /modulo
    ModuloLista->>ModuloIndice:  Authorization: Bearer [JWT TOKEN] /api/modulo
    ModuloIndice->>ModuloIndice: Verificar credenciales 
    ModuloIndice->>MongoDB: Listar todos los miembros del modulo
    MongoDB--)ModuloLista:  Miembros [{"id": "...", ...}, ...]

Buscar

sequenceDiagram
    ModuloLista->>ModuloLista: Renderiza columnas /modulo/?filter{q="..."}
    ModuloLista->>ModuloIndice:  Authorization: GET Bearer [JWT TOKEN] /api/modulo/?filter{q="..."}
    ModuloIndice->>ModuloIndice: Verificar credenciales 
    ModuloIndice->>MongoDB: Listar todos los miembros del modulo que cumplen q
    MongoDB--)ModuloLista:  Miembros [{"id": "...", ...}, ...]

Crear

sequenceDiagram
    ModuloCrear->>ModuloCrear: Renderiza campos /modulo/crear
    ModuloCrear->>ModuloIndice: POST Authorization: Bearer [JWT TOKEN] /api/modulo/ body={..campos}
    ModuloIndice->>ModuloIndice: Verificar credenciales 
    ModuloIndice->>MongoDB: Crear
    MongoDB--)ModuloCrear:  Mensaje de creación exitosa

Editar

sequenceDiagram
    ModuloEditar->>ModuloEditar: Renderiza campos /modulo/editar/:id
    ModuloEditar->>ModuloIndice: PUT Authorization: Bearer [JWT TOKEN] /modulo/:id body={..campos}
    ModuloIndice->>ModuloIndice: Verificar credenciales 
    ModuloIndice->>MongoDB: Edición de registro :id
    MongoDB--)ModuloEditar:  Mensaje de edición exitosa

Eliminación

sequenceDiagram
    BotonEliminacion->>ModuloIndice: DELETE Authorization: Bearer [JWT TOKEN] /modulo/:id
    ModuloIndice->>ModuloIndice: Verificar credenciales 
    ModuloIndice->>MongoDB: Eliminación de registro :id
    MongoDB--)ModuloEditar:  Mensaje de eliminación exitosa

Construcción

Ecosistema (conjunto de tecnologías, procesos, … usados)

Para instalar el proyecto debe usarse docker. En caso de que se necesite usar la CimaAPI, debe configurarse y usarse en toda interacción la VPN proporcionada por la UABC, las credenciales de CimaAPI deberán estar actualizadas y podrán ser solicitadas a Gabriel Aparicio Hernandez.

https://sanchezcarlosjr.github.io/proyecto911/ecosistema

Flujo de trabajo

Git workflow

Nuestra política es Git Flow.

Mantegamos lo simple:

Referencias

https://www.youtube.com/watch?v=M_3VeKPFi5U&ab_channel=CodelyTV-Redescubrelaprogramación

Pruebas

Pruebas de integración

Usando Cypress probamos la funcionalidad del sistema de manera automática.

Pruebas de aceptación

Con la Coordinación y la maestra Judith con clientes finales, probamos manualmente que el sistema cumpliera las expectativas.

Despliegue

Vault

Para asegurar, almacenar y controlar el acceso a tokens, contraseñas, certificados y llaves de cifrado para proteger secretos y otros datos sensibles los guardamos en Google Drive.

Instalación

Prerequisitos

Asegúrate que tienes acceso a la CIMAPI, para eso necesitas la VPN y las credenciales de acceso. Por favor, consulta la admnistradora para mayor información.

Pasos:

git clone https://github.com/sanchezcarlosjr/proyecto911/
💡
Puedes encontrar un ejemplo completo funcional de las dependencias secretas con las claves, y otros archivos de configuración en drive (Archivos de configuración).
# Keys
# Identity
ca /gluetun/ca.crt
tls-auth /gluetun/ta.key 1
docker compose up

Para este tema recomendamos leer:

Gestión

Gestión

Generación/NombrePeriodo de trabajo
2022-2 Admnistración de proyectos


Planificación

Riesgos

Legales

Contratos

Patentes

Licencia

Confidencialidad

Términos de uso

Presupuesto y costos

Sobre los miembros del equipo. Relación trabajadores y personas.

NombreTrabajador
Edgar Rodriguez AntillonSysadmin. Encargado de la infraestructura.
Omar Alonso Del Rio PeraltaLíder del proyecto “Capa de presentación” y desarrollador de la misma.
Carlo Alfredo Pano FloresDesarrollador “Capa de presentación”.
Francisco Javier Huerta SilvaDesarrollador de “Capa de presentación”.
Carlos Eduardo Sánchez TorresLíder del proyecto “Capa de datos y de dominio”, coordinador de ambos equipos y arquitecto.
José Andrés Herrera HiralesDesarrollador de “Capa de de datos y de dominio”.
Jorge Garcia SerranoDesarrollador de “Capa de de datos y de dominio”.
Miguel Angel Martinez AlonsoDesarrollador de “Capa de de datos y de dominio”.

Guías de estilo y acuerdos de equipo

La documentación se escribe en español, se supone leída

Para mantener una comunicación interna fluida, usaremos el español.

El código se escribe en inglés

Para mantener el estándar internacional, usaremos el inglés.

Usaremos un repositorio propio: bifurcación (fork) del proyecto anterior

Porque el equipo anterior está trabajando en sus propios proyectos, es difícil su colaboración en la continuidad del proyecto, por lo que hemos decidido bifurcar el proyecto anterior.

https://github.com/sanchezcarlosjr/proyecto911

Nuestro proceso de desarrollo de software es RUP

El proceso de desarrollo de software que se adapta a nuestras necesidades es RUP; este fue elegido porque no tenemos todo el conjunto de suposiciones de los procesos ágiles (reuniones todos los días, un cliente disponible, control de los riesgos derivados de los miembros del equipo, los miembros del equipo no manejan pruebas automatizadas, por lo que, mucho menos TDD, ni pensar en que una arquitectura emerja sola) y algunos integrantes opinan que los ágiles poseen demasiada vaguedad.

RUP no es Waterfall.

Comunicación

Requisitos no funcionales implícitos

Seguimos la guía de estilos de la UABC [1].

La interfaz gráfica está pensada en español, aunque no se descarta la puerta para otros idiomas.

Sobre tecnologías y el trabajo en equipo

Los miembros del equipo aceptan el conjunto de tecnologías descritas en .

Pero de ello no se sigue que sepan usarlas.

Como advertencia para nosotros y futuros desarrolladores del proyecto, está documentación no pretende ser un tutorial o explicación de sistemas o librerías externas o subyacentes, suponemos la especialización y el aprendizaje individual como eje central más que el logro del proyecto, por manifestarse en un contexto educativo y no productivo.

En un trabajo «real», los requisitos y el proceso de contratación son una barrera de entrada en cuánto a las habilidades en tecnologías y conocimientos, además suelen filtrar a futuros compañeros problemáticos: tú y tus compañeros no cuentan con estas condiciones, por lo que es un gran riesgo para el proyecto, de esto se sigue el aumento de la probabilidad de no entrega.

Advertencia para futuros desarrolladores o equipos

En la medida de la posible usa estos documentos y nuestro esquema de trabajo.

¡No dudes en pedir los permisos para continuar el proyecto!

Glosario y abreviaturas

SEP. Secretaría de educación pública. https://www.gob.mx/sep

Manual de usuario

https://docs.google.com/document/d/1fBOpZWyohavjpiooqlXq7T-Wbbmm-m9d_7z7UfN5SM8/edit

Minutas

Drive con grabaciones y otros documentos.

https://drive.google.com/drive/folders/1VeyB60mcBGjmFAQ3Dpc_BIisJiWXkoBM?usp=sharing

Referencias

[1] http://iide.ens.uabc.mx/documentos/academicos/normatividad/manual_de_identidad_grafica_UABC_etapa_1.pdf