NotasTecnicas/descripcion

Preinscripción a Carreras

Objetivos:

• Permitir que las personas se puedan preinscribir a carrera vía web, completando además una serie de datos censales.
• Que el sistema de gestión SIU-Guaraní pueda recuperar los datos de cada preinscripto que haya completado el trámite.
• En un futuro cercano, permitir a las autoridades consultas estadísticas sobre las preinscripciones.

Recomendaciones

• Navegar preferentemente con Mozilla Firefox o Google Chrome

Pre-Requisitos

Requisito Técnico Versión
PostgreSQL 8.4.x o superior
Apache 2.2.x
PHP 5.3.x. También se deben tener instaladas y activadas las extensiones php: curl, mbstring, pdo_pgsql, openssl, apc


Caché APC:

Como una medida de eficiencia para optimizar los tiempos de respuesta, el sistema utiliza una herramienta de caché para almacenar los resultados de consultas a la base de datos. El mecanismo de caché utilizado es APC, o caché alternativo de PHP (por las siglas en inglés de Alternative PHP Cache). Es un código de operación de caché libre y abierto para PHP. La primera vez que se ejecuta una consulta SQL, el resultado se almacena en un “catálogo” en caché. Los siguientes pedidos de la misma SQL serán respondidos con los datos cacheados en ese catálogo. Las operaciones del sistema que realizan actualizaciones en la base se encargan además de invalidar la porción de caché APC relacionada con esos datos, para que el siguiente pedido obtenga los últimos datos de la base. Pero si se modifican o se insertan datos externamente (por ejemplo, se agrega una sede desde SQL), habrá que invalidar manualmente la caché con una operación del perfil Administrador provista a tal efecto.


PARTES DEL MANUAL:


Instalación:

Para realizar una instalación, es necesario efectuar un checkout SVN desde la siguiente URL:  http://repositorio.siu.edu.ar/svn/guarani3w/trunk/preinscripcion3

Observación: esta es la URL del repositorio de desarrollo

Instalación de la base de datos

Crear una base de datos en PostgreSQL con encoding LATIN1. Ejemplo:

CREATE DATABASE preinscripcion
  WITH ENCODING='LATIN1'
       OWNER=postgres
       TEMPLATE=template0
       LC_COLLATE='C'
       LC_CTYPE='C'
       CONNECTION LIMIT=-1
       TABLESPACE=pg_default;

Usar el archivo “creacion_preinscripcion_3_4_0_para_postgresql.sql”, que se encuentra en la carpeta “Base de Datos / Creacion”, para crear la estructura de la base de datos. El script está en encoding LATIN1. Ejemplo:

psql preinscripcion -h localhost < creacion_preinscripcion_3_4_0_para_postgresql.sql -U postgres

Exportar datos desde Guaraní a esta base de datos, utilizando la operación IFZ00030 de Guaraní 2 o “Matrícula >> Inscripciones >> Exportar datos a Preinscripción” (800SIUMAT044) de Guaraní 3.

Definición de alias de acceso

En la carpeta “instalación”, crear a partir del archivo “alias_template.conf” un archivo “alias.conf”.
El template define los puntos de acceso de los perfiles funcionales del sistema SIU-Preinscripción (Administrador, Alumno, y en un futuro cercano Gerencial). Cuenta, además, con documentación “inline” para la configuración del mismo.
Se deberán definir apropiadamente los alias de los puntos de acceso en función de la ubicación de la carpeta de instalación. Opcionalmente, en la configuración del punto de acceso de administrador (<Location ~ "/preinscripcion_admin/*"> … ) podrían definirse restricciones de acceso, por ejemplo, para que sólo se pueda ingresar desde una intranet, siguiendo las reglas de Apache.
Se debe incluir el “alias.conf” en el archivo de configuración de Apache. Ejemplo:

Include "path/a/preinscripcion/instalacion/alias.conf"

Será necesario reiniciar Apache cada vez que se realice alguna edición en “alias.conf” para que los cambios surtan efecto.

Configuración del sistema

En la carpeta “instalacion”, crear a partir del archivo “config_template.php” un archivo “config.php”.
Este archivo contiene toda la configuración del sistema, incluyendo el acceso a base de datos, servidor de correo y los parámetros propios del sistema y de la generación de comprobante.
Recomendamos efectuar la configuración siguiendo la documentación “inline” provista en dicho archivo.

Etiquetas y Mensajes

Todo mensaje o etiqueta que se ve en pantalla o en el documento PDF (comprobante que genera el alumno) está definido en el archivo “mensajes.es.php”, de la carpeta “src/siu/mensajes/”.
Para cada mensaje o etiqueta, se define una entrada del tipo “<id_etiqueta>” => “<Descripción>”. Por ejemplo: “nombre_sistema” => “SIU-Preinscripción”.
Por defecto, los mensajes están definidos en español, en un registro de confianza (voseo).
Si se desean redefinir las etiquetas y mensajes, se sugiere seguir el siguiente procedimiento:

1. Crear un nuevo archivo en la carpeta “src/siu/mensajes/”, tomando como base el entregado por el SIU (“mensajes.es.php”). Ese archivo debe llamarse “mensajes.<locale>.php”, donde “<locale>” es el ID con el que será reconocido por el sistema. Ejemplo: “mensajes.es_ar.php”.
2. Redefinir los mensajes y/o etiquetas deseados en el nuevo archivo.
3. En el archivo de configuración (“config.php” de la carpeta “instalacion”), redefinir la entrada “locale” => “es”, de acuerdo al nombre de <locale> usado en el paso 1. Siguiendo el caso del ejemplo presentado: “locale” => “es_ar”.

Además, si se desea que algunas etiquetas de los campos de formulario se vean diferentes en el comprobante PDF que genera el alumno respecto a cómo se ven en pantalla, se deben agregar al final del archivo entradas respetando la siguiente convención:

• 'pdf_<nombre_campo_original>' => '<Nueva etiqueta>',

Ejemplo: si se desea que para la etiqueta 'nro_documento' se imprima 'Nro. documento' en lugar de 'Número de documento' (como está definida para la salida en pantalla), agregar una entrada:

• 'pdf_nro_documento' => 'Nro. documento',

Seteos para puesta en producción

Para poner el sistema en producción es necesario compilar los recursos estáticos del proyecto, utilizando el comando ‘preinscripcion’, situado en la carpeta ‘bin’ del proyecto:

preinscripcion compilar_recursos

Una vez finalizado, verificar que la variable ‘produccion’ del archivo ‘config.php’ esté establecida en ‘true’.

Perfil Administrador:

Se accede a este perfil mediante la URL definida apropiadamente en el archivo “alias.conf”.

La pantalla de login es diferente a la del perfil Alumno.


source:/trunk/img/preinscripcion3.png

También es distinta la tabla donde se almacenan los usuarios. Se trata de la tabla “usuarios”, que mantiene a los usuarios administradores y gerenciales, diferenciándose entre sí por el campo “es_admin” (1 para administradores, 0 para gerenciales).
Para ingresar por primera vez, se provee un usuario por defecto, cuyo nombre es “admin” y su clave “siu-123456”. En el primer acceso, se requerirá cambiar la clave por defecto:


source:/trunk/img/preinscripcion4.png

Una vez cambiada la clave, se podrá acceder al panel de administración.
Por el momento, cuenta con dos operaciones destinadas a la configuración de los campos del formulario de preinscripción, y otra para el borrado de la caché APC.
Se incorporarán a futuro operaciones para el mantenimiento de los usuarios gerenciales.

Operación: Configuración de campos de formulario

A través de esta operación el sistema permite realizar una personalización rápida de los campos que componen el formulario de preinscripción, definiendo, para cada campo y tipo de carrera:
• si el campo es visible,
• si es obligatorio completarlo antes de imprimir,
• si se imprime en el comprobante del alumno y
• si se utiliza en la confección de estadísticas en el futuro módulo Gerencial.

En primer lugar se debe elegir el tipo de carrera a configurar, a través del combo de opciones, lo que desplegará la lista de campos configurables, agrupados según la distribución en pantallas y secciones que se guarda en la visualización del perfil alumno. Para configurarlos, simplemente marcar o no la opción correspondiente a cada campo.


source:/trunk/img/preinscripcion5.png

Operación: Copiar configuración de campos de formulario

Esta operación sirve para replicar una configuración de un tipo de carrera en otro.
La operación es sumamente simple: se elige el tipo de carrera a usar como origen de configuración, luego el tipo de carrera al cual copiársela, y se presiona el botón “Copiar”.


source:/trunk/img/preinscripcion6.png

Operación: Borrar caché APC

Como se explicaba en las consideraciones técnicas, el sistema trabaja con un mecanismo de caché (APC) para evitar costos innecesarios de acceso a datos.
Si realizamos acciones de actualización mediante operaciones del sistema, la invalidación de la porción de caché APC relacionada con esos datos viene garantizada. Pero si se modifican o se insertan datos por fuera de la aplicación (por ejemplo, se agrega una sede desde SQL), habrá que invalidar manualmente la caché mediante esta operación.
Su aplicación es muy sencilla: basta con presionar el botón “Limpiar caché” para que se borre toda la caché del sistema.


source:/trunk/img/preinscripcion7.png

De completarse el borrado exitosamente, aparecerá el siguiente mensaje:

source:/trunk/img/preinscripcion8.png

Caso contrario, se mostrará un mensaje de error, sugiriendo un método alternativo de limpieza de caché (reiniciar el servidor Apache).

source:/trunk/img/preinscripcion9.png



Perfil Gerencial:


Este perfil todavía no ha sido desarrollado.
Contará una suite de reportes y estadísticas sobre los datos de las preinscripciones.
Los usuarios gerenciales no serán los mismos que en Guaraní. Se deberá tramitar un usuario a través de un administrador de SIU-Preinscripción, que será el encargado del mantenimiento de los mismos.




Perfil Alumno:

Se accede a este perfil mediante la URL definida apropiadamente en el archivo “alias.conf”.
La pantalla de inicio nos ofrece la posibilidad de:

• loguearnos en el sistema (si ya tenemos un usuario registrado)
• dar de alta un usuario
• recuperar la clave de usuario.

source:/trunk/img/preinscripcion10.png


Alta de usuario

Antes de comenzar el proceso, es requerido contar con una dirección de correo electrónico válida y que funcione correctamente. A través de la misma se verificará la cuenta, y será posible recuperar la clave en caso que sea necesario.
Para registrar un nuevo se debe clickear el link “Registrate”. Si no hay períodos de inscripción activos, no se podrá completar la acción, mostrándose una pantalla de error:


source:/trunk/img/preinscripcion11.png

En caso contrario se verá la siguiente pantalla de alta de usuario:


source:/trunk/img/preinscripcion12.png


Con respecto a la clave, se tienen las siguientes restricciones:

• La clave debe tener una longitud mínima, definida mediante el parámetro del sistema “clave_long_minima”.
• La clave no puede ser igual al nombre de usuario.

Las claves se almacenan cifradas con sha1, utilizando un valor de “salt” definido también en el archivo de configuración.
Tras completar este formulario, arribará un mail a la casilla de e-mail especificada, con un contenido de este estilo:

source:/trunk/img/preinscripcion13.png

El alta no estará completa hasta que la casilla de e-mail haya sido validada mediante este procedimiento.
Una vez activada la cuenta, tras clickear el link enviado por correo electrónico, el usuario será redirigido a la operación de inicio, y ya estará en condiciones de efectuar su preinscripción.

Login y recuperación de clave

Si el usuario falla al identificarse, se muestra un mensaje de error. Si están activados los captchas en el sistema (en el archivo de configuración), se puede definir la cantidad máxima de errores de logueo permitidos (“intentos_login”) antes de exigir que se complete un captcha adicionalmente.


source:/trunk/img/preinscripcion14.png


Si el usuario necesita recuperar su clave, puede acceder a la funcionalidad provista por el sistema mediante el link “¿Olvidaste tu clave?” o eventualmente “solicitar una nueva” del mensaje de error.


source:/trunk/img/preinscripcion15.png


Luego de esta acción, arribará un mail a la casilla de e-mail especificada, con un contenido de este estilo:


source:/trunk/img/preinscripcion16.png


Vale la pena aclarar que realizar esa solicitud no invalida la clave anterior, sólo habilita el mecanismo de recuperación. De esta manera, si no fue el propio usuario quien solicitó el reseteo de clave puede seguir ingresando con su contraseña original.
Para completar el proceso, seguimos el link recibido en el correo electrónico, que nos dirige a una pantalla para introducir la nueva clave:


source:/trunk/img/preinscripcion17.png


La nueva clave debe cumplir las mismas restricciones especificadas anteriormente. Al completar el proceso de restauración de clave, se loguea automáticamente al usuario y se lo redirige a la operación de preinscripción.


Operación: Preinscripción


source:/trunk/img/preinscripcion18.png


Como primer paso, se deberá elegir una carrera. Para ello, haciendo click en el botón “Elegir Carrera” se desplegará un popup con las carreras disponibles en el período de inscripción corriente:


source:/trunk/img/preinscripcion19.png


Luego de elegir la primera carrera, si el sistema lo permite, podrá elegir otras siguiendo el mismo procedimiento. Eso depende del parámetro del sistema “cant_max_carreras_insc”, definido apropiadamente en el archivo “config.php”. También se puede eliminar la inscripción, siempre y cuando el período de inscripción de la misma esté vigente.

source:/trunk/img/preinscripcion20.png


Datos censales

Una vez elegida al menos una carrera, aparecerá un menú a la izquierda para cargar una serie de datos censales.
Los campos marcados con (*) son obligatorios. Eso depende de la configuración dada en la operación “Configuración de campos de formulario” del perfil Administrador. No es necesario cargar todos los campos obligatorios en una sola sesión, pero sí será requerido y controlado al momento de imprimir el comprobante.

source:/trunk/img/preinscripcion21.png


La operación está provista de un mecanismo de control de cambios y autoguardado. El mismo se ejecuta al intentar cambiar de solapa. Si se han detectado cambios y no se presionó el botón guardar, los mismos son salvados automáticamente.
En algunas solapas existen campos que dependen de selecciones previas. Por ejemplo, en la solapa “Deportes”, que se exhiban los lugares donde se practican deportes depende de la selección afirmativa en el checkbox “¿Practicás deportes?”. Se solicita a los administradores especial cuidado en el seteo de obligatoriedad, ya que en caso de marcar alguno de estos campos como obligatorio impedirá que aquellos usuarios que no puedan ver esos campos por sus selecciones previas completen el proceso de preinscripción. La configuración por defecto entregada por el SIU los define como no obligatorios.
En cada pantalla, los datos están organizados en agrupados. Cada uno de esos agrupados puede ser colapsado y descolapsado a gusto, para mantener una visión ordenada del formulario.

source:/trunk/img/preinscripcion22.png

source:/trunk/img/preinscripcion23.png

Si algún agrupado tiene todos sus campos definidos como no visibles, el mismo se ocultará. A su vez, si todos los agrupados de una solapa tienen todos sus campos ocultos, la solapa entera será ocultada del menú.

Datos de Posgrado

En caso de que el usuario se preinscriba a una carrera de posgrado, se le solicitarán algunos datos adicionales:

• Actuación docente
• Actuación profesional
• Formación académica

source:/trunk/img/preinscripcion24.png

La forma de cargar estos datos es similar a la selección de carrera: presionando el botón negro, se despliega un popup con los datos a ingresar.


source:/trunk/img/preinscripcion25.png

El mismo popup se encarga de realizar las validaciones pertinentes al momento de guardar, por ejemplo, que se ingresen los datos obligatorios, o que una “fecha desde” sea menor o igual a su correspondiente “fecha hasta”.
Los antecedentes que se van cargando se ven reflejados en forma de lista, ordenados por fecha. Es posible editar y eliminar esos registros mediante los botones ubicados a nivel de cada fila.
Si posteriormente se decide eliminar la preinscripción a carrera de posgrado y se trata de la única de este tipo, por una cuestión de integridad, los datos cargados en estas tres secciones serán eliminados. Previamente, el sistema le advertirá al usuario esta situación, solicitándole una confirmación para proceder.


source:/trunk/img/preinscripcion26.png

Impresión del comprobante

El paso final para completar la preinscripción consiste en la impresión de un comprobante, para entregar firmado por el alumno en la dependencia correspondiente.
El mismo se obtiene presionando el botón “Imprimir”, que se encuentra en el extremo superior derecho de la operación.
Previamente a la generación del PDF, se realiza un chequeo para asegurar que todos los campos configurados como obligatorios hayan sido cargados. En caso de detectarse omisiones, se habilitará en la misma operación una ayuda contextual, que consiste en:

• Un mensaje de notificación (“Para imprimir es necesario que completes todos los campos obligatorios.”) y la posibilidad de desactivar esa ayuda contextual (“Ocultar”) en el extremo superior de la operación.
• Resaltado en color rojo de las solapas del menú que presentan campos obligatorios incompletos. Si la pestaña activa es una de ellas, el color rojo es más intenso.
• Finalmente, el resaltado en rojo de los campos no completados, con la leyenda “Es necesario completar este campo para imprimir”.


source:/trunk/img/preinscripcion27.png

Completados todos los campos, se obtendrá el comprobante en formato PDF. En el mismo se puede distinguir:

• El encabezado. El nombre de institución que se muestra es definido en el archivo de configuración (“rep_nombre_institucion”).
• Una primera sección, consistente de:

o Número de ficha, compuesto de un ID interno y número de versión impresa (5/12).
o La fecha de última modificación.
o Apellido y nombres del aspirante.
o Un espacio para completar el número de libreta.
o El código QR del número de ficha.
o Un espacio para la foto.

• Una segunda sección donde se listan las carreras elegidas.
• Si el parámetro “rep_imprime_CBC” del archivo de configuración es seteado en “1”, se genera a continuación una tabla para completar manualmente los resultados del CBC.
• Los datos censales configurados como imprimibles. Se muestran agrupados de la misma manera que en pantalla. Si todos los campos de un grupo son configurados como no imprimibles, se oculta también su encabezado; de la misma manera se procede con las secciones.

source:/trunk/img/preinscripcion28.png

Luego de los datos censales agrupados en secciones, se puede observar:

• Una serie de notificaciones numeradas. Cada una de ellas se encuentra definida como una componente del arreglo “rep_avisos” en el archivo de configuración. Si no desean mostrarse avisos, se recomienda dejar definido el parámetro como un arreglo vacío: “rep_avisos” => array(),
• La localidad y fecha de impresión. La localidad es configurable mediante el parámetro “rep_localidad”. Si no se desea mostrar la misma, dejar definido el parámetro como string vacío: “rep_localidad” = ‘’,
• Espacio para la firma del alumno.
• Credencial provisoria del alumno. Se genera siempre en el pie de la última página. Si el espacio restante en la última página no alcanza, se habilita una nueva página y se genera al pie. Se puede optar por no generar la misma, mediante el parámetro “rep_imprime_credencial_provisoria”.


source:/trunk/img/preinscripcion29.png