Examen Seminario Sistemas
Last updated Nov 12, 2019
by
Edvin Teodoro Gonzalez Rafael
**Proyecto Laboratorio de Aguas**
El proyecto consiste en la elaboración de un sistema que lleve el control de los procesos y reportes del laboratorio de aguas del cunoc.
**Herramientas:**
Empezamos definiendo las herramientas que se utilizaran para implementar el proyecto.
1. php -> servidor
2. javaScrip -> cliente
3. html -> cliente
4. doctrine -> persistencia db
**Manejo de Versiones**
En el siguiente diagrama se propone una forma de manejar el proyecto con varios desarrolladores.
.png")
En este caso cada desarrollador tiene una rama en la cual estará trabajando y estará subiendo sus cambios cambios a una rama de integración para posteriormente unir la rama de integracion a la rama máster cuando el proyecto ya tiene una version funcional.
**Arquitectura:**
Se usara la arquitectura del proyecto sera modelo vista controlador (**mvc)** para la implementacion del proyecto, en el siguiente diagrama se describe la distribución de los archivos en base a la arquitectura mvc:
.png")
***Modelo:***
El modelo lo compone la base de datos y todo lo que involucre su manejo, en este caso el diagrama de la base de datos sera la siguiente.

Esta es la base de datos, y maneja la siguiente lógica.
Toda tabla que se puede eliminar del sistema como por ejemplo empleado, cliente, etc. no se elimina de la base de datos, sino que cada tabla tiene un atributo de estado, entonces si el estado esta en 0 la tupla no aparecerá en el sistema pero sigue existiendo en la base de datos, esto permite tener registros de la base de datos y poder realizar análisis y reportes cuando se requiera.
En el modelo también se insertan las clases entidad para el manejo de la capa de persistencia, y estas se pueden generar con la herramienta doctrine.
**Controlador**
En el controlador van los archivos de lógica que permiten unir el modelo con la vista, entonces en esta parte se mandan a llamar las entidades mediante consultas a la base de datos. por ejemplo en empleado:
getEmployee(){
return entityManager->findAll(‘Employee‘);
}
Por tanto en el controlador se colocan un conjunto de funciones que permiten realizar consultas y obtener la entidades de la base de datos para posteriormente usarlas en la interfaz grafica.

**Diagrama de clases:**

**vista:**
Nos enfocaremos en esta parte no solo para indicar como funciona la vista, sino también la lógica del sistema.
Empezamos proponiendo un modelo de interacción entre el usuario y el sistemas, el siguiente diagrama hace una reprecentacion de la propuesta:
.png")
Como podemos observar el navegador siempre entra al archivo index.php y este archivo se encarga de verificar si ya existe una sesión o no, en caso de que no haya sesión el archivo index.php abre el formulario de inicio de sesión, si existe una sesión entonces se muestra la pagina principal
En la pagina principal se puede ver como existe la referencia hacia los diferentes formularios ya sea si son para registrar, consultar o modificar datos de alguna tabla en particular.
En el siguiente titulo se describe como funciona esta navegación entre paginas.
**Navegación entre paginas**
Para la optima navegación entre las distintas paginas se propone el uso de ajax, ya que es una herramienta que permite una interfaz dinámica, esto hace mucho mas cómodo el sistema ya que no se tiene que navegar de pagina en pagina, si no únicamente se recarga una parte especifica de la pagina principal para mostrar el formulario solicitado.

El siguiente diagrama muestra una propuesta básica para la interfaz gráfica del sistema.

Podemos observar en la imagen que tenemos en el lado izquierdo un menú con todas la acciones que puede realizar un usuario, en la parte superior derecha tenemos la parte referente al usuario para la administración de su cuenta, en la parte central se tendrá el formulario que el usuario valla solicitando con el menú. Es importante definir que siempre se mantendrá en la misma pagina únicamente se va ir cambiando la sección principal de la interfaz.
**Validación de formularios**
En la siguiente imagen podemos ver una propuesta de validación de formulario.

La mejor forma de validar formulario es con html y javascript, javascript se encarga de validar los campos y resaltar campos de forma dinámica en caso de que no cumplan con cierto formato.
**Usuarios y Roles**
Para el manejo de sesiones podemos considerar el siguiente diagrama de base de datos.

Se puede observar tres tablas las cuales son EMPLOYEE, WINDOW y EMPLOYEE_ROL. Donde WINDOW representa una ventana que se puede seleccionar en el menú, en la tabla EMPLOYEE tenemos a los empleados y La tabla EMPLOYEE_ROL es la que define a que ventanas tendrá acceso un usuario en especifico.
**Notificaciones:**
Para realizar notificaciones basta con realizar consultas a la base de datos de los insumos, cuando un usuario ingresa a la pagina web y acceder a la interfaz principal se consulta a la base de datos cuales son los insumos que ya se estan acabando y se muestra al usuario una notificación de esos insumos.

El siguiente diagrama describe un proceso de notificación:

Like
·