Proyecto MultiPlataforma

Proyecto para Móvil y Escritorio desarrollado en JAVA

El reto era crear una aplicación para un negocio pequeño que se dedica a hacer pizzas pero no tienen una plataforma donde puedan controlar los pedidos, ni sus clientes pueden hacer pedidos desde la comodidad de su casa. Se desarrolló la siguiente solución para que los clientes pudieran realizar sus pedidos desde la comodidad de su casa y posteriormente pasarlos a recoger.

Es un proyecto multiplataforma desarrollado en JAVA, donde el cliente podía acceder desde la aplicación Android y del lado del negocio podían acceder por medio de la web. Cada uno tiene su propia interfaz, y al momento que el cliente realiza un pedido se le brinda un tiempo promedio para que pueda pasar a recoger el pedido y en el lado del negocio se actualiza la lista de pedidos con la fecha y hora que se realizó.

Desarrollo

El desarrollo se dividió en 5 partes. Las cuales fueron: la base de datos, la API, los Web Services, la aplicación Android y la parte de administración: la página web.

Base de Datos
Primero se creó una base de datos en MySQL , muy minimalista y enfocada en las necesidades del negocio, siendo los usuarios, el tipo de usuario; que podría ser el administrador del negocio o el cliente, el tipo de producto; que puede ser pizza o bebida, el producto como tal, y el pedido con su debido detalle; teniendo en cuenta la fecha y la hora que se realiza y los productos que el cliente ha agregado.

API
Se creó una API en Java utilizando el ORM de Hibernate, ésta sería la encargada de la conexión a la base de datos y de administrarla, mapeando las tablas de la base de datos y así mismo estaría conteniendo las diferentes entidades con sus respectivos atributos y métodos.

Web Services
Después de crear la API, se creó otro proyecto JAVA que serí el encargado de contener los servicios web, utilizando el protocolo de intercambio de datos REST, siendo una API bastante conocida y fácil de manipular, este proyecto se encargaría de recibir las peticiones tanto de la página web del administrador como de la aplicación Android para comunicarse con la API encargada de la comunicación con la Base de Datos, para poder realizar el CRUD completo.

Aplicación Web
La aplicación web sería la encargada de la parte administrativa del negocio, donde tiene su propio login, quién se autentica y se da acceso solamente al administrador, si el cliente quiere ingresar no lo permitirá. La aplicación web tiene un menú donde al ingresar le da la bienvenida al administrador, puede ver los usuarios que se han registrado en la aplicación Android, hay un menú de productos donde puede el administrador puede agregar, editar o eliminar los productos que quiere que estén a disposición del cliente y finalmente el menú de pedidos donde puede ver los pedidos que los clientes han realizado, se refresca automáticamente cada minuto y puede escoger cuando pedidos puede ver al mismo tiempo.

Aplicación Móvil
En la aplicación móvil se decidió por un diseño minimalista donde el usuario se puede registrar y posteriormente logear, en el menú principal puede hacer un pedido donde se le presenta la lista de productos disponibles, al hacer "tap" sobre un producto en específico se le presenta los detalles del producto, junto con su respectivo precio y puede agregarlo o volver a la lista, luego en el menú de "Ver Pedido" puede ver un resumen de su pedido, le muestra su nombre, la fecha y hora y los productos que ha agregado. Al confirmar su pedido se le da un tiempo estimado para que pueda pasar a traer su pedido y pagar.

Imágenes del Proyecto