Вы находитесь на странице: 1из 12

Universidad de San Carlos de Guatemala

Facultad de Ingeniería
Escuela de Ciencias y Sistemas
Estructuras de Datos
Catedrático: Ing. Moisés Velásquez
Tutor Académico: José Morejón

Proyecto de laboratorio #1

Guatemala 15 de diciembre de 2018


Objetivos
Generales

 Que el estudiante aplique los conceptos vistos en clase respecto a estructuras dinámicas
de datos lineales.
 Que el estudiante aprenda y aplique los conceptos de punteros y memoria dinámica en
la solución de problemas.
 Que el estudiante pueda definir e integrar estructuras de datos para la construcción de
endpoints basados en framewors RESTful con el lenguaje c++.
 Que el estudiante pueda realizar una comunicación entre tecnologías del lado del
backend y frontend.

Específicos

 Que el estudiante identifique e integre las estructuras de datos que puedan dar solución
al problema de manera efectiva.
 Que el estudiante pueda crear estructuras de datos como servicios web.
 Que el estudiante sea efectivo en soluciones basadas con un esquema web definido por
el backend y frontend.
 Que el estudiante pueda integrar plantillas dentro de un flujo de desarrollo basado en
servicios.
Módulo de agenda para atención dental
REQUERIMIENTOS FUNCIONALES
Módulo de secretaria
Se debe de crear un acceso único para solo una secretaría para esta primera iteración de
desarrollo. Para lo cual ella puede acceder desde un inicio de sesión.

Proporcionando el usuario agente y password su número de carné.

Cuando es válida su sesión puede visualizar un dashboard informando el listo de pacientes que
debe de atender el dentista.

El dashboar debe de presentar el total de ingresos cancelados por cada paciente que realizo la
consulta, desplegar un listado de pacientes que atenderán el día actual, y un calendario para que
pueda ingresar las citas.
Listado de pacientes para atender hoy
Este listado debe de proporcionar la hora de inicio del paciente, los botones de información que
presenta la información del paciente registrado, un botón hecho para poder finalizar la cita del
paciente y el botón cancelar si se decide no pasar a consulta.

Cuando un paciente realiza la consulta y la secretaria da por hecho, entonces se debe de generar
la suma total realizada durante ese día, además debe de bloquear los botones para dejar sin
efecto las funciones de solo ese paciente.

Directorio de pacientes
Se debe de mostrar un directorio de pacientes con los botones de editar y eliminar. En la siguiente
figura se muestra con mayor detalle el requerimiento.
Calendario
Drag and Drop Event
Para crear las consultas debe de anotarlas en la caja del drag and drop y posteriormente
arrastrarlo al calendario.

El contenido de la consulta
Se debe de proporcionar: el tratamiento, identificador del usuario. El usuario se debe buscar en el
sistema.

Cuando se busca un usuario ya registrado en el sistema debe poder asignar a la persona en el


horario que el paciente quiera.

El calendario se puede visualizar por año, mes y día. Para el caso práctico se añade a una hora y día
específico.
Se puede visualizar por semana

De igual manera por mes

Cuando se arrastra y se suelta la cita en el día y hora que quiera, se debe de guardar los cambios
dentro de la matriz ortogonal.

Consultar
Al momento de darle clic a una cita esta debe de poder editarse o eliminar, según lo que la
secretaria decida.

Nuevo usuario
Si no se encuentra el usuario la secretaria debe de crear una ficha del paciente con los siguientes
datos: identificador del usuario (puede guardar el CUI), nombre, dirección y teléfono.

En la parte del diseño puede crear un modal lanzando el formulario. Al finalizar el proceso de
inserción se debe poder visualizar en el directorio.
Módulo administrador
Al iniciar sesión, debe de ingresar con admin y password su carné.

Para esta fase solo debe presentar un collage de las gráficas generadas en el backend por medio
de codificación y decodificación de imágenes con base64. Las gráficas que debe presentar son:

 Lista simple circular del usuario.


 Lista de doble enlace circular de tratamiento
 Matriz ortogonal todos los meses que exista al menos una cita, agregando como texto el
año y mes de gráfica.

En la siguiente figura se presenta el collage como sugerencia.


Estructura para almacenar información de usuario
Se debe de crear una estructura con una lista circular ordenada por el nombre de un enlace con la
siguiente información: identificador del usuario (alfanumérico asignado por el sistema), nombre,
dirección y teléfono. A continuación se presenta una figura para definir la idea de cómo trabajar la
estructura.

Estructura para almacenar información de tratamiento


Se debe de crear una estructura con una lista circular de doble enlace con la siguiente
información: identificador del tratamiento (alfanumérico asignado por el sistema), nombre, costo.
A continuación se presenta una figura para definir la idea de cómo trabajar la estructura.
Estructura para almacenar información al calendario
Se debe crear una estructura con una lista doblemente enlazada ordenada por el año, cada nodo
de esta lista debe de poder apuntar a otra lista enlazada ordenada por el nombre del mes.
A continuación se presenta una figura para definir la idea de cómo trabajar la estructura.

Esta estructura permite guardar solo los meses de cada año que se han trabajado a lo lardo del
tiempo.
Almacenar información por mes
Por cada mes creado, el nodo debe de poder apuntar a una lista enlazada ordenada por semanas.
Los nodos de la lista de semana deben de poder apuntar a una estructura de matriz ortogonal.
Matriz ortogonal
Se definen las cabeceras Hora vs Día como listas ordenadas de doble enlace. En el nodo de la hora
deben definir el inicio y fin de la consulta. En el nodo del día solo definen el nombre y número
correspondiente.

Para ordenar las cabeceras, deben de tomar como pivote la hora de inicio para las filas y para las
columnas el número del día.

El contenido del nodo de la matriz deben de agregar: Número de transacción, identificador de


tratamiento, identificador de usuario y para finalizar el estado del tratamiento (true or false), el
cual indica si realizaron o no la consulta.

A continuación se presenta una figura para definir la idea de cómo trabajar la estructura.
Tecnologías / Frameworks
Vista de tecnologías

Descripción
Ngrest
Framework desarrollado en el lenguaje de C/C++ el cual permite crear endpoints de los cuales se
pueden consumir desde el lado del frontend.

En la parte del backend deben de crear los recursos o endpoints necesarios para que una
aplicación realizada del lado del frontend pueda consumir.

Recurso: https://github.com/loentar/ngrest/

Graphviz
Las gráficas que se solicitan deben desarrollarse en Graphviz, de tal manera que deben de
desarrollar un recurso por cada imagen solicitada.

Recurso https://www.graphviz.org/documentation/

Html Matrix Template versión gratuita


Como sugerencia se puede utilizar el siguiente template realizado en html5 css3 y javascript, listo
para implementar las peticiones Get o Post con el xmlhttprequest

Recurso: https://matrixadmin.wrappixel.com/

Http server
Para utilizar el index del template deben de instalar el servidor de aplicaciones http server
instalando el npm / nodejs.
Restricciones
 Todas las estructuras deben ser realizadas por estudiante. No se permite el uso de alguna
estructura por librerías externas y el uso de vectores, de manera parcial o total dentro del
proyecto.
 El único medio para poder entregar el proyecto se proporcionará un día antes de la
entrega.
 Solo se permiten las herramientas y tecnologías descritas en este enunciado, cualquier
otra se debe de consultar antes de proceder a desarrollar.

Fecha y modo de entrega


 Jueves 27 de diciembre de 2018 antes de las 11:59 (No se aceptaran proyectos después de
esa fecha y hora, tomen en cuenta subir el proyecto una hora antes).
 Se habilitara un formulario para enviar el código antes de la fecha límite, con el siguiente
nombre: <carné>.zip

Вам также может понравиться