Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estas herramientas nos permiten diseñar wireframes, mockups, prototipos y ayuda con la parte de estilos e
interacción entre objetos de diseño, además tiene licencia gratis o versiones de prueba gratuita.
● La estética de los wireframes debe ser simple, los colores deben ser en escala de grises (blanco, negro y todos
los grises en medio).
● No se deben usar más de dos fuentes de caracteres. A esta altura no es necesario emplear la tipografía como
medio para comunicar jerarquía de la información.
● No se debe recargar los wireframes con imágenes y videos, pero si donde van ubicados, para ello utilizamos un
rectángulo con una equis para representar donde van las imágenes y un triángulo (play icon) para representar
donde van los videos.
● Considera el tamaño de las pantallas donde vas a ejecutar tu aplicación y así mismo haz un diseño para cada
uno. Se debe tener en consideración los dispositivos, la orientación de las pantallas y el contexto de uso para
ubicar qué recursos deben ir.
Para el siguiente ejemplo utilizaremos Draw.io para la
realización de los wireframes.
Index
Para la página de usuarios realizaremos la siguiente propuesta.
Usuarios:
Para la página productos realizaremos la siguiente propuesta.
Productos:
La estructura básica para dar comienzo es la siguiente:
Vamos agregar el CDN de Bootstrap (CSS y Bundle), además agregamos dos etiquetas <header> y
<section>para definir la cabecera y el cuerpo, las dos principales secciones a usar.
Siguiendo el diseño, ahora vamos a determinar dentro de la cabecera el espacio para el logo y nombre del website
y el menú superior.
Siguiendo el diseño, ahora vamos a determinar dentro de la cabecera el espacio para el logo y nombre del website
y el menú superior.
Propiedad Descripción
d-flex Muestra los elementos hijos con un display flex proporcionando a los elementos flexibilidad para modificar
sus dimensiones y ocupar los espacios libres.
flex-wrap Muestra los elementos hijos en varias filas si dichos elementos ocupan el ancho disponible posicionando los
siguientes en una nueva fila.
mb-md
nav-item Valores por defecto definidos para un elemento dentro del contenedor de Navegación.
text-justify En Bootstrap 5 no incluye esta clase. se puede crear usando text-align: justify;
● Ajax, Asynchronous JavaScript And XML, es quizás, la forma más convencional de realizar peticiones al servidor
de forma asíncrona. Para utilizar Ajax será necesario definir cuatro pasos en nuestro proyecto.
○ Una vez con la instancia, definimos a qué dirección y bajo qué método del protocolo HTTP trabajaremos.
En este caso como queremos obtener algo del servidor haremos uso de GET (También es posible emplear
POST).
○ El tercer paso será definir una función para el atributo onreadystatechange. Esta función nos permitirá
conocer el estatus de la petición y si la respuesta por parte del servidor fue exitosa o no.
Como segundo paso crearemos el archivo request.js el cual contendrá una función que nos permita enviar una
petición y reutilizarla cuantas veces sea requerido, además de tener la url base de nuestra api.
Nuestra función sendRequest nos permitirá trabajar con diferentes Endpoints, con peticiones GET, POST, PUT y
DELETE, también incluiremos la información para las peticiones POST y PUT (La información se proporcionará en
JSON).
Usando como ejemplo la Administración de usuarios al cual le agregaremos el código javascript para la
Visualización, Creación, Edición y Eliminación de usuarios.
window.location=’’, nos permitirá redireccionar nuestra página a la url especificada como ‘form_usuarios.html’.
Incluimos los scripts request y usuarios, además de incluir un script
para definir qué función usará cuando la página se cargue por
completo. La función loadData() la definiremos a continuación y será la
encargada de traer todos los registros de los usuarios y visualizarlos en
nuestra tabla.
A continuación obtenemos nuestro elemento table desde el HTML haciendo uso de document.getElementById() y
eliminamos los elementos hijos con la propiedad innerHTML.
En la función onload obtenemos la respuesta de nuestra
petición que nos llegará como un array de objetos
desde nuestra API y posteriormente la recorremos
mediante la función forEach de los arrays, para cada
elemento de nuestro array agregaremos una nueva fila
a la tabla con la información del usuario que está
representado como un objeto, para acceder a las
propiedades hacemos uso del punto (.) seguido del
nombre de la propiedad como en nuestro ejemplo el
objeto está representado por el element del ciclo
forEach sería element.propiedad.
Para los botones de acción de Editar y Eliminar definiremos los valores a su atributo onclick:
● Para el atributo onclick de Eliminar especificamos la función deleteUser() que recibe un parámetro idUsuario y
la definiremos a continuación.
A continuación implementaremos la función deleteUser() que recibirá un parámetro idUsuario que nos servirá para
concatenarlo al endpoint. Una vez finalizada la petición llamaremos nuevamente a la función loadData() para
cargar los datos en nuestra tabla.
Una vez terminado los pasos anteriores tendremos un resultado similar al siguiente:
Si ocurre un error al cargar los datos nos mostrar un resultado similar al siguiente:
Agregaremos las siguientes instrucciones a form_usuarios.html:
Para obtener el parámetro id proporcionado por la URL hacemos uso del objeto URLSearchParams() y le
proporcionamos los parámetros de la URL actual mediante window.location.search y posteriormente validamos la
existencia del id mediante la función get() que recibe el nombre del parámetro que buscamos.
El código JS de nuestro script usuarios.js:
En la función loadUser haremos uso de la función sendRequest() creada anteriormente en request.js donde le
proporcionamos el endpoint, el método y la información para esta petición será un string vacío.
A continuación obtenemos nuestros elementos del formulario desde el HTML haciendo uso de
document.getElementById().
A continuación implementaremos las funciones onload y onerror para obtener los resultados. En la función onerror
definimos una alerta que mostrará un mensaje indicando que hubo un error durante la petición.
En la función onload obtenemos la respuesta de nuestra petición que nos llegará como un objeto desde nuestra
API y posteriormente accederemos a las propiedades haciendo el uso del punto (.) seguido del nombre de la
propiedad como en nuestro ejemplo el objeto está representado por la variable data sería data.propiedad.
Del objeto recibido en la petición le asignaremos a nuestros elementos del formulario el valor correspondiente a
cada uno de ellos.
A continuación implementaremos la función saveUser().
Esta función la implementaremos para editar(Solo si existe el valor id del elemento user-id) y registrar usuarios.
Una vez obtenido los valores de cada elemento del formulario pasaremos a crear un objeto con las propiedades y
sus respectivos valores que será proporcionado a la petición. Una vez finalizada la petición redireccionamos a
usuarios.html.
Una vez terminado los pasos anteriores tendremos un resultado similar al siguiente:
Continuamos con el ejemplo de Administración de productos al cual le agregaremos el código javascript para la
Visualización, Creación, Edición y Eliminación de productos. El siguiente proceso es muy similar al ejemplo anterior.
Incluimos los scripts request y usuarios, además de incluir un script para definir qué función usará cuando la
página se cargue por completo. La función loadData() la definiremos a continuación y será la encargada de traer
todos los registros de los productos y visualizarlos en nuestra tabla.
Incluimos los scripts request y productos, además de incluir un script para definir qué función usará cuando la
página se cargue por completo. La función loadProducto() la definiremos a continuación y será la encargada de
traer el producto y visualizarlos en los campos del formulario si existe el parámetro id en la URL.
Para obtener el parámetro id proporcionado por la URL hacemos uso del objeto URLSearchParams() y le
proporcionamos los parámetros de la URL actual mediante window.location.search y posteriormente validamos la
existencia del id mediante la función get() que recibe el nombre del parámetro que buscamos.
EL código JS de nuestro script productos.js:
En la función loadData() haremos uso de la función sendRequest() creada anteriormente en request.js donde le
proporcionamos el endpoint, el método y la información para esta petición será un string vacío.
● Obtenemos nuestro elemento table desde el HTML haciendo uso de document.getElementById() y eliminamos
los elementos hijos con la propiedad innerHTML.
● Implementaremos las funciones onload y onerror para obtener los resultados. En la función onerror definimos
una fila de nuestra tabla que mostrará un mensaje indicando que hubo un error durante la petición.
● En la función onload obtenemos la respuesta de nuestra petición que nos llegará como un array de objetos
desde nuestra API y posteriormente la recorremos mediante la función forEach de los arrays, para cada
elemento de nuestro array agregaremos una nueva fila a la tabla con la información del producto que está
representado como un objeto, para acceder a las propiedades hacemos uso del punto (.) seguido del nombre
de la propiedad como en nuestro ejemplo el objeto está representado por el element del ciclo forEach sería
element.propiedad.
Para los botones de acción de Editar y Eliminar definiremos los valores a su atributo onclick:
● Para el atributo onclick de Eliminar especificamos la función deleteProducto() que recibe un parámetro
idProducto y la definiremos a continuación.
A continuación implementaremos la función deleteProducto() que recibirá un parámetro idProducto que nos servirá
para concatenarlo al endpoint. Una vez finalizada la petición llamaremos nuevamente a la función loadData() para
cargar los datos en nuestra tabla.
En la función loadProducto() haremos uso de la función sendRequest() creada anteriormente en request.js donde
le proporcionamos el endpoint, el método y la información para esta petición será un string vacío.
● Obtenemos nuestros elementos del formulario desde el HTML haciendo uso de document.getElementById().
● Implementaremos las funciones onload y onerror para obtener los resultados. En la función onerror definimos
una alerta que mostrará un mensaje indicando que hubo un error durante la petición.
● En la función onload obtenemos la respuesta de nuestra petición que nos llegará como un objeto desde
nuestra API y posteriormente accederemos a las propiedades haciendo el uso del punto (.) seguido del nombre
de la propiedad como en nuestro ejemplo el objeto está representado por la variable data sería
data.propiedad.
Del objeto recibido en la petición le asignaremos a nuestros elementos del formulario el valor correspondiente a
cada uno de ellos.
A continuación implementaremos la función saveProducto().
Esta función la implementaremos para editar(Solo si existe el valor id del elemento product-id) y registrar
productos. Una vez obtenido los valores de cada elemento del formulario pasaremos a crear un objeto con las
propiedades y sus respectivos valores que será proporcionado a la petición. Una vez finalizada la petición
redireccionamos a productos.html.
Una vez terminado los pasos anteriores tendremos un resultado similar al siguiente:
Si ocurre un error al cargar los datos nos mostrar un resultado similar al siguiente:
Código fuente del ejemplo práctico.
● https://www.json.org/json-es.html
● https://es.wikipedia.org/wiki/Gson