En este repositorio se encuentra la documentación del TRABAJO PRÁCTICO Nº3, el cual tiene como proyecto la aplicación “Escanea Tus Productos”.
Nuestra aplicación tiene como fin que el cliente escanee sus propios productos a medida que realiza la compra. Es decir, el cliente creará una orden de compra, el cual contendrá un listado de los distintos productos que han sido escaneados. Al cerrar dicha orden, se generaría un código QR que mostraría el detalle de la compra y que debe ser escaneado por el cajero.
Para esta última etapa nos enfocamos en realizar la implementación de la arquitectura para la funcionalidad principal de nuestro proyecto:
- Crear un usuario.
- Crear una orden de compra.
- Agregar productos a dicha orden.
- Generar el QR con el archivo CSV.
Al abrir el proyecto podemos ver el módulo que contiene las entradas, el cual me va a indicar qué es lo que tengo que llamar para crear los distintas servicios previamente mencionados.
El sistema será una aplicación Cliente-Servidor. Tendrá 2 clientes que consuman sus servicios:
- Por un lado, una aplicación desarrollada para celulares con Sistema Operativo Android, y
- Por otro, la aplicación de punto de venta que consulte por una orden.
El servidor será una aplicación de tipo REST API desarrollada con Spring Boot montada sobre un servidor Apache Tomcat.
Spring Boot arma la arquitectura del proyecto de tal manera que no es necesario que tengamos que desarrollar y armar un servidor, ya que el mismo software lo crea por sí solo. Por ende, cada proyecto va a tener un servidor.
Además, contamos con un API Gateway que tiene controladores, servicios y repositorio. Este último llama a un módulo, el cual se encarga de guardar la información.
El Sistema utilizará Base de Datos H2 para la persistencia de información. Utilizamos H2 porque es un software dinámico y se crea en el momento en el que levantamos la aplicación. No es necesario que tengamos instalado algo aparte.
También utilizamos la herramienta Swagger, la cual nos muestra, con una documentación simple, los endpoint que nosotros tenemos en los controladores (para crear una orden, un usuario y un producto). Utilizamos este tipo de herramienta para que el frontend se integre.
Para realizar el prototipo de la interfaz utilizamos la aplicación Figma, ya que sentimos que ofrece todas las herramientas necesarias para diseñar un proyecto. Además, nos permitió trabajar en simultáneo de manera online a tiempo real.
*El .gif sólo se muestra como guía, las interfaces reales e interactivas se encuentran en el link de abajo
https://www.figma.com/file/Txnyny8Ag66pLSfLFnnVYL/Escanea-Tus-Productos?node-id=74%3A412