diff --git a/docs/Project.org b/docs/Project.org index 3a40deb..7097baf 100644 --- a/docs/Project.org +++ b/docs/Project.org @@ -1,7 +1,7 @@ #+TITLE: MDIS #+SUBTITLE: Programación Web #+AUTHOR: Amin Kasrou Aouam -#+DATE: 2020-06-18 +#+DATE: 2020-07-16 #+PANDOC_OPTIONS: template:~/.pandoc/templates/eisvogel.latex #+PANDOC_OPTIONS: listings:t #+PANDOC_OPTIONS: toc:t @@ -13,12 +13,13 @@ #+PANDOC_METADATA: logo:/home/coolneng/Photos/Logos/UGR.png * MDIS -MDIS es una sistema de información que permite la gestión de una consulta médica. +MDIS es un sistema de información que permite la gestión de una consulta médica. ** Funcionalidades - Gestión de Usuarios - Gestión de Pacientes +- Gestión de Calendario - Gestión de Citas - Gestión de Vacaciones - Gestión de Informes @@ -27,7 +28,10 @@ MDIS es una sistema de información que permite la gestión de una consulta méd - PHP - MySQL -- Javascript (Jquery) +- Javascript +- Fullcalendar +- Jquery +- JqueryUI - Nix ** Arquitectura @@ -37,13 +41,23 @@ MDIS es una sistema de información que permite la gestión de una consulta méd Es un sistema web clásico, con la característica de que las consultas a la base de datos se realizan mediante /PDO/, para evitar vulnerabilidades del tipo /inyección de SQL/. -Además de ésto, no hacemos ninguna consulta /SQL/ fuera del archivo database.php, lo que nos permite separar la lógica interna de la presentación. +Las operaciones que conllevan una inserción o transformación de datos se realizan en los archivos que terminan en *=_management.php=*, además de ésto, no hacemos ninguna consulta /SQL/ fuera del archivo *database.php*, lo que nos permite separar la lógica interna de la presentación. + +** Dependencias + +El apartado de la gestión de citas se ha realizado utilizando la biblioteca [[https://fullcalendar.io/][FullCalendar]] de Javascript. La conexión entre el /backend/ y el /frontend/ se realiza mediante intercambio de JSON, la implementación se encuentra en los archivos que terminan en *=_feed.php=*. + +A partir de los elementos de la base de datos, formateados y transformados, obtenemos las citas, los festivos y la configuración del calendario de cada doctor. Finalmente, personalizamos el comportamiento del calendario según estos datos. + +Los elementos del calendario también requieren de [[https://jqueryui.com/][JqueryUI]], para darle un toque más moderno a los distintos componentes. + +Por último, hacemos uso de la función /$.ajax()/ de [[https://jquery.com][Jquery]] para realizar peticiones /GET/ síncronas, dado que ciertos componentes de FullCalendar no pueden ser ejecutados como funciones asíncronas. ** Despliegue El desarrollo y despliegue del sistema se han hecho gracias a /Nix/, un gestor de paquetes que permite entornos de desarrollo y despliegue reproducibles. -A continuación mostramos el código que defino el entorno: +A continuación mostramos el código que define el entorno de desarrollo: #+BEGIN_SRC nix { pkgs ? import { } }: diff --git a/docs/Project.pdf b/docs/Project.pdf index 8f1a3b4..0c9686a 100644 Binary files a/docs/Project.pdf and b/docs/Project.pdf differ