Descripcion de la aplicación
Legaling en un sistema de la escuela de ingeneria que tiene por objetivo entregar una interfaz amigable e intuitiva para el manejo de procesos legales. La escuela trabaja con Webdox, un sitio CLM (contract lifecycle management) donde se efectua la carga de antecedentes y firma de documentos, Legaling sirve como una “capa superior” sobre Webdox, permitiendo consultar los datos de los distintos procesos legales, almacenar documentos y entregando una vista amigable al usuario para consultar estos datos sobre sus procesos activos.
Legaling tambien sirve como una plataforma que facilita la comunicacion entre el abogado de la escuela y los usuarios, permitiendo que estos soliciten iniciar un proceso, cargar documentos, dejar comentarios y hacer correciones.
Arquitectura de Legaling
En legaling tenemos las siguientes entidades, dejando entre parentesis su nombre en la base de datos:
- Usuarios (User): Quienes usaran la pagina para solitar y consultar sus procesos legales. Estos se manejan via CAS por lo que se puede obtener todos los datos de estos usuarios que siding ofrece (Nombre, apellido, Rut, correo, etc)
- Tickets (Ticket): Es la manera en que los usuarios pueden solicitar iniciar un proceso legal. Llenando un formulario simple, se automatiza la generación de un documento plantilla con los datos que rellenó el usuario, el cual posteriormente deberá ser revisado por un usuario administrador para dar inicio al proceso en webdox. Los administradores pueden elegir Aceptar, Rechazar o dejar En Corrección un ticket, permitiendo que los usuarios hagan correcciones en los datos ingresados, dejando comentarios para notificarlos de esto.
- Formularios (Form): Son definidos por un administrador y son el conjunto de campos de información que debe rellenar un usuario para solicitar iniciar un proceso legal. Pueden exitir distintos tipos de formulario, los cuales consisten de: 1. Una plantilla, que será rellenada automaticamente con los datos que llene el usuario al momento de crear un ticket, entradas de informacion (FormEnty en la base de datos) la cuales comprenden el conjunto de datos que debe suministrar un usuario para subir un ticket y entradas de logica (FormLogic en la base de datos) las cuales son reglas que define el administrador y que afectaran en ciertas partes de la plantilla, que pueden ser eliminadas o agregadas si es que cierta condición, en base a los datos que rellena el usuario, se cumple o no.
- Respuestas de ticket (Response): Representan la información rellenada por un usuario al llenar un ticket, la cuales se asocian a los campos del formularió que lleno el usuario.
- Proceso legal (Workflow): Representa el ciclo de vida de un proceso legal, en este se almacena informacion relevante como los pasos activos, documentos firmados y comentarios que pueden ser dejador por un usuario o por un administrador. La informacion de los worflows se consulta a traves de la API de webdox.
Notas tecnicas
- Existe la entidad Document, encargada de almacenar todos los metadatos importantes de un documento que se deba almacenar en el servidor de legaling
- Existe la entidad comentario para poder manejar la logica de dejar commentarios tanto en un workflow como en un Ticket
- Dado que un comentario y un documento puede estar asociado a un Ticket o a un Workflow, se encapsulan estan dos ultimas entidades con una entidad abstracta Target. De esta forma podemos evitar tener columnas redundantes en la entidad comentario (para almacenar el id del workflow o del ticket o del comentario al que esta asociado) y nos limitamos a trabajar con un id de un target. Ademas, asi aseguramos que las entidades Ticket y Workflow no tengan solapamiento de ID’s lo cual puede causar problemas en la logica de Document y de Comment.