Diseño e implementación de una TPV para la hostelería
Abstract
El objetivo principal del proyecto es implementar un TPV para la hostelería y un cliente móvil. Con esta iniciativa se pretende darle un giro de tuerca a los TPV tradicionales dándoles más protagonismo a los clientes.
Full text
! ! ! ! ! ! UNIVERSIDAD!POLITÉCNICA!DE!VALENCIA!ESCUELA!TÉCNICA! SUPERIOR!DE!INGENIERÍA!INFORMÁTICA! ! ! ! “Diseño!e!implementación! de!una!TPV!para!la! Hostelería”! PROYECTO!FINAL!DE!CARRERA! ! CÓDIGO:!DISCA-276! Titulación:!ITIS! ! ! ! ! ! ! ! ! ! AUTOR:! Óscar!Masiá!Roig! DIRECTOR:! Dr.!Lenin!Guillermo!Lemus!Zúñiga!! Profesor!Titular!de!Universidad!! Universidad!Politécnica!de!Valencia! ! ! ! ! ! Septiembre!2012! !
2! Óscar&Masiá&Roig& ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 3! ! Índice:! ! 1!Introducción.-....................................................................................................................-9! 1.1!Contexto-..................................................................................................................................-9! 1.2!Metodología-de-trabajo.-....................................................................................................-9! 2!Objetivo.-..........................................................................................................................-11! 3!Requerimientos.-..........................................................................................................-11! 4!Roles.-...............................................................................................................................-13! 5!Diagrama-casos-de-uso.-..............................................................................................-15! 5.1!Cliente-Móvil.-.....................................................................................................................-15! 5.2!Empleado.-...........................................................................................................................-16! 5.3!Administrador.-..................................................................................................................-17! 6!Requisitos-no-funcionales.-........................................................................................-17! 6.1!Costes-del-Proyecto.-.........................................................................................................-18! 7!Base-de-datos.-...............................................................................................................-21! 7.1!Diseño.-..................................................................................................................................-21! 7.2!Descripción.-........................................................................................................................-21! 8!Propuesta-de-la-estructura-de-la-aplicación.-......................................................-23! 9!El-Tecnologías-Utilizadas.-.........................................................................................-23! 9.1!Web-o-de-Escritorio.-........................................................................................................-23! 9.2!Lenguajes-de-programación.-........................................................................................-23! 9.2.1!Java.!..................................................................................................................................................!24! 9.2.2!Php.!...................................................................................................................................................!24! 9.3!Maven.-..................................................................................................................................-24! 9.4!Apache-Tomcat.-.................................................................................................................-25! 9.5!Hibernate.-...........................................................................................................................-25! 9.6!Bases-de-Datos.-..................................................................................................................-26! 9.6.1!MySQL.!............................................................................................................................................!26! 9.6.2!PostgreSQL.!...................................................................................................................................!26! 9.7!Entornos-de-Desarrollo-..................................................................................................-27! 9.7.1!Eclipse.!............................................................................................................................................!27! 9.7.2!NetBeans.!.......................................................................................................................................!27! 9.8!Frameworks-Javascript.-.................................................................................................-27! 9.8.1!Jquery.!.............................................................................................................................................!27! 9.8.2!JqueryMobile.!...............................................................................................................................!28! 9.8.3!SenchaTouch.!...............................................................................................................................!28! 9.9!Spring.-..................................................................................................................................-28! 9.10!Spring-MVC.-......................................................................................................................-29! 9.11!Android.-............................................................................................................................-29! 9.12!Android-SDK.-...................................................................................................................-29! 9.13!Android-Developer-Tools-(ADT).-...............................................................................-29! 9.14!ZXing-("Zebra-Crossing").-............................................................................................-29! 10!Implementación-de-la-aplicación-.........................................................................-31! 10.1!Aplicación-móvil.-............................................................................................................-31! 10.2!Aplicación-Web.-..............................................................................................................-32! 11!Validaciones.-...............................................................................................................-33! 11.1!Un-grupo-de-Productos-no-se-puede-eliminar-si-tiene-productos.-................-33!
4! Óscar&Masiá&Roig& ! 11.2!Un-Rol-no-se-puede-eliminar-si-tiene-empleados.-...............................................-34! 11.3!El-rol-Admin-no-se-puede-eliminar.-..........................................................................-34! 12!Pruebas.-........................................................................................................................-35! 12.1!Aplicación-móvil.-............................................................................................................-35! 12.2!Aplicación-Web.-..............................................................................................................-38! 12.2.1!Administrador!login.!..............................................................................................................!38! 12.2.2!Administrador!Visualizar!Pedidos!no!servidos!..........................................................!38! 12.2.3!Administrador!Visualizar!Pedidos!de!hoy!....................................................................!39! 12.2.4!Administrador!visualizar!grupos!de!productos.!........................................................!39! 12.2.5!Administrador!Añadir!grupo!de!productos.!................................................................!39! 12.2.6!Administrador!modificar!grupo!producto!....................................................................!40! 12.2.7!Administrador!eliminar!grupo!producto!......................................................................!42! 12.2.8!Administrador!Visualizar!productos.!.............................................................................!42! 12.2.9!Administrador!Añadir!producto.!......................................................................................!42! 12.2.10!Administrador!modificar!producto!..............................................................................!43! 12.2.11!Administrador!eliminar!producto!.................................................................................!45! 12.2.12!Administrador!Visualizar!destinos!de!producto.!....................................................!45! 12.2.13!Administrador!Añadir!destino!producto.!...................................................................!45! 12.2.14!Administrador!modificar!destino!producto!..............................................................!46! 12.2.15!Administrador!eliminar!destino!producto!................................................................!47! 12.2.16!Administrador!Visualizar!roles.!.....................................................................................!48! 12.2.17!Administrador!Añadir!rol.!................................................................................................!48! 12.2.18!Administrador!modificar!rol!............................................................................................!49! 12.2.19!Administrador!eliminar!rol!..............................................................................................!50! 12.2.20!Administrador!Visualizar!empleados.!.........................................................................!51! 12.2.21!Administrador!Añadir!empleado.!..................................................................................!51! 12.2.22!Administrador!modificar!empleado!.............................................................................!52! 12.2.23!Administrador!eliminar!empleado!...............................................................................!54! 12.3!Empleado-..........................................................................................................................-54! 12.3.1!Empleado!login.!........................................................................................................................!54! 12.3.2!Empleado!vista.!........................................................................................................................!55! 12.3.3!Empleado!servir!producto.!..................................................................................................!55! 13!Puesta-en-Marcha.-.....................................................................................................-55! 13.1!Redes.-.................................................................................................................................-55! 13.2!Hardware.-.........................................................................................................................-56! 13.3!Configurar-Router.-.........................................................................................................-56! 13.4!Instalación-Java.-.............................................................................................................-57! 13.5!Instalación-MySQL-5.1.-.................................................................................................-58! 13.6!Instalación-Apache-Tomcat-7.-....................................................................................-60! 13.7!Instalación-TouchBar.-..................................................................................................-61! 13.7.1!La!Base!de!datos.!......................................................................................................................!61! 13.7.2!La!Aplicación.!............................................................................................................................!62! 13.8!Instalación-TouchBar-Móvil.-......................................................................................-64! 14!Conclusiones.-..............................................................................................................-67! 15!Posible-trabajo-futuro-.............................................................................................-67! 16!Bibliografía.-................................................................................................................-69! ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 5! ! Figuras:! ! Figura!1.!Esquema!Entorno!Aplicación.!.....................................................................................!11! Figura!2.!Casos!de!Uso!Cliente!Movil.!..........................................................................................!15! Figura!3.!Casos!de!Uso!Empleado.!................................................................................................!16! Figura!4.!Casos!de!Uso!Administrador.!.......................................................................................!17! Figura!5.!Bases!de!datos!Diseño.!...................................................................................................!21! Figura!6.!Logo!Java.!.............................................................................................................................!24! Figura!7.!Logo!PHP.!.............................................................................................................................!24! Figura!8.!Logo!Maven.!........................................................................................................................!24! Figura!9.!Logo!Tomcat.!......................................................................................................................!25! Figura!10.!Logo!Mysql.!.......................................................................................................................!26! Figura!11.!Logo!PostgreSQL.!...........................................................................................................!26! Figura!12.!Logo!Eclipse.!.....................................................................................................................!27! Figura!13.Logo!NetBeans.!.................................................................................................................!27! Figura!14.!Logo!Jquery.!......................................................................................................................!28! Figura!15.!Jquery!Mobile.!..................................................................................................................!28! Figura!16.!Logo!Sencha.!.....................................................................................................................!28! Figura!17.!Logo!Spring.!......................................................................................................................!28! Figura!18.!Logo!Android.!..................................................................................................................!29! Figura!19.!Logo!ZXing.!.......................................................................................................................!30! Figura!20.!Modelo!MVC.!....................................................................................................................!33! Figura!21.!Validación!grupo!producto.!.......................................................................................!33! Figura!22.!Validación!grupo!producto.!.......................................................................................!34! Figura!23.!Pruebas!Aplicacion!Movil!acceder.!.........................................................................!35! Figura!24.!Pruebas!aplicación!Móvil!escanear!mesa.!...........................................................!35! Figura!25.!Pruebas!aplicación!Móvil!carta!................................................................................!35! Figura!26..!Pruebas!aplicación!Móvil!seleccionar!productos.!...........................................!36! Figura!27..!Pruebas!aplicación!Móvil!visualizar!pedido.!.....................................................!36! Figura!28.!Pruebas!aplicación!Móvil!eliminar!producto!del!pedido.!.............................!37! Figura!29.!Pruebas!aplicación!Móvil!realizar!pedido.!..........................................................!37! Figura!30.!Pruebas!aplicación!Móvil!comprobar!pedido!realizado.!...............................!37! Figura!31.!Pruebas!aplicación!Móvil!comprobar!pedido!realizado!en!BD.!.................!38! Figura!32.!Pruebas!Administrador!Login.!.................................................................................!38! Figura!33.!Pruebas!Administrador!acceso!................................................................................!38! Figura!34.!Pruebas!Administrador!!pedidos!no!servidos.!..................................................!39! Figura!35!Pruebas!Administrador!pedidos!de!hoy.!..............................................................!39! Figura!36!Pruebas!Administrador!visualizar!grupo!de!productos.!................................!39! Figura!37!Pruebas!Administrador!añadir!grupo!productos.!.............................................!40! Figura!38!Pruebas!Administrador!añadir!grupo!productos!BD!......................................!40! Figura!39!Pruebas!Administrador!añadir!grupo!productos!..............................................!40! Figura!40!Pruebas!Administrador!modificar!grupo!productos.!......................................!41! Figura!41!Pruebas!Administrador!modificar!grupo!productos!BD.!...............................!41! Figura!42!Pruebas!Administrador!modificar!grupo!producto.!........................................!41! Figura!43!Pruebas!Administrador!eliminar!grupo!productos.!........................................!42! Figura!44!Pruebas!Administrador!visualizar!productos.!...................................................!42! Figura!45!Pruebas!Administrador!añadir!producto!.............................................................!43! Figura!46!Pruebas!Administrador!acceso!añadir!producto!BD.!......................................!43! Figura!47!Pruebas!Administrador!añadir!producto.!............................................................!43!
6! Óscar&Masiá&Roig& ! Figura!48!Pruebas!Administrador!modificar!producto.!......................................................!44! Figura!49!Pruebas!Administrador!modificar!producto!BD.!..............................................!44! Figura!50!Pruebas!Administrador!modificar!producto.!......................................................!44! Figura!51!Pruebas!Administrador!eliminar!producto!BD.!.................................................!45! Figura!52!Pruebas!Administrador!visualizar!destinos!producto.!...................................!45! Figura!53!Pruebas!Administrador!añadir!destino!producto.!............................................!45! Figura!54!Pruebas!Administrador!añadir!destino!producto!BD.!....................................!46! Figura!55!Pruebas!Administrador!añadir!destino!producto.!............................................!46! Figura!56!Pruebas!Administrador!modificar!destino!producto.!.....................................!46! Figura!57!Pruebas!Administrador!modificar!destino!producto!BD.!..............................!47! Figura!58!Pruebas!Administrador!modificar!destino!producto.!.....................................!47! Figura!59!Pruebas!Administrador!eliminar!destino!producto.!.......................................!47! Figura!60!Pruebas!Administrador!visualizar!roles.!..............................................................!48! Figura!61!Pruebas!Administrador!añadir!rol.!.........................................................................!48! Figura!62!Pruebas!Administrador!añadir!rol!BD.!..................................................................!48! Figura!63!Pruebas!Administrador!añadir!rol.!.........................................................................!49! Figura!64!Pruebas!Administrador!modificar!rol.!...................................................................!49! Figura!65!Pruebas!Administrador!modificar!rol!BD.!...........................................................!50! Figura!66!Pruebas!Administrador!modificar!rol.!...................................................................!50! Figura!67!Pruebas!Administrador!eliminar!rol.!.....................................................................!50! Figura!68!Pruebas!Administrador!visualizar!empleados.!..................................................!51! Figura!69!Pruebas!Administrador!añadir!empleado.!...........................................................!51! Figura!70!Pruebas!Administrador!añadir!empleado!BD.!...................................................!52! Figura!71!Pruebas!Administrador!añadir!empleado.!...........................................................!52! Figura!72!Pruebas!Administrador!modificar!empleado.!....................................................!53! Figura!73!Pruebas!Administrador!modificar!empleado!BD!..............................................!53! Figura!74!Pruebas!Administrador!modificar!empleado!.....................................................!54! Figura!75!Pruebas!Administrador!eliminar!empleado.!.......................................................!54! Figura!76.!Pruebas!Empleado!Login.!...........................................................................................!54! Figura!77.!Pruebas!Empleado!vista.!.............................................................................................!55! Figura!78.!Pruebas!Empleado!servir!producto.!......................................................................!55! Figura!79.!Descarga!jdk!1.6!..............................................................................................................!57! Figura!80.!Instalacion!jdk!1.6.!.........................................................................................................!58! Figura!81.!Instalacon!MySql.!...........................................................................................................!59! Figura!82.!Instalación!MySql!...........................................................................................................!59! Figura!83.!Instalación!MySql.!..........................................................................................................!60! Figura!84.!Descarga!de!Tomcat.!.....................................................................................................!60! Figura!85.!Configuración!MySql.!....................................................................................................!62! Figura!86.!Instalación!TouchBar.!..................................................................................................!62! Figura!87.!Instalación!TouchBar.!..................................................................................................!63! Figura!88.!Instalación!TouchBar!correcta.!................................................................................!63! Figura!89.!Código!Qr!de!ejemplo.!..................................................................................................!64! Figura!90.!Instalar!TouchBar!en!Android.!.................................................................................!65! ! ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 7! ! ! Tablas:! Tabla!1.!Costes!de!Software.!............................................................................................................!18! Tabla!2.!Costes!hardware.!................................................................................................................!18! Tabla!3.!Costes!de!servicios.!............................................................................................................!19! ! ! !
8! Óscar&Masiá&Roig& ! ! !!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 9! ! 1 Introducción.! 1.1 Contexto! ! España!se!caracteriza!por!tener!una!gran!oferta!hostelera,!pero!este!sector! necesita!de!innovación!constante.!Esta!iniciativa!pretende!darle!un!giro!de!tuerca!a! los!TPV!tradicionales!dándoles!más!protagonismo!a!los!clientes.! ! La!idea!principal!es!adaptar!las!ventajas!del!ehcommerce!al!negocio!de!la! hostelería.! Un! ejemplo! bueno! sería! el! de! la! cadena! "Montaditos".! En! esta! cadena,! el! cliente!selecciona!la!comida,!va!a!caja,!hace!cola,!pide,!!paga!y!luego!espera!a!que!lo! llamen!para!recoger!el!pedido.!Con!esta!aplicación!el!cliente!se!ahorraría!el!primer! trayecto!y!la!desesperante!cola.! ! La! aplicación! permitirá! que! el! cliente! pueda,! desde! su! mesa,! realizar! su! pedido! y! en! “futuras! versiones”! pagarlo! sin! necesidad! de! la! intervención! de! un! camarero.!Después,!solo,!tendría!que!esperar!a!que!lo!llamasen,!cuando!el!pedido! estuviese!listo,!o!a!que!el!camarero!se!lo!llevase!a!la!mesa.! ! ¿Como!se!puede!hacer!esto!posible?! ! Gracias! a! que! todo! el! mundo! tiene! un! teléfono! móvil.! !El!teléfono!seria! el! que! interactuaría! con! la! aplicación! del! restaurante! informando! del! pedido! y! confirmando!el!pago.! ! ! ! 1.2 Metodología!de!trabajo.! ! Búsqueda!de!información!relaciona!con!TPV!y!la!hostelería,!como!funciona,! que!entidades!participan,!herramientas!utilizadas.! 1. Análisis!de!las!necesidades.! 2. Análisis!de!herramientas!y!lenguajes!que!se!pueden!utilizar.!! 3. Que!hardware!se!necesita.! 4. Instalación!de!herramientas!necesarias!para!el!desarrollo!de!la!aplicación.! 5. Desarrollo!de!la!aplicación!servidora.! 6. Desarrollo!de!la!aplicación!móvil.! 7. Instalación,!de!las!herramientas!necesarias!para!el!despliegue!en!entorno!de! prueba!y!solución!de!problemas.! 8. Instalación,!de!la!aplicación!y!la!aplicación!móvil.! 9. Pruebas!del!funcionamiento!de!la!aplicación.! !!
16! Óscar&Masiá&Roig& ! ! 5.2 Empleado.! ! ! Figura-3.-Casos-de-Uso-Empleado.- ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 17! ! ! 5.3 Administrador.! ! ! Figura-4.-Casos-de-Uso-Administrador.- 6 Requisitos!no!funcionales.! ! h La! aplicación! debe! visualizarse! y! funcionar! correctamente! terminales! móviles!y!tablets!con!Android!a!partir!de!la!versión!2.2.! ! h Tanto! los! dispositivos! móviles! como! el! servidor! han! de! disponer! de! conexión!a!Internet!para!el!correcto!funcionamiento!de!la!aplicación.! ! h Las! mesas! han! de! disponer! de! códigos! QR! correctamente! generados! y! visibles!para!poder!ser!escaneados.!! ! h La! aplicación! ha! de! poder! visualizarse! y! funcionar! correctamente! en! navegadores!Web!que!ya!hayan!adoptado!html5.! !
18! Óscar&Masiá&Roig& ! h La!aplicación!ha!de!aceptar!accesos!concurrentes!sin!mermar!la!calidad!del! servicio.! ! h La!aplicación!ha!de!ser!segura.! ! h La! aplicación! móvil! ha! de! estar! disponible! para! su! descarga! desde! el! navegador! de! un! dispositivo! móvil.! Por! lo! que! se! tiene! que! facilitar! la! dirección!de!descarga!o!indicar!como!realizarla.! ! h La!aplicación!ha!de!ser!fácilmente!modificable.! ! h La!aplicación!debe!persistir!la!información.! ! 6.1 Costes!del!Proyecto.! ! h!Coste!Software! SoftwareLicenciaCosteApache-TomcatSoftware!libre! 0€! JdkSoftware!libre! 0€! MavenSoftware!libre! 0€! MySql-5.1Licencia! 1,584.00!€! Alternativa!Postgresql! 0€! EclipseSoftware!libre! 0€! JquerySoftware!libre! 0€! Jquery-mobileSoftware!libre! 0€! SpringSoftware!libre! 0€! Spring-MVCSoftware!libre! 0€! AndroidSoftware!libre! 0€! Android-Developer-ToolsSoftware!libre! 0€! Android-SDKSoftware!libre! 0€! ZXingSoftware!libre! 0€! Tabla-1.-Costes-de-Software.- h!Coste!Hardware!(precios:!http://www.amazon.es/)! HardwareCaracterísticasCosteServidorHP!PC!HP!Compaq!6200!Pro!con!formato!reducido! (ENERGY!STAR)!Compaq!Pro,!3100!MHz,!Intel! Core!i5,!i5h2400,!4096!MB,!4x!DIMM,!DDR3h SDRAM! 716,54€! Router-WIFITphLink!TLhWR1043ND!h!Router!inalámbrico,!300! Mbps,!4!puertos! 46,97€! TabletSamsung!Galaxy!TAB!2!7.0!P3110!WIhFI! 3x!217,85€! Tabla-2.-Costes-hardware.- h!Redes!Hardware!(precios:http://www.ono.es/empresas/productos/internet/accesos/)! HardwareCaracterísticasCosteConexiónOno!Internet!Banda!Ancha!100M/10M! 65,90€/mes! IP-fijaIP!Fija! 12€/mes!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 19! ! Tabla-3.-Costes-de-servicios.- ! Gasto!Total!Puesta!en!marcha:!!!3,001.00-€.! Gasto!Mensual:!77,90€.! ! Opciones:! Alternativa!a!Mysql,!Postgresql.! o El!Gasto!de!puesta!en!marcha!1,417.06€.! o Gasto!Mensual:!77,90€.! ! !
20! Óscar&Masiá&Roig& ! !!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 21! ! 7 Base!de!datos.! 7.1 Diseño.! ! Figura-5.-Bases-de-datos-Diseño.- 7.2 Descripción.! ! Grupo_producto:! Los! productos! se! agrupan! diferentes! categorías! para! mejorar!su!visualización!en!dispositivos!móviles.!En!esta!tabla!se!almacenan!estos! grupos.! ! Producto_pedido:!En!esta!tabla!se!almacena!la!relación!entre!el!pedido!y! sus!productos,!de!tal!forma!que!un!pedido!puede!tener!muchos!productos_pedido.! ! Pedido:! En! esta! tabla! se! almacena! los! datos! de! un! pedido! tales! como! la! mesa!y!la!hora!del!pedido!y!el!cliente!que!lo!realizó.! ! Cliente:! En! esta! tabla! se! almacena! los! datos! de! los! clientes! que! han! realizado!pedidos.!
22! Óscar&Masiá&Roig& ! ! Producto:!En!esta!tabla!se!almacena!los!datos!de!los!productos.! ! Rol:!Los!empleados!tienen!roles!para!asignar!los!destinos.! ! Destino_producto:!Esta!tabla! almacena! los!destinos!en! los!que!se!puede! visualizar!cada!producto.!! ! Empleado:!En!esta!tabla!se!almacena!los!datos!de!los!empleados.! ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 23! ! 8 Propuesta!de!la!estructura!de!la!aplicación.! ! La!estructura!de!la!aplicación!Touchbar!estará!compuesta!de!4!partes.! ! 1. Touchbar! Móvil:! Que! se! instalará! en! los! dispositivos! móviles! de! los! clientes.!Esta!aplicación!permitirá!escanear!el!código!QR!de!la!mesa!para! obtener!la!información!necesaria!para!acceder!a!la!aplicación!Touchbar.! El!acceso!se!realizara!mediante!un!navegador!embebido!en!la!aplicación! móvil!Android.! 2. El! Navegador! Web:! Instalado! en! los! tabletas! de! los! empleados! que! utilizaran! para! acceder! a! touchbar! y! realizar! el! seguimiento! de! los! pedidos.! 3. El!Software!utilizara!una!tecnología!de!Web!dinámica.!Este!software!que! relaciona! cliente/servidor! estará! basado! en! una! combinación! de! lenguajes! de! programación! y! tecnologías! como! HTML, JAVASCRIPT, JAVA, SQL, AJAX. 4. La!Base!de!Datos!que!contendrá!los!datos!almacenados.! ! El!administrador!y!los!empleados!utilizaran!el!navegador!Web!de!sus!Tablet! para! el! acceso! a! la! aplicación,! que! dependiendo! de! su! rol! obtendrán! una! vista! distinta.!! ! 9 El!Tecnologías!Utilizadas.! ! Para!poder!realizar!el!desarrollo!y!posterior!instalación!y!la!aplicación!se!va! ha!explorar!las!siguientes!tecnologías.! ! 9.1 Web!o!de!Escritorio.! ! Dada! su! naturaleza,! aplicación! a! la! que! han! de! acceder! varios! usuarios! desde! diferentes! dispositivos,! se! ha! optado! por! realizar! su! desarrollo! como! aplicación!Web.! ! 9.2 Lenguajes!de!programación.! ! Se!ha!explorado!la!posibilidad!de!desarrollar!la!aplicación!en!php!y!Java! como! opciones! para! la! implementación! de! aplicaciones! Web.! Se! ha! optado! por! Java!ya!que!es!el!mismo!lenguaje!mediante!el!cual!se!desarrollan!aplicaciones!para! Android,!su!robustez!y!gran!variedad!de!frameworks!que!hacen!el!trabajo!mas! fácil,! y! que! dado! que! es! un! lenguaje! que! se! estudia! en! la! carrera! se! esta! familiarizado!con!él.! ! !
24! Óscar&Masiá&Roig& ! ! Java.!9.2.1 ! ! Figura-6.-Logo-Java.- JAVA!es!un!lenguaje!de!programación!orientado!a!objetos,!desarrollado!por! Sun!Microsystems!y!actualmente!por!Oracle.!El!lenguaje!en!sí!mismo!toma!mucha! de!su!sintaxis!de!C!y!C++,!pero!tiene!un!modelo!de!objetos!más!simple!y!elimina! herramientas! de! bajo! nivel,! que! suelen! inducir! a! muchos! errores,! como! la! manipulación!directa!de!punteros!o!memoria.! Las!aplicaciones!JAVA!están!típicamente!compiladas!en!un!bytecode.!En!el! tiempo! de! ejecución,! el! bytecode! es! normalmente! interpretado! o! compilado! a! código!nativo!para!la!ejecución!en!la!máquina!virtual!(JVM).! ! Php.!9.2.2 ! ! Figura-7.-Logo-PHP.- Es! un! lenguaje! de! programación! interpretado! o! framework! para! HTML,! diseñado! originalmente! para! la! creación! de! páginas! Web! dinámicas.! Se! usa! principalmente!para!la!interpretación!del!lado!del!servidor!(serverhside!scripting)! pero!actualmente!puede!ser!utilizado!desde!una!interfaz!de!línea!de!comandos!o!en! la! creación! de! otros! tipos! de! programas! incluyendo! aplicaciones! con! interfaz! gráfica!usando!las!bibliotecas!Qt!o!GTK+.! ! ! ! 9.3 Maven.! ! ! Figura-8.-Logo-Maven.- Es!una!herramienta!de!software!para!la!gestión!y!construcción!de!proyectos! Java! creada! por! Jason! van! Zyl,! de! Sonatype,! en! 2002.! Tiene! un! modelo! de! configuración!de! construcción!simple,!basado!en!un!formato!XML.!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 25! ! Maven!utiliza!un!Project!Object!Model!(POM)!para!describir!el!proyecto!de! software!a!construir,!sus!dependencias!de!otros!módulos!y!componentes!externos,! y!el!orden!de!construcción!de!los!elementos.- Una!característica!clave!de!Maven!es!que!está!listo!para!usarse!en!red.!El! motor! incluido! en! su! núcleo! puede! dinámicamente! descargar! plugins! de! un! repositorio,! el! mismo! repositorio! que! provee! acceso! a! muchas! versiones! de! diferentes! proyectos! Open! Source! en! Java,! de! Apache! y! otras! organizaciones! y! desarrolladores.!Este!repositorio!y!su!sucesor!reorganizado,!el!repositorio!Maven! 2,!pugnan!por!ser!el!mecanismo!de!facto!de!distribución!de!aplicaciones!en!Java,! pero!su!adopción!ha!sido!muy!lenta.!Maven!provee!soporte!no!sólo!para!obtener! archivos!de!su!repositorio,!sino!también!para!subir!artefactos!al!repositorio!al!final! de!la!construcción!de!la!aplicación,!dejándola!al!acceso!de!todos!los!usuarios.!Una! caché!local!de!artefactos!actúa!como!la!primera!fuente!para!sincronizar!la!salida!de! los!proyectos!a!un!sistema!local.! Maven! está! construido! usando! una! arquitectura! basada! en! plugins! que! permite! que! utilice! cualquier! aplicación! controlable! a! través! de! la! entrada! estándar.! En! teoría,! esto! podría! permitir! a! cualquiera! escribir! plugins! para! su! interfaz!con!herramientas!como!compiladores,!herramientas!de!pruebas!unitarias,! etcétera,!para!cualquier!otro!lenguaje.! ! 9.4 Apache!Tomcat.! ! ! Figura-9.-Logo-Tomcat.- Es!un!contenedor!de!servlets!que!se!utiliza!en!la!Referencia!oficial!de!la! implementación! para! Java!Servlet y JavaServer Pages (JSP).!Las! especificaciones!Java!Servlet y JavaServer Pages!son!desarrolladas!por!Sun! Microsystems! cuyas! especificaciones! vienen! dadas! por! la! JCP! (Java! Community! Process).!Apache Tomcat!es!desarrollado!en!un!entorno!abierto!y!participatorio,! bajo!la!licencia!de!Apache!Software!License.!Para!simplificar,!podríamos!decir!que! Apache!Tomcat!(o!Jakarta!Tomcat)!es!un!software!desarrollado!con!Java!(con!lo! cual!puede!funcionar!en!cualquier!sistema!operativo,!con!su!máquina!virtual!java! correspondiente)!que!sirve!como!servidor!Web!con!soporte!de!servlets!y!JSPs.! ! 9.5 Hibernate.! ! Es!un!framework!de!persistencia!y!OMR!que!facilita!el!mapeo!de!atributos! entre! una! base! de! datos! relacional! tradicional! y! el! modelo! de! objetos! de! una! aplicación,!mediante!archivos!declarativos!(XML)!o!anotaciones!en!los!beans!de!las! entidades!que!permiten!establecer!estas!relaciones.! !
32! Óscar&Masiá&Roig& ! ! es.bootools.touchbar:!Aquí!encontraremos.! ! h TouchbarActivity:!Es! el!activity!principal,!es!la!encargada!de!lanzar!el! escaneo!de!la!mesa,!obtener!los!datos!y!lanzar!el!Webview!(navegador! embebido!en!el!App).! ! h WebActivity:!Contiene!el!manejador!del!Webview.! ! es.tipdow.zxing.integration.android:! Dentro! encontraremos! las! clases! encargadas! de! gestionar! el! escaneo! y! manejo! de! códigos! QR,! este! código! forma! parte!de!los!fuentes!de!zxing.! ! 10.2 Aplicación!Web.! ! La! aplicación! Web! se! desarrolla! en! java!utilizando! el! Id! eclipse! y! las! siguientes!herramientas:! ! h Los!Frameworks!Hibernate,!Spring,!Spring!MVC!para!la!lógica!del!servidor.! ! Los!Frameworks!Jquery,!Jquery Mobile,!para!generar!las!pantallas!de!la! aplicación.! ! h Mysql,!para!la!persistencia!como!gestor!de!base!de!datos.! ! h Apache!Tomcat!como!servidor!de!aplicaciones!Web.! ! Para!poder!continuar!con!el!desarrollo!se!seguirán!los!siguientes!pasos:! ! Descargar!e!instalar!el!jdk!de!java.! Se!puede!descargar!en!este!enlace!:! http://www.oracle.com/technetwork/java/javase/downloads/index.ht ml! ! 1. Descargar!e!instalar!eclipse.! Se!puede!encontrar!en!este!enlace:!http://www.eclipse.org/! ! 2. Descargar!e!instalar!el!Mysql!y!seguir!los!pasos!del!punto!“12.6.1!La! Base!de!datos”.! Se!puede!descargar!y!seguir!las!instrucciones!de!instalación!desde!el! siguiente!enlace:!http://dev.mysql.com/downloads/! ! h Descargar!e!instalar!el!Apache!Tomcat!! Se!puede!descargar!y!seguir!las!instrucciones!de!instalación!desde!el! siguiente!enlace:!!http://tomcat.apache.org/! ! 3. Importar!el!proyecto!Touchbar!en!Eclipse.!! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 33! ! Se!ha!desarrollado!utilizando!el!modelo!MVC!y!para!ayudar!a!este!cometido! se!ha!utilizado!el!Framework!Spring!MVC.! ! Figura-20.-Modelo-MVC.- ! ! Los!paquetes!del!programa!que!hacen!referencia!a!este!modelo!son! fácilmente!reconocibles!ya!que!su!nombre!coincide!con!el!modelo.! ! En!la!parte!del!cliente!se!ha!utilizado!el!framework!Jquery!Mobile!que! logra!comunicar!las!dos!partes!mediante!llamadas!Ajax!a!la!vez!que!facilita!la! creación!de!un!agradable!interfaz.! 11 Validaciones.! ! 11.1 Un!grupo!de!Productos!no!se!puede!eliminar!si!tiene!productos.! ! En! este! caso! el! grupo! “Grupo! de! prueba! modificado”! tiene! el! producto!! “producto!de!prueba”.! ! ! Figura-21.-Validación-grupo-producto.-
34! Óscar&Masiá&Roig& ! ! Al!intentar!eliminar!el!grupo!la!aplicación!avisa!de!que!existen!productos!en! este!grupo!y!no!se!puede!eliminar.! ! ! Figura-22.-Validación-grupo-producto.- ! 11.2 Un!Rol!no!se!puede!eliminar!si!tiene!empleados.! ! En!este!caso!el!Rol!“Cocinero”!tiene!el!empleado!!“oscar”.! ! Al!intentar!eliminar!el!rol!la!aplicación!avisa!de!que!existen!empleados!en! este!rol!y!no!se!puede!eliminar.! ! 11.3 El!rol!Admin!no!se!puede!eliminar.! ! Dado! que! siempre! ha! de! existir! un! administrador! en! la! aplicación! para! realizar! cambios! se! ha! vetado! la! opción! de! eliminar! el! rol! “Admin”! para! evitar! quedarse!sin!administrador!de!forma!accidental.! ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 35! ! 12 Pruebas.! ! 12.1 Aplicación!móvil.! ! Acceder!a!la!aplicación.! ! Figura-23.-Pruebas-Aplicación-Móvil-acceder.- ! Escanear!mesa.! ! Figura-24.-Pruebas-aplicación-Móvil-escanear-mesa.- ! Acceder!a!la!carta.! ! Figura-25.-Pruebas-aplicación-Móvil-carta-
36! Óscar&Masiá&Roig& ! - ! Selección! de! productos! para! elaborar! el! pedido! (Cocacola,! fragolino,! entrecot!al!punto,!pizza!tonno,!pizza!fungi,!merluza!con!gambas)!!!! ! Figura-26.-Pruebas-aplicación-Móvil-seleccionar-productos.- ! Visualizar!pedido.! ! Figura-27.-Pruebas-aplicación-Móvil-visualizar-pedido.- ! Quitar!un!producto!del!pedido.!Se!quita!merluza!con!gambas.!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 37! ! ! Figura-28.-Pruebas-aplicación-Móvil-eliminar-producto-del-pedido.- ! Realizar!el!pedido.! ! Figura-29.-Pruebas-aplicación-Móvil-realizar-pedido.- ! Para! comprobar! que! el! pedido! se! ha! realizado! correctamente! se! accede! como! administrador! a! la! aplicación! Touchbar! y! se! consultan! los! pedidos! no! servidos.! ! ! Figura-30.-Pruebas-aplicación-Móvil-comprobar-pedido-realizado.- -
38! Óscar&Masiá&Roig& ! ! También!se!puede!comprobar!en!la!base!de!datos!que!todo!esta!correcto.! ! Figura-31.-Pruebas-aplicación-Móvil-comprobar-pedido-realizado-en-BD.- ! 12.2 Aplicación!Web.! Administrador!login.!12.2.1 ! ! Figura-32.-Pruebas-Administrador-Login.- ! ! Figura-33.-Pruebas-Administrador-accesoTras! acceder! con! usuario! “administrador”! y! contraseña! “administrador”!se!accede!a!la!aplicación!correctamente.!! ! Administrador!Visualizar!Pedidos!no!servidos!12.2.2 ! Pedido!realizado!en!la!prueba!de!la!aplicación!móvil.!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 39! ! ! Figura-34.Pruebas-Administrador--pedidos-no-servidos.- Administrador!Visualizar!Pedidos!de!hoy!12.2.3 ! Pedido!realizado!en!la!prueba!de!la!aplicación!móvil.! ! Figura-35Pruebas-Administrador-pedidos-de-hoy.- Administrador!visualizar!grupos!de!productos.!12.2.4 ! ! Figura-36Pruebas-Administrador-visualizar-grupo-de-productos.- ! Administrador!Añadir!grupo!de!productos.!12.2.5 ! Para!crear!un!grupo!nuevo!se!pulsa!en!el!botón!“+”.! !
40! Óscar&Masiá&Roig& ! ! Figura-37Pruebas-Administrador-añadir-grupo-productos.- ! Después! de! añadir! el! grupo! verificamos! en! la! base! de! datos! y! observamos!que!se!ha!creado!correctamente.! ! ! Figura-38Pruebas-Administrador-añadir-grupo-productos-BD- ! Y!en!la!aplicación!también!se!muestra.! ! ! Figura-39Pruebas-Administrador-añadir-grupo-productos- ! Administrador!modificar!grupo!producto!12.2.6 !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 41! ! Para! esta! acción! pulsamos! sobre! el! grupo! producto! que! se! quiere! modificar,!en!este!caso!grupo!de!prueba.! ! ! Figura-40Pruebas-Administrador-modificar-grupo-productos.- ! En!la!base!de!datos!se!muestra!correctamente.! ! Figura-41Pruebas-Administrador-modificar-grupo-productos-BD.- ! La!aplicación!también!muestra!la!modificación.! ! ! Figura-42Pruebas-Administrador-modificar-grupo-producto.- !
48! Óscar&Masiá&Roig& ! Administrador!Visualizar!roles.!12.2.16 ! Figura-60Pruebas-Administrador-visualizar-roles.- ! Administrador!Añadir!rol.!12.2.17 ! Para!crear!un!rol!nuevo!se!pulsa!en!el!botón!“+”. ! Figura-61Pruebas-Administrador-añadir-rol.- ! Después! de! añadir! el! producto! verificamos! en! la! base! de! datos! y! observamos!que!se!ha!creado!correctamente.! ! Figura-62Pruebas-Administrador-añadir-rol-BD.- !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 49! ! ! Y!en!la!aplicación!también!se!muestra.! ! Figura-63Pruebas-Administrador-añadir-rol.- ! ! Administrador!modificar!rol!12.2.18 ! Para!esta!acción!pulsamos!sobre!el!rol!que!se!quiere!modificar,!en! este!caso!“pinche”.! ! Figura-64Pruebas-Administrador-modificar-rol.- ! ! En!la!base!de!datos!se!muestra!correctamente.!
50! Óscar&Masiá&Roig& ! ! Figura-65Pruebas-Administrador-modificar-rol-BD.- ! ! La!aplicación!también!muestra!la!modificación.! ! Figura-66Pruebas-Administrador-modificar-rol.- ! Administrador!eliminar!rol!12.2.19 ! Esta!acción!se!realizara!al!pulsar!el!botón!“h”.!Al!consultar!la!base!de!datos! se!puede!observar!que!se!ha!eliminado!correctamente.! ! Figura-67Pruebas-Administrador-eliminar-rol.- !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 51! ! ! Administrador!Visualizar!empleados.!12.2.20 ! ! Figura-68Pruebas-Administrador-visualizar-empleados.- Administrador!Añadir!empleado.!12.2.21 ! Para!crear!un!empleado!nuevo!se!pulsa!en!el!botón!“+”. ! Figura-69Pruebas-Administrador-añadir-empleado.- ! Después! de! añadir! el! empleado! verificamos! en! la! base! de! datos! y! observamos!que!se!ha!creado!correctamente.!
52! Óscar&Masiá&Roig& ! ! Figura-70Pruebas-Administrador-añadir-empleado-BD.- ! ! Y!en!la!aplicación!también!se!muestra.! ! Figura-71.-Pruebas-Administrador-añadir-empleado.- ! ! Administrador!modificar!empleado!12.2.22 ! Para! esta! acción! pulsamos! sobre! el! empleado! que! se! quiere! modificar,!en!este!caso!“solan”.!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 53! ! ! Figura-72Pruebas-Administrador-modificar-empleado.- ! ! En!la!base!de!datos!se!muestra!correctamente.! ! Figura-73Pruebas-Administrador-modificar-empleado-BD- ! ! La!aplicación!también!muestra!la!modificación.!
54! Óscar&Masiá&Roig& ! ! Figura-74Pruebas-Administrador-modificar-empleado- ! Administrador!eliminar!empleado!12.2.23 ! Esta!acción!se!realizara!al!pulsar!el!botón!“h”.!Al!consultar!la!base!de!datos! se!puede!observar!que!se!ha!eliminado!correctamente.! ! Figura-75Pruebas-Administrador-eliminar-empleado.- ! 12.3 Empleado! Empleado!login.!12.3.1 ! ! Figura-76.-Pruebas-Empleado-Login.- Tras!acceder!con!usuario!“pi_oscar”!y!contraseña!“pi_oscar”!que!tiene! como! rol! “pizzero”! y! destino! producto! “pizzeria”! por! lo! que! solo! debería! mostrar!las!partes!del!pedido!que!tengan!como!destino!la!pizzeria.!! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 55! ! Empleado!vista.!12.3.2 ! ! Figura-77.-Pruebas-Empleado-vista.- ! Podemos!observar!que!se!muestra!correctamente!el!pedido!que!se! ha!realizado!en!el!apartado!de!pruebas!de!la!aplicación!móvil.! ! Empleado!servir!producto.!12.3.3 ! ! Figura-78.-Pruebas-Empleado-servir-producto.- ! Para! dar! por! servido! un! producto! se! ha! de! pulsar! el! botón! con! el! símbolo!“v”.!Esta!acción!hará!que!desaparezca!de!la!vista.! ! ! 13 Puesta!en!Marcha.! ! 13.1 Redes.! ! Para!que!los!clientes!puedan!acceder!a!la!aplicación!y!realizar!pedidos,!es! necesario!contratar!una!conexión!a!Internet.! ! La! velocidad! contratada! dependerá! del! volumen! de! clientes! móvil! simultáneos.!En!TouchBar,!el!volumen!de!clientes!simultáneos!será!proporcional!al! espacio!físico!que!se!tenga!para!ubicar!a!los!clientes!reales!y!la!rotación!de!estos.! Suponiendo! que! en! este! espacio! pueden! sentarse! 120! comensales! y! que! no! se! sientan!todos!a!la!vez!sino!escalonadamente,!como!ocurre!en!el!modelo!normal!de! restaurante,!puede!que!menos!de!10!coincidan!accediendo!simultáneamente.! ! !Dada! esta! suposición! se! ha! de! contratar! una! línea! que! pueda! soportar! a! estos! 10! clientes! accediendo! a! la! vez! por! lo! que! con! 10Mbps!de! subida! seria! suficiente.!
56! Óscar&Masiá&Roig& ! ! También!es!recomendable!aportar!una!conexión!WIFI!para!aquellos!clientes! que!no!tengan!contratada!una!tarifa!de!datos!!para!su!dispositivo!móvil,!y!por!que! no,!poner!al!día!su!perfil!en!las!redes!sociales.!Para!esta!tarea!bastaría!con!20Mbps! de!descarga.! ! También!hay!que!contratar!una!IP-fija!con!el!operador!de!Internet!para!que! exista!una!dirección!a!la!que!puedan!acceder!los!clientes.!! ! 13.2 Hardware.! ! Touchbar! requiere! de! un! servidor! que! soporte! al! menos! 10! clientes! simultáneos!por!lo!que!bastaría!con!un!servidor!con!las!siguientes!características:! ! h Procesador!Intel!core!i5.! h 4!GB!de!RAM.! h 80!GB!de!disco!duro.! ! Para!poder!ofrecer!WIFI!a!los!clientes!que!no!tengan!conexión!a!Internet!y! permitir!que!accedan!a!la!aplicación!será!necesario!un!router!WIFI.!!! ! Para!la!visualización!de!los!pedidos!tanto!por!parte!del!administrador!como! de!los!empleados!es!recomendable!que!se!adquieran!tantos!tablets!como!destinos! de! producto! más! uno! para! el! administrador.! Con! esto! se! consigue! que! en! cada! destino!se!realice!el!seguimiento!del!pedido.! ! Sistema!Operativo.! ! El!sistema!operativo!que!se!va!usar!en!esta!instalación!es!un!Windows!7! x64.! Las! versiones! de! los! programas! instalados! en! este! manual! está! probada! la! compatibilidad!entre!ellos,!intentar!instalar!otras!versiones!puede!causar!errores! de! compatibilidades! entre! los! programas.! Sin! embargo,! la! aplicación! es! multiplataforma! por! lo! que! se! puede! instalar! en! otros! sistemas! operativos,! por! ejemplo! Ubuntu,! ! en! el! que! también! se! pueda! instalar! las! aplicaciones! que! se! necesita!para!su!funcionamiento.!!! ! Una! vez! cumplidos! los! requerimientos! anteriores! crearemos! una! capeta! llamada! java! en! el! directorio! raíz,! dentro! crearemos! otras! tres! con! el! nombre! tomcat7, mysql,!java6.!Estas!serán!los!directorios!de!instalación!de!cada!uno! de!ellos.!! ! 13.3 Configurar!Router.! ! h El!servidor!y!la!aplicación!Tomcat!ha!de!ser!visible!desde!Internet!por!ello! se! necesita! una! contratar! un! plan! de! banda! ancha! y! configurar! el! router! para! que! redireccione! las! peticiones! que! le! llegan! del! exterior! al! puerto! 8080!a!nuestro!servidor.!Un!ejemplo!de!configuración!puede!ser!el!indicado!
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 57! ! en!la!siguiente!Web:!http://ecoapre.blogspot.com.es/2011/04/configurarh routerhparahconvertirhtuhpc.html! ! 13.4 Instalación!Java.! ! Con! el! comando! java- –versionse! puede! comprobar! la! versión! de! java! instalada! en! el! ordenador,! toda! versión! por! encima! de! la! 6! es! válida! pero! recomiendo!instalar!la!última!versión!para!evitar!problemas.!Se!necesita!el!JDK!de! java!que!puede!ser!bajado!de!este!enlace:! ! http://www.oracle.com/technetwork/java/javase/downloads/jdk6u35h downloadsh1836443.html! ! ! Figura-79.-Descarga-jdk-1.6- ! La! ruta! de! instalación! debería! ser! la! carpeta! que! hemos! creado! en! el! raíz/java/java.! !
64! Óscar&Masiá&Roig& ! ! h Se!puede!acceder!a:!http://www.codigoshqr.com/generadorhdehcodigosh qr/! h Se!cambia!la!configuración!de!tamaño!a!muy!grande.! h En!el!campo!URL!se!introduce!el!texto!siguiente:! ! http://[sustituir!por!la!dirección!IP!del! servidor]:8080/touchbar/clientapp?mesa=[sustituir!por!el!numero!de!mesa]! ! h Se!pulsa!en!generar.! ! ! Figura-89.-Código-QR-de-ejemplo.- ! 13.8 Instalación!TouchBar!Móvil.! ! Como!primer!paso!se!debe!habilitar!debe! habilitar!en!la!configuración!h>! Aplicaciones!h>!Fuentes!desconocidas.!Des!pues!ya!se!puede!acceder!a!la!dirección! donde!se!encuentra!la!aplicación!touchBar!desde!el!terminal!móvil,!pulsar!en!el! enlace!de!descarga!e!instalar!la!aplicación.! ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 65! ! ! Figura-90.-Instalar-TouchBar-en-Android.- ! En! su! primer! uso! y! en! caso! de! que! no! tengamos! la! aplicación! “BarcodeScaner”! instalada! en! el! dispositivo! se! solicitara! la! instalación,! esta! aplicación!es!necesaria!ya!que!es!la!que!es!la!encargada!de!escanear!los!códigos!QR! y!descifrar!la!información!que!contiene!para!que!touchbar!la!pueda!utilizar.!! ! !
66! Óscar&Masiá&Roig& ! ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 67! ! 14 Conclusiones.! ! ! El!presente!trabajo!es!el!resultado!de!un!camino!apasionante,!pero!no!por! ello!menos!!complejo.!Tras!la!elección!de!la!tecnología!y!realizar!la!aplicación,!y!ver! con!perspectiva!el!trabajo!realizado,!se!ha!podido!comprobar!que,!siempre,!surgen! imprevistos!que!ralentizan!el!proceso!y!nunca!se!está!exento!de!problemas!como!el! del!!framework!javascript!“jquery!mobile”!que,!aunque!asegura!en!su!pagina! Web!que!funciona!de!maravilla!desde!la!versión!de!Android!2.2,al!realizar!las! pruebas,!se!puede!observar,!que,!aunque!en!esas!versiones!es!funcional,!es!a!partir! de!la!4,0!cuando!realmente!!se!obtiene!el!resultado!grafico!esperado,!como!las! transiciones!y!demás!efectos!que!en!versiones!anteriores!son!bruscos!y!se!ven!! mal.! ! !!!!!!!!!!!!!A!pesar!de!todo,!ha!sido!una!gran!experiencia!la!realización!del!proyecto,! trabajando! con! tantas! tecnologías! juntas! que,! en! un! principio,! mas! que! agilizar! entorpecen!el!avance!por!el!coste!que!requieren!en!aprendizaje!pero,!una!vez!se! tiene!soltura!facilitan!mucho!el!trabajo.! ! Tras! finalizarse! puede! decir! que! se! ha! cumplido! con! el! objetivo! de! “Implementar+ un+ TPV+ para+ la+ Hostelería+ y+ un+ cliente+ móvil”!aunque! aun!queda! mucho!por!mejorar.+ ! 15 Posible!trabajo!futuro! ! Existen!muchas!posibilidades!de!ampliación!de!la!aplicación,!de!las!cuales,! se!pueden!considerar!las!más!importantes:! ! h Desarrollar!la!opción!de!pagar!la!cuenta!desde!el!dispositivo!móvil!una! vez!aceptado!el!pedido.! ! h Poder!consultar!los!pedidos!realizados.! ! h Crear!clientes!móviles!en!otras!plataformas!como Ios, WidowsPhone, Blackberry.! ! h Crear!una!colección!de!fotos!de!productos!básicos,!para!seleccionar!de! aquí!la!foto!que!se!incrusta!en!la!ficha!de!producto!y!grupo.! ! h Poder!cargar!fotos!para!la!ficha!de!empleado! ! h Poder!cargar!fotos!para!la!ficha!de!producto,!grupo.! ! h Menú! de! caja! para! el! administrador,! con! el! que! se! mostrara! la! caja! realizada!durante!el!día!o!a!partir!de!una!fecha.! ! Con!estas!posibilidades!se!ampliaría!la!funcionalidad.!
68! Óscar&Masiá&Roig& ! ! ! h Opción!de!pedir!la!cuenta!por!si!no!se!quiere!pagar!directamente!desde! el!móvil.! ! h Añadir! opciones! a! los! productos! como! por! ejemplo! en! el! producto! “Agua”!la!opción!“natural”!o!en!el!producto!“café”!la!opción!“del!tiempo”.! ! h Poder! asignarle! complementos! de! precio! a! las! opciones! según! el! producto!al!que!se!liguen.!! ! h Crear!la!opción!de!menús.! ! h Desarrollar!la!opción!de!crear!Descuentos!y!ofertas.! ! h Crear!estadísticas!como!por!ejemplo!consumo!medio!de!clientes.! ! ! !
Diseño!e!implementación!de!un!TPV!para!la!Hostelería! 69! ! ! 16 Bibliografía.! ! Java:!http://www.oracle.com/technetwork/java/javase! /downloads/index.html! Maven:!http://maven.apache.org/! Hibernate:!http://www.hibernate.org/! Spring:http://www.springsource.org/! Spring!MVC:!http://static.springsource.org/spring/docs/current/springh frameworkhreference/html/mvc.html! Apache!Tomcat:!http://tomcat.apache.org/! Android!Developers:!http://developer.android.com/reference/! packages.html! Android!SDK:http://developer.android.com/sdk/index.html! Jquery:!http://jquery.com/! JqueryMobile:!http://jquerymobile.com/! Sencha!touch:!http://www.sencha.com/products/touch! Eclipse:!http://www.eclipse.org/! NetbBeans:http://netbeans.org/! MySql:!http://www.oracle.com/es/products/mysql/index.html! PostgreSQL:!http://www.postgresql.org/! Zxing:!http://code.google.com/p/zxing/! ! ! ! ! ! ! !