PROTOTIPO DE APLICACION MOVIL PARA VENTA DE LICORES A
DOMICILIO
LEONARDO CUBIDES CUBILLOS
OSCAR JAVIER GOMEZ TREJOS
UNIVERSIDAD CATOLICA DE PEREIRA
FACULTAD DE CIENCIAS BASICAS E INGENIERIAS
INGENIERIA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA
2014
PROTOTIPO DE APLICACION MOVIL PARA VENTA DE LICORES A
DOMICILIO
LEONARDO CUBIDES CUBILLOS
OSCAR JAVIER GOMEZ TREJOS
Director del Proyecto.
GERMAN GONZALEZ BEDOYA
Ingeniero de Sistemas y Computación
UNIVERSIDAD CATOLICA DE PEREIRA
FACULTAD DE CIENCIAS BASICAS E INGENIERIAS
INGENIERIA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA
2014
Nota de Aceptación
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
Firma del Presidente del Jurado
____________________________________
Firma del Jurado
Pereira, 2014
DEDICATORIA
Dedico este proyecto de grado especialmente a mi abuela aunque no esté en el
mundo terrenal, sé que siempre me ha acompañado y me ha dado fuerza para
seguir adelante y espero que donde se encuentre ahora este orgullosa.
A mi madre que ha sido la persona que en toda su vida ha puesto mis intereses
por encima de todo, la que me ha apoyado en todos los objetivos que me he
planteado en la vida, gracias por la confianza y amor brindado, este logro no es
solo mío sino también tuyo porque eres la persona que ha estado ahí en todo
momento.
A mi familia que siempre me ha dado ánimos para no desfallecer en el camino.
A todas las personas que de alguna manera u otra forma contribuyeron conmigo,
reciban este trabajo como suyo y sépanse acreedores de mi especial
agradecimiento: Dios los bendiga.
Oscar Javier Gómez Trejos
A Martín, a la mamá de Martín, a los abuelos de Martín, a los tíos de Martín y a la
mascota de Martín.
Leonardo Cubides Cubillos
AGRADECIMIENTOS
Queremos hacer llegar un profundo agradecimiento a la UNIVERSIDAD
CATOLICA DE PEREIRA, y especialmente a las personas que intervinieron en el
convenio con la Fundación CIDCA, ya que sin éste no habría sido posible que este
sueño llamado profesionalización se llevara a cabo. También queremos extender
nuestro agradecimiento a los profesores que durante estos dos últimos años han
contribuido de manera especial y profunda en nuestra formación académica y
profesional, pero sobre todo a nuestro Director de Proyecto, el Ingeniero Germán
González, ya que gracias a su colaboración y ayuda hemos podido lograr la
culminación de este importante informe.
Los Autores
AGRADECIMIENTOS
A Dios,
Por acompañarme todos los días y brindarme la fuerza y la voluntad de seguir
adelante.
A Mamá,
Por ser mi aliada, mi ejemplo, gracias por todo el apoyo en este proyecto y en mi
vida porque has trabajado junto conmigo en toda tu vida por verme terminar
satisfactoriamente este proyecto.
Tía,
Por estar ahí siempre aconsejándome cuando más lo he necesitado.
Abuela (QEPD),
Gracias a todo lo que me enseñaste he podido llegar a este punto, has sido fuente
de mi inspiración y motivo de seguir adelante en alcance de mis metas.
Herney,
Gracias por creer en mí y siempre apoyarme en el alcance de mis objetivos.
Oscar Javier Gómez Trejos
AGRADECIMIENTOS
A Alejandra, por tolerar, por esperar y por hacerme entender que este logro es
tanto de ella como mío.
A mis Padres y a mis Hermanos, porque a pesar de las distancias geográficas,
han estado pendientes de mi proceso hacia el título profesional como Ingeniero.
Leonardo Cubides Cubillos
TABLA DE CONTENIDO
RESUMEN .............................................................................................................. 1
PALABRAS CLAVE: .................................................................................................. 1
ABSTRACT ............................................................................................................. 2
KEYWORDS: ........................................................................................................... 2
INTRODUCCION .................................................................................................... 3
1. PROPUESTA DE PROYECTO ......................................................................... 4
1.1. SITUACION PROBLEMATICA ................................................................... 4
1.1.1. Situación Comercial: ............................................................................ 4
1.1.2. Entregas a Domicilio: ........................................................................... 5
1.1.3. Comercialización de Bebidas Alcohólicas y demás: ............................ 5
1.2. OBJETIVOS ............................................................................................... 7
1.2.1. OBJETIVO GENERAL ......................................................................... 7
1.2.2. OBJETIVOS ESPECIFICOS ............................................................... 8
1.3. HIPOTESIS ................................................................................................ 9
1.4. DISEÑO METODOLOGICO ....................................................................... 9
1.4.1. Definición de la Metodología ............................................................... 9
1.4.2. Tipo de Investigación ......................................................................... 11
1.4.3. Fases Para el desarrollo del Prototipo ............................................... 12
1.4.4. Cronograma de Actividades del Prototipo ......................................... 17
1.5. APORTES DEL PROYECTO ................................................................... 18
1.5.1. APORTE TEORICO: .......................................................................... 18
1.5.2. APORTE PRÁCTICO ........................................................................ 18
2. MARCO TEORICO ......................................................................................... 20
2.1. ANTECEDENTES .................................................................................... 20
2.1.1. El Smartphone ................................................................................... 20
2.1.2. El App - Aplicaciones ......................................................................... 22
2.1.3. Productos y/o Proyectos existentes. .................................................. 24
2.2. MARCO CONTEXTUAL ........................................................................... 28
2.2.1. Eje Cafetero ....................................................................................... 28
2.2.2. Comercio de Licores .......................................................................... 29
2.2.3. Entregas a Domicilio .......................................................................... 30
2.3. MARCO CONCEPTUAL ........................................................................... 32
2.3.1. Tipologías de Desarrollo ................................................................... 32
2.3.2. Sistemas Operativos de Dispositivos Móviles ................................... 34
2.3.3. Plataformas de Desarrollo para móviles ............................................ 37
2.3.1.1. Desarrollo Móvil Web ..................................................................... 38
2.3.1.2. Desarrollo Móvil Nativo................................................................... 40
2.3.1.3. Aplicaciones Hibridas ..................................................................... 42
2.3.4. MYSQL .............................................................................................. 43
2.3.5. PHP ................................................................................................... 43
2.3.6. jQuery MOBILE .................................................................................. 44
3. RECOLECCION DE INFORMACION Y ANALISIS DE REQUERIMIENTOS . 45
3.1. RECOLECCION DE INFORMACION POR MEDIO DE ENCUESTAS Y
ENTREVISTAS .................................................................................................. 45
3.1.1. Definir Objetivos ................................................................................ 46
3.1.2. Definir tamaño de la Encuesta ........................................................... 47
3.1.3. Definir personas a Entrevistar ........................................................... 48
3.1.4. Entrevistas a propietarios de Estanquillos ......................................... 49
3.1.5. Definir datos a ser recolectados ........................................................ 49
3.1.6. Identificar los Requerimientos............................................................ 50
3.1.7. Clasificar y restablecer los requerimientos ........................................ 50
3.1.8. Analizar los Requerimientos .............................................................. 50
3.1.9. Administrar los Requerimientos ......................................................... 51
3.1.10. Probar y verificar los Requerimientos ................................................ 51
3.1.11. Validar los Requerimientos ................................................................ 51
3.2. CICLO DE VIDA DEL PROTOTIPO .......................................................... 51
3.3. HISTORIAS DE USUARIOS ..................................................................... 52
3.4. ANALISIS DE REQUERMIENTOS ........................................................... 52
3.4.1. Requerimientos Funcionales ............................................................. 52
3.4.1.1. Registro y Gestión de Clientes ....................................................... 52
3.4.1.2. Logueo Clientes ............................................................................. 53
3.4.1.3. Búsqueda de Productos ................................................................. 53
3.4.1.4. Mostrar Categorías ......................................................................... 53
3.4.1.5. Opciones de Compra...................................................................... 54
3.4.1.6. Canasto de Compra ....................................................................... 54
3.4.1.7. Estanterías de Productos ............................................................... 55
3.4.1.8. Realizar y Confirmar Pedido ........................................................... 56
3.4.1.9. Historial de Pedidos........................................................................ 57
3.4.1.10. Contacto ...................................................................................... 57
3.4.2. Requerimientos No Funcionales ........................................................ 58
3.4.2.1. Confiabilidad ................................................................................... 58
3.4.2.2. Plataforma del Sistema .................................................................. 58
3.4.2.3. Usabilidad ....................................................................................... 59
3.4.2.4. Seguridad ....................................................................................... 59
3.4.2.5. Rendimiento ................................................................................... 59
3.4.2.6. Escalabilidad .................................................................................. 59
3.4.2.7. Buenas Prácticas de Desarrollo ..................................................... 60
3.4.2.8. Mantenibilidad ................................................................................ 60
3.4.2.9. Portabilidad .................................................................................... 61
4. ESPECIFICACION DE REQUERIMIENTOS .................................................. 62
4.1. REQUERMIENTOS FUNCIONALES ....................................................... 62
TABLA 1 - REQUERIMIENTOS FUNCIONALES .................................................. 62
4.2. REQUERIMIENTOS NO FUNCIONALES ................................................ 65
4.3. IDENTIFICACION DE LOS CASOS DE USO ........................................... 66
5. IDENTIFICACION, ESPECIFICACION Y MODELADO DE CASOS DE USO 67
5.1. IDENTIFICACION DE CASOS DE USO ................................................... 67
5.1.1. Generalización del Actor .................................................................... 67
5.1.1.1. Diagrama de Caso de Uso ............................................................. 67
5.2. CREACION DE CLIENTE ......................................................................... 68
5.2.1. Diagrama de Caso de Uso ................................................................ 68
5.2.2. Especificación del Caso de Uso ........................................................ 69
5.2.3. Diagrama de Secuencia del Caso de Uso ......................................... 71
5.3. LOGUEO DE CLIENTE ............................................................................ 72
5.3.1. Diagrama de Caso de Uso ................................................................ 72
5.3.2. Especificación del Caso de Uso ........................................................ 73
5.3.3. Diagrama de Secuencia del Caso de Uso ......................................... 74
5.4. INGRESO A LA INTERFAZ PRINCIPAL .................................................. 75
5.4.1. Diagrama de Caso de Uso ................................................................ 75
5.4.2. Especificación del Caso de Uso ........................................................ 76
5.4.3. Diagrama de Secuencia del Caso de Uso ......................................... 77
5.5. BUSCAR PRODUCTOS .................................................................... 78
5.5.1. Diagrama de Caso de Uso ................................................................ 78
5.5.2. Especificación del Caso de Uso ........................................................ 79
5.5.3. Diagrama de Secuencia del Caso de Uso ......................................... 80
5.6. MOSTRAR PRODUCTOS POR CATEGORIA ......................................... 81
5.6.1. Diagrama de Caso de Uso ................................................................ 81
5.6.2. Especificación del Caso de Uso ........................................................ 82
5.6.3. Diagrama de Secuencia del Caso de Uso ......................................... 83
5.7. MOSTRAR PRODUCTOS POR OPCIONES DE COMPRA ..................... 84
5.7.1. Diagrama de Caso de Uso ................................................................ 84
5.7.2. Especificación del Caso de Uso ........................................................ 85
Sección Principal ............................................................................................ 85
5.8. ELEGIR PRODUCTO AL CANASTO ........................................................ 86
5.8.1. Diagrama de Caso de Uso ................................................................ 86
5.8.2. Especificación del Caso de Uso ........................................................ 87
5.8.3. Diagrama de Secuencia del Caso de Uso ......................................... 88
5.9. CANASTO DE COMPRA .......................................................................... 89
5.9.1. Diagrama de Caso de Uso ................................................................ 89
5.9.2. Especificación del Caso de Uso ........................................................ 90
5.9.3. Diagrama de Secuencia del Caso de Uso ......................................... 91
5.10. REALIZAR PEDIDO .............................................................................. 92
5.10.1. Diagrama de Caso de Uso ................................................................ 92
5.10.2. Especificación del Caso de Uso ........................................................ 93
5.10.3. Diagrama de Secuencia del Caso de Uso ......................................... 94
5.11. RECIBIR PETICION DE PEDIDO ......................................................... 95
5.11.1. Diagrama de Caso de Uso ................................................................ 95
5.11.2. Especificación del Caso de Uso ........................................................ 96
5.11.3. Diagrama de Secuencia del Caso de Uso ......................................... 97
5.12. ADMINISTRAR PEDIDOS .................................................................... 98
5.12.1. Diagrama de Caso de Uso ................................................................ 98
5.12.2. Especificación del Caso de Uso ........................................................ 99
5.12.3. Diagrama de Secuencia del Caso de Uso ....................................... 100
5.13. ADMINISTRAR PRODUCTOS ............................................................ 101
5.13.1. Diagrama de Caso de Uso .............................................................. 101
5.13.2. Especificación del Caso de Uso ...................................................... 102
6. DISEÑO DE LA BASE DE DATOS ............................................................... 104
6.1. TABLAS ........................................................................................................ 104
6.1.1. Categoría ......................................................................................... 104
6.1.2. Ciudad ............................................................................................. 105
6.1.4. DetCanasto ...................................................................................... 106
6.1.5. Dirección .......................................................................................... 106
6.1.6. Estado ............................................................................................. 107
6.1.7. ListaPrecios ..................................................................................... 107
6.1.8. Pedido ............................................................................................. 107
6.1.9. Prod_Lista ....................................................................................... 108
6.1.10. Producto .......................................................................................... 109
6.1.11. TipoCliente ...................................................................................... 109
6.1.12. Usuario ............................................................................................ 110
6.2. MODELO RELACIONAL DE LA BASE DE DATOS ................................ 110
6.3. DICCIONARIO DE DATOS .................................................................... 112
6.3.1. Categoría ......................................................................................... 112
6.3.2. Ciudad ............................................................................................. 112
6.3.3. Cliente ............................................................................................. 113
6.3.4. DetCanasto ...................................................................................... 113
6.3.5. Dirección .......................................................................................... 114
6.3.6. Estado ............................................................................................. 114
6.3.7. ListaPrecios ..................................................................................... 114
6.3.8. Pedido ............................................................................................. 115
6.3.9. Prod_Lista ....................................................................................... 115
6.3.10. Producto .......................................................................................... 116
6.3.11. TipoCliente ...................................................................................... 116
6.3.12. Usuario ............................................................................................ 116
6.4. CODIGO SQL DE LAS TABLAS ............................................................. 117
6.4.1. Estado ............................................................................................. 117
6.4.2. Usuario ............................................................................................ 117
6.4.3. ListaPrecios ..................................................................................... 118
6.4.4. TipoCliente ...................................................................................... 119
6.4.5. Cliente ............................................................................................. 119
6.4.6. Ciudad ............................................................................................. 121
6.4.7. Dirección .......................................................................................... 121
6.4.8. Categoría ......................................................................................... 122
6.4.9. Producto .......................................................................................... 123
6.4.10. DetCanasto ...................................................................................... 124
6.4.11. Pedido ............................................................................................. 125
6.4.12. Prod_Lista ....................................................................................... 127
6.5. DIAGRAMA DE CLASES ....................................................................... 129
6.6. ARQUITECTURA FISICA ....................................................................... 130
6.7. DISEÑO ARQUITECTONICO ................................................................ 131
6.7.1. Capa de Modelo .............................................................................. 132
6.7.2. Capa de Controlador ....................................................................... 134
6.7.3. Capa de Vista .................................................................................. 136
6.8. SEGURIDAD DEL APLICATIVO ............................................................ 139
6.8.1. Validación ........................................................................................ 139
6.8.2. Escapado ......................................................................................... 140
7. IMPLEMENTACION DE LOS MODULOS .................................................... 141
7.1. ESPECIFICACIÓN DE LOS MODULOS ................................................ 141
7.2. MODULO DE REGISTRO Y AUTENTICACION DE CLIENTES ............. 141
7.2.1. Vista del Método Registro de Cliente ............................................... 142
7.2.2. Vista del Método Logueo de Cliente ................................................ 143
7.2.3. Vista del Método Modificar Cliente .................................................. 144
7.3. MODULO DE PRODUCTOS Y CATEGORIAS ....................................... 145
7.3.1. Vista de la Interfaz Principal ............................................................ 146
7.3.2. Vista Método Buscar ........................................................................ 147
7.3.3. Vista Método Opciones de Compra ................................................. 148
7.3.4. Vista Método Categorías ................................................................. 149
7.4. MODULO DE CANASTO ........................................................................ 150
7.4.1. Vista Método Canasto ..................................................................... 151
7.5. MODULO DE PEDIDOS ............................................................................... 152
7.5.1. Vista Método Pedir .......................................................................... 153
8. RECURSOS DISPONIBLES ......................................................................... 154
9. CONCLUSIONES ......................................................................................... 155
10. RECOMENDACIONES ................................................................................. 157
10.1. PRUEBAS DEL APLICATIVO ................................................................ 157
10.1.1. Jmeter .............................................................................................. 157
BIBLIOGRAFIA Y WEBGRAFIA .......................................................................... 159
ANEXOS ............................................................................................................. 161
ANEXO 1. ENTREVISTA NÚMERO 1 ....................................................................... 161
ANEXO 2. ENTREVISTA NÚMERO 2 ....................................................................... 162
ANEXO 3. ENTREVISTA NÚMERO 3. ...................................................................... 164
ANEXO 4. ENTREVISTA NÚMERO 4. ...................................................................... 165
ANEXO 5. ENCUESTA .......................................................................................... 167
ANEXO 6. RESUMEN DE LAS RESPUESTAS DE LA ENCUESTA. ................................. 170
ANEXO 7. MANUAL DE USUARIO ........................................................................... 173
ANEXO 8. MANUAL TÉCNICO ................................................................................ 189
INDICE DE TABLAS
Tabla 1 - Requerimientos Funcionales .................................................................. 62
Tabla 2 - Requerimientos No Funcionales ............................................................ 65
Tabla 3 - Identificación de los Casos de Uso ........................................................ 66
Tabla 4 - Sección Principal CU Crear Usuario ...................................................... 69
Tabla 5 - Curso Normal Eventos CU Crear Usuario .............................................. 69
Tabla 6 - Cursos Alternos CU Crear Usuario ........................................................ 69
Tabla 7 - Sección Nuevo Usuario .......................................................................... 70
Tabla 8 - Cursos Alternos Nuevo Usuario ............................................................. 70
Tabla 9 - Sección Principal CU Logueo Cliente..................................................... 73
Tabla 10 - Curso Normal Eventos CU Logueo Cliente .......................................... 73
Tabla 11 - Cursos Alternos CU Logueo Cliente..................................................... 73
Tabla 12 - Sección Recuperar Clave CU Logueo Cliente ..................................... 74
Tabla 13 - Sección Principal CU Interfaz Ppal....................................................... 76
Tabla 14 - Curso Normal Eventos CU Interfaz Ppal .............................................. 76
Tabla 15 - Cursos Alternos CU Interfaz Ppal......................................................... 77
Tabla 16 - Sección Principal CU Buscar Productos .............................................. 79
Tabla 17 - Curso Normal Eventos CU Buscar Productos ...................................... 79
Tabla 18 - Cursos Alternos CU Buscar Productos ................................................ 79
Tabla 19 - Sección Principal CU Mostrar por Categorías ...................................... 82
Tabla 20 - Curso Normal Eventos CU Mostrar por Categorías ............................. 82
Tabla 21 - Cursos Alternos CU Mostrar por Categorías ........................................ 82
Tabla 22 - Sección Principal CU Opciones de Compra ......................................... 85
Tabla 23 - Curso Normal Eventos CU Opciones de Compra ................................ 85
Tabla 24 - Cursos Alternos CU Opciones de Compra ........................................... 85
Tabla 25 - Sección Principal CU Elegir Producto .................................................. 87
Tabla 26 - Curso Normal Eventos CU Elegir Producto .......................................... 87
Tabla 27 - Cursos Alternos CU Elegir Producto .................................................... 88
Tabla 28 - Sección Principal CU Canasto de Compra ........................................... 90
Tabla 29 - Curso Normal Eventos CU Canasto de Compra .................................. 90
Tabla 30 - Cursos Alternos CU Canasto de Compra ............................................. 91
Tabla 31 - Sección Principal CU Realizar Pedido ................................................. 93
Tabla 32 - Curso Normal Eventos CU Realizar Pedido ......................................... 93
Tabla 33 - Cursos Alternos CU Realizar Pedido ................................................... 93
Tabla 34 - Sección Principal CU Recibir Petición .................................................. 96
Tabla 35 - Curso Normal Eventos CU Recibir Petición ......................................... 96
Tabla 36 - Cursos Alternos CU Recibir Petición .................................................... 96
Tabla 37 - Sección Principal CU Administrar Pedidos ........................................... 99
Tabla 38 - Curso Normal Eventos CU Administrar Pedidos .................................. 99
Tabla 39 - Cursos Alternos CU Administrar Pedidos ............................................. 99
Tabla 40 - Categoría - Diccionario de Datos ....................................................... 112
Tabla 41- Ciudad - Diccionario de Datos ............................................................. 112
Tabla 42 - Cliente - Diccionario de Datos ............................................................ 113
Tabla 43 - DetCanasto - Diccionario de Datos .................................................... 113
Tabla 44 - Dirección - Diccionario de Datos ........................................................ 114
Tabla 45 - Estado - Diccionario de Datos ............................................................ 114
Tabla 46 - ListaPrecios - Diccionario de Datos.................................................... 114
Tabla 47 - Pedido - Diccionario de Datos ............................................................ 115
Tabla 48 - Prod_Lista - Diccionario de Datos ...................................................... 115
Tabla 49 - Producto - Diccionario de Datos ......................................................... 116
Tabla 50 - TipoCliente - Diccionario de Datos ..................................................... 116
Tabla 51 - Usuario - Diccionario de Datos ........................................................... 116
Tabla 52 - Recursos Disponibles ......................................................................... 154
Tabla 53- Recursos Informáticos ......................................................................... 154
TABLA DE ILUSTRACIONES
Ilustración 1 - Fases de la Metodología ................................................................... 9
Ilustración 2 - Fase 1 de Desarrollo ....................................................................... 12
Ilustración 3 - Fase 2 de Desarrollo ....................................................................... 13
Ilustración 4 - Fase 3 de Desarrollo ....................................................................... 14
Ilustración 5 - Fase 4 de Desarrollo ...................................................................... 15
Ilustración 6 - Fase 5 de Desarrollo ....................................................................... 16
Ilustración 7 - Cronograma del Prototipo ............................................................... 17
Ilustración 8 - Mapa Eje Cafetero .......................................................................... 28
Ilustración 9 - Diagrama de Actividades Requerimientos ...................................... 46
Ilustración 10 - Generalización del Actor ............................................................... 67
Ilustración 11 - Caso de Uso Creación Cliente ...................................................... 68
Ilustración 12 - Diagrama de Secuencia Creación Cliente .................................... 71
Ilustración 13 - Caso de Uso Logueo Cliente ........................................................ 72
Ilustración 14 - Diagrama de Secuencia Logueo de Cliente .................................. 74
Ilustración 15 – Caso de Uso Interfaz Ppal. .......................................................... 75
Ilustración 16 - Diagrama de Secuencia Interfaz Principal .................................... 77
Ilustración 17 - Caso de Uso Buscar Productos .................................................... 78
Ilustración 18 - Diagrama de Secuencia Buscar Producto .................................... 80
Ilustración 19 – Caso de Uso Mostrar Productos por Categorías ......................... 81
Ilustración 20 - Diagrama de Secuencia Mostrar por Categoría ............................ 83
Ilustración 21 - Caso de Uso Productos X Opciones Compra ............................... 84
Ilustración 22 - Caso de Uso Producto a Canasto ................................................. 86
Ilustración 23 - Diagrama de Secuencia Producto al Canasto .............................. 88
Ilustración 24 - Caso de Uso Manipular Canasto .................................................. 89
Ilustración 25 - Diagrama de Secuencia Manipular Canasto ................................. 91
Ilustración 26 - Caso de Uso Realizar Pedido ....................................................... 92
Ilustración 27 - Diagrama de Secuencia Realizar Pedido ..................................... 94
Ilustración 28- Caso de Uso Recibir Petición ........................................................ 95
Ilustración 29 - Diagrama de Secuencia Recibir Petición ...................................... 97
Ilustración 30 - Caso de Uso Administrar Pedidos ................................................ 98
Ilustración 31 - Diagrama de Secuencia Administrar Pedidos ............................. 100
Ilustración 32 - Caso de Uso Administrar Productos ........................................... 101
Ilustración 33- Diagrama de Secuencia Administrar Producto ............................ 103
Ilustración 34 – Modelo Relacional de la Base de Datos .................................... 111
Ilustración 35 - Diagrama de Clases ................................................................... 129
Ilustración 36 - Arquitectura Física ...................................................................... 130
Ilustración 37 - Diseño MVC ................................................................................ 131
Ilustración 38- Capa del Modelo - ClaseGestor.php ............................................ 132
Ilustración 39 – Capa del Modelo - ClaseProducto.php ...................................... 133
Ilustración 40 – Capa del Controlador - Login.php .............................................. 135
Ilustración 41 - Capa de Controlador – BuscarProducto.php .............................. 135
Ilustración 42 - Capa de Vista - FrmIngreso.php ................................................. 136
Ilustración 43 - Capa de Vista - Hoja de Estilo CSS ............................................ 137
Ilustración 44 - Capa de Vista - jQgrid Productos ................................................ 138
Ilustración 45 - Validación Formularios ............................................................... 139
Ilustración 46 - Escapado - Seguridad ................................................................ 140
Ilustración 47 - Vista Método Registrar Cliente ................................................... 142
Ilustración 48 - Vista Método Logueo Cliente ...................................................... 143
Ilustración 49 - Vista de Método Modificar Cliente .............................................. 144
Ilustración 50 - Vista Interfaz Principal ................................................................ 146
Ilustración 51 - Vista Método Buscar ................................................................... 147
Ilustración 52 - Vista Método Opciones de Compra ............................................ 148
Ilustración 53- Vista Método Categorías ............................................................. 149
Ilustración 54- Vista Método Canasto .................................................................. 151
Ilustración 55 - Vista Método Pedir ...................................................................... 153
1
RESUMEN
El proyecto se genera como una propuesta de mejoramiento dirigida a los
negocios que venden y distribuyen licores y todos los productos relacionados con
la actividad y la rumba nocturna. Este proyecto tiene como finalidad principal
diseñar un prototipo de aplicación móvil para que los clientes de los estanquillos
puedan realizar sus pedidos a domicilio directamente desde sus Smartphones. El
software prototipo es manipulado directamente por los clientes desde su domicilio
o en el lugar donde se encuentren, brinda la posibilidad de visualizar la
información principal de los productos: precio, descripción, imagen, cantidad, para
poder efectuar un pedido desde su celular y ser entregado posteriormente. En
síntesis, el desarrollo de este software prototipo buscar involucrar el uso de
sistemas novedosos como los Smartphones y las App, en un proceso simple y
cotidiano como lo es la venta detallada de licores en una ciudad como Pereira.
Palabras Clave:
Prototipo, aplicación móvil, Smartphone, domicilio, celular, App, licores.
2
ABSTRACT
Proyect is generate as a proposal of improvement directed at the businesses that
sell and distribute liquor and all products related with the activity and night party.
The main objective this proyect is to design a prototype of a mobile application for
customer of liquor store will can place orders directly from their home
smartphones. The prototype software is directly manipulated by customers from
home or wherever they are, provides the possibility to display the main information
of the products: price, description, picture, quantity, can make an order from is cell
phone and will delivered later. In conclusion, the development of this prototype
software seek to involve the use of innovative systems such as smartphone and
App, in a simple process and daily as it is the detailed sale of liquor in a city like
Pereira.
Keywords:
Prototype, mobile application, smartphone, home, cellphone, App, liquor.
3
INTRODUCCION
El prototipo de aplicativo móvil y web para comercialización de licores a domicilio
es una aplicación desarrollada para dispositivos móviles y administrada desde un
entorno web, cuyo propósito es facilitar la comercialización y venta de licores y
productos relacionados en la región del Eje Cafetero. El propósito es brindarle a la
pequeña o mediana empresa del sector de los licores una alternativa segura para
la comercialización de sus productos, tomando como base principal la entrega de
pedidos a domicilio.
La idea se basa en crear una herramienta que le permita a cualquier cliente de la
distribuidora o comercializadora, realizar pedidos desde su dispositivo móvil, de
todo tipo de bebidas para que le sean entregados donde los solicite y en el menor
tiempo posible. El prototipo es una aplicación que le proporciona el beneficio al
usuario final de poder adquirir los productos de estanquillo que requiera como si
los estuviera comprando directamente en el establecimiento comercial, pero sin la
necesidad de trasladarse ni incomodarse, con la seguridad y la confianza en la
entrega, el pago, la calidad del servicio y de los productos.
4
1. PROPUESTA DE PROYECTO
1.1. SITUACION PROBLEMATICA
Desde la creación de los teléfonos inteligentes se han venido incrementando las
posibilidades de mejorar las condiciones y facilitar las tareas de las personas. El
Prototipo a desarrollar es un aplicativo que desea continuar con este
mejoramiento, partiendo de una base comercial estructurada y llegando al usuario
por medio de una herramienta de muy fácil acceso y utilización.
1.1.1. Situación Comercial:
Actualmente en el Eje Cafetero los establecimientos de comercio que
distribuyen bebidas alcohólicas y sus similares no cuentan con una
estructura sistematizada para el manejo de los pedidos, el control de la
información de los clientes y sobretodo no poseen una herramienta que
les permita manejar y optimizar las entregas a domicilio vía móvil o vía
web.
5
1.1.2. Entregas a Domicilio:
Las entregas a domicilios de cualquier mercadería constituyen una
buena parte de la logística comercial en la región del Eje Cafetero, sin
embargo, los productos o servicios que se canalizan por este medio se
solicitan en gran medida por vías telefónicas, es decir, no existen
muchas aplicaciones que brinden un servicio de domicilio desde una
plataforma móvil o web. En el campo comercial de las bebidas
alcohólicas la oferta de aplicaciones para este medio es prácticamente
nula, lo cual abre una muy buena posibilidad para que El aplicativo se
convierta en una herramienta totalmente innovadora e impactante en
este medio comercial, teniendo en cuenta que la demanda comercial de
las bebidas alcohólicas es alta a pesar de las restricciones sociales y de
los altos costos de venta y distribución.
1.1.3. Comercialización de Bebidas Alcohólicas y demás:
En el Eje Cafetero, como en otras regiones del país, es habitual la
venta, la distribución y el consumo de bebidas embriagantes y todos los
productos de su entorno, como pasabocas, cigarrillos, gaseosas,
bebidas energizantes y demás. Esto indica que el campo de acción de
la aplicación puede llegar a ser bastante extenso y con grandes
probabilidades de aceptación por parte tanto del cliente como de los
usuarios finales.
6
Es importante en este escenario realizar un riguroso estudio de mercados para
establecer los puntos más relevantes de este campo comercial, lo cual portaría
mejores herramientas para la investigación y la posterior ejecución de la idea.
El desarrollo del proyecto se establece bajo las normas y las leyes que rigen la
comercialización de este tipo de productos (bebidas alcohólicas y demás), en un
marco absolutamente legal y transparente con el fin de que la operación y la
ejecución de las tareas no tengan ningún inconveniente. Igualmente, el Proyecto
se va a desarrollar con plataformas de software y hardware totalmente legales y
aprobados por la ley, y con aplicación en los distintos sistemas utilizados en los
dispositivos móviles (Android, IOSMac, BlackBerry).
7
1.2. OBJETIVOS
1.2.1. OBJETIVO GENERAL
El objetivo general del proyecto es desarrollar un prototipo de aplicación para
dispositivos móviles, dirigido a estanquillos y licorerías para que les permita
automatizar el proceso de los pedidos a domicilio de sus clientes.
8
1.2.2. OBJETIVOS ESPECIFICOS
Obtener, analizar y especificar los requerimientos para el desarrollo de una
aplicación para dispositivos móviles, partiendo de procedimientos confiables
y eficientes que garanticen el mayor aprovechamiento del trabajo.
Diseñar y crear la arquitectura de una aplicación para dispositivos móviles,
con base en la construcción de diagramas y de procesos que constituyan el
pilar fundamental para el buen desarrollo de la aplicación como tal.
Diseñar y desarrollar los modelos de datos para el entorno de desarrollo
web y para el entorno de desarrollo móvil.
Desarrollar el código fuente para el entorno web de la aplicación tomando
como base el diseño de los modelos de datos.
Desarrollar el código fuente para el entorno móvil de la aplicación tomando
como base los diseños de modelos de datos.
Integrar, implementar y probar todos los componentes de la aplicación.
Realizar la documentación correspondiente a manual técnico y manual de
usuario.
9
1.3. HIPOTESIS
¿Es posible desarrollar un prototipo de aplicativo para dispositivos móviles dirigido
a estanquillos y licorerías para que les permita automatizar el proceso de pedidos
a domicilio que realizan sus clientes?
1.4. DISEÑO METODOLOGICO
1.4.1. Definición de la Metodología
Para la construcción del Prototipo de Aplicación Móvil se escogió la metodología
RUP (Rational Unified Process1). Este proceso para el desarrollo de Software
constituye la metodología estándar más utilizada para el análisis, implementación
y documentación de los Sistemas Orientados a Objetos (POO).
ILUSTRACIÓN 1 - FASES DE LA METODOLOGÍA
FUENTE LOS AUTORES
1 Proceso Racional Unificado
10
La construcción del Prototipo se ha efectuado de acuerdo a las siguientes Fases:
Fase de Inicio
En esta etapa se realizaron los estudios relacionados con el contexto y la
problemática a investigar, el alcance y el tamaño del proyecto y se
planificaron las fases que se desarrollarían a continuación. En la Fase de
Inicio se analizaron y se definieron los Requerimientos del prototipo, lo cual
se toma como base para los casos de Uso.
Fase de Elaboración
En esta fase se realizó el análisis detallado de la construcción del Prototipo
con base al diseño de los Casos de Uso. Los Casos de Uso que se crearon
en la parte de Análisis son de gran ayuda para estructurar la arquitectura
del aplicativo, tanto a nivel web como móvil. En esta fase de elaboraron los
diagramas de Secuencia que complementan los casos de uso, se crearon
los diseños o bancos de Datos y el Diagrama General de Clases de toda la
aplicación.
Fase de Transición
En la fase de Transición se finaliza la parte de Análisis y se inicia el proceso
de implementación de los diseños, es decir la codificación tanto del
ambiente móvil, como del ambiente web. Durante esta fase se efectúan
pruebas de conexión con la base de datos, acoplamiento y adecuación de
los módulos y se inyecta información suplementaria a la Base de Datos.
11
1.4.2. Tipo de Investigación
Para el enfoque metodológico se requieren dos formas de investigación:
Cuantitativa
La idea de un enfoque cuantitativo es responde a la hipótesis mediante la
medición de las características del prototipo desarrollado a través de las
variables involucradas en la metodología.
Exploratoria
El objetivo es examinar un tema o problema poco conocido y abordado con
anterioridad, es decir que, en la revisión de la literatura e información
preliminar de campo, se ha encontrado guías e ideas vagamente
relacionadas con el problema de estudio, pero no hay estudios formales
relacionados directamente con el objetivo general del proyecto.
18
1.5. APORTES DEL PROYECTO
1.5.1. APORTE TEORICO:
A partir de lo teórico, el proyecto y en si la aplicación generan aportes técnicos y
tecnológicos que se reflejan en los procedimientos y los procesos utilizados para
el desarrollo del software tanto a nivel web como móvil. La aplicación será
desarrollada en plataformas de software de alto nivel (JQuery Mobile y PHP) en
donde se implementarán procesos de gamas competitivas y profesionales que se
han venido adecuando en grandes aplicaciones a nivel mundial. La utilización de
estas herramientas es una posibilidad de enriquecimiento cognitivo tanto para los
desarrolladores de la aplicación como para los estudiantes, profesores o personas
que deseen generar otros caminos de investigación a partir de este proyecto.
1.5.2. APORTE PRÁCTICO
El proceso para realizar y entregar pedidos no es una estrategia nueva ni
novedosa a nivel regional, es uno de las operaciones logísticas más efectuadas en
la comercialización de cualquier tipo de producto. El aporte práctico del proyecto
está dirigido al campo de negocio que se pretende generar tomando como base el
uso de una herramienta sistematizada que les permitirá a los usuarios mejorar la
calidad del servicio en todos los sentidos. El proyecto no es solo una aplicación
como tal, es también una idea de negocio que puede llegar a ser bastante rentable
y con muy buenos beneficios económicos para una persona que cuente con el
conocimiento suficiente del mercado, de las condiciones comerciales, de los
19
niveles de seguridad, de almacenamiento de productos y manejo y atención de
clientes.
Ventajas Comerciales:
Los comerciantes y distribuidores de este tipo de productos tendrán la
posibilidad de mejorar la calidad del servicio y brindar a sus clientes una
mejor atención representada en menores tiempos de respuesta, facilitando
la ubicación exacta de sus clientes, disminuyendo la carga administrativa de
sus operaciones y concentrando los esfuerzos en disminuir los tiempos de
solicitud y entrega de los pedidos.
Los clientes a su vez, contarán con un valor agregado de seguridad y
confianza, ya que la herramienta le permitirá manejar la información
personal y por ende establecer los parámetros suficientes para que sus
pedidos sean entregados con el tiempo y la ubicación requerida.
La aplicación brinda la comodidad al usuario de realizar los pedidos en
tiempo real y con la facilidad y confianza de estarlo haciendo directamente
en el establecimiento comercial, todo esto gracias a la interfaz visual y la
optimización de los recursos y los procesos internos de la herramienta.
20
2. MARCO TEORICO
2.1. ANTECEDENTES
Dentro del glosario de conceptos emitidos en este proyecto, es importante
enfatizar en dos muy relevantes para el desarrollo del mismo: Smartphone y App.
2.1.1. El Smartphone
Los “Smartphone” o teléfonos inteligentes son dispositivos móviles que
cumplen las mismas funciones que un teléfono celular y adicional a esto,
permiten realizar tareas casi tan complejas como las de un computador de
escritorio. 2La característica más importante (una de ellas) de casi todos los
teléfonos inteligentes es que permiten la instalación de programas para
incrementar el procesamiento de datos y la conectividad. Estas aplicaciones
pueden ser desarrolladas por el fabricante del dispositivo, por el operador o por
un tercero.
3En 1996 salió al mercado a Palm Pilot, que no fue técnicamente un
Smartphone, pero fue muy importante ya que ayudo a popularizar el uso de
dispositivos portátiles, y acostumbró a los usuarios a la idea de poder llevar sus
2 Área Tecnología. Febrero de 2014. Qué es un Smartphone. http://www.areatecnologia.com/Que-es-un-smartphone.htm 3 Breve Historia de los smartphones. Enero 14 de 2011. http://www.puntogeek.com/2011/01/14/breve-historia-de-los-smartphones/
21
datos de un lado a otro. Fue un equipo muy utilizado por ejecutivos y hombres
de negocios.
A fines de la década del ’90, la compañía canadiense Research In Motion
(RIM) era conocida gracias a sus beepers, que eran usados por decenas de
millones de personas en todo el mundo. Pero a comienzos de 2002, RIM entró
en el mercado de los teléfonos móviles, y lo hizo por la puerta grande: el
BlackBerry 5810 era un teléfono con la capacidad de revisar correos
electrónicos y navegar por Internet.
El principal aspecto negativo de este producto es que, para hablar por teléfono,
era necesario utilizar auriculares, ya que, por más increíble que parezca, el
equipo no tenía altavoces. Esto fue así ́durante 2 años, ya que en 2004 RIM
lanzó su BlackBerry 6210, con la cual se podía hacer llamadas sin accesorio
adicional alguno.
En el año 2007, la empresa estadounidense Apple Inc. lanza al mercado lo que
sería el más novedoso dispositivo móvil del momento: el IPhone. El éxito que
tuvo Apple con su primer intento en ingresar al mercado de los móviles, fue
alucinante. El producto vendió́ millones de unidades, en parte gracias a su
pantalla táctil, y a que ofrecía la mejor experiencia en Internet hasta ese
momento. Tras el enorme éxito del iPhone, las operadoras de telefonía móvil
22
han descubierto que pueden “asegurarse” a sus clientes por mucho tiempo,
vendiéndoles Smartphone a subsidiados, a precios relativamente económicos.
En el mismo año en que Apple lanzó el iPhone, Google presentó su sistema
operativo Android. Este último lanzamiento no fue tan explosivo, ni causó tanto
revuelo en ese entonces, pero actualmente, es posible decir que Android es
rotundamente exitoso, ya que es un éxito en ventas en Estados Unidos y
Europa, tiene miles de aplicaciones disponibles en la Tienda Android, y un
futuro más que prometedor. De hecho, recientemente se conoció́ el dato de
que en los Estados Unidos hay más móviles con Android que iPhone.
2.1.2. El App - Aplicaciones
Las Apps o aplicaciones para dispositivos tienen un desarrollo mancomunado
con el de los dispositivos móviles, ya que la función principal de un
Smartphone, o más bien su concepto, es de servir como plataforma para
aplicaciones que hagan provecho de las características del teléfono mismo.
Inicialmente el foco de importancia estaba centrando en el equipo, en su
hardware y su portabilidad, sin embargo todo cambia con la aparición en 2007
del IPhone de Apple que plantea una nueva estrategia, cambiando las reglas
de juego, ofreciendo su teléfono como una plataforma para correr aplicaciones
que dejaban a desarrolladores y compañías externas ofrecerlas en su App
store (tienda de aplicaciones). Para finales del 2008 había prácticamente una
aplicación para todo. Cuando la App Store abrió contaba con 500 aplicaciones
23
y Android Marquet (Google Play) con 50; ahora en 2013 la App Store tiene
775.000 y Google Play 800.000 cada una con una función o funciones que
aprovechan las características del teléfono. 4
Android con su Marquet al ser una plataforma “open source” (libre desarrollo)
permitió una mayor libertad, y con esto llegaron Smartphone de bajo costo.
Actualmente es normal ver a personas de cualquier edad y estatus utilizando
aplicaciones, y es por que poco a poco estos aparatos se están volviendo
imprescindibles, y no serían nada sin el abundante y variado ecosistema de
aplicaciones que existe para todas las plataformas. Hoy en día todas las
páginas web se preocupan por tener una buena versión adaptada para móviles
o en mejor caso una App. El internet tiene la vista puesta en los teléfonos
inteligentes y es de esperarse, los contratos de internet móvil doblan a los de
conexión fija.
Lo más relevante de todo esto es que ni Apple ni Google le apuestan a
desarrollar aplicaciones, porque simplemente no es su mercado. En vez de eso
facilitaron la posibilidad de darle a cualquier persona acceso a los SDK
(Software Development Kits o Kit de Desarrollo de Software). Es aquí donde el
abanico de aplicaciones se incrementaron radicalmente y entraron miles de
nuevas empresas y microempresas ofertando sus productos, es ese el
4 La Historia de Apps Store para Smartphones. Febrero 7 de 2012. http://www.androidpit.es/historia-app-store-smartphones
24
presente, es en este momento en el cual empieza la real competencia a nivel
regional, nacional y mundial.
2.1.3. Productos y/o Proyectos existentes.
La información y documentación sobre investigaciones o proyectos con
objetivos similares al propuesto es bastante reducida. Posiblemente una de las
razones de este factor es que los sistemas o desarrollos de aplicaciones
móviles están en pleno auge a nivel mundial, sin embargo se extrajeron
algunos proyectos con finalidades similares a las expuestas en este proyecto:
Aplicativo Móvil para la administración de solicitudes de Taxis
Universidad Católica de Pereira
Este proyecto realizado en el año 2012 tiene como propósito principal
“construir una aplicación móvil para Android que permite alarmar a los
miembros de la comunidad taxistas Twitteros cuando se requiera de sus
servicios”. De acuerdo a lo anterior, el objetivo del proyecto está
orientado a la construcción de una aplicación para dispositivos móviles,
dirigida a la comunidad de los taxistas de la ciudad de Pereira, cuya
funcionalidad consiste en “generar una comunicación directa desde sus
dispositivos Smartphone, entre una comunidad de taxistas llamada
Taxistas Twitteros y sus posibles pasajeros, con el fin de que los
pasajeros puedan hacer peticiones de servicios de taxi, y los taxistas
puedan estar al tanto de cuando hay solicitudes y cuando se requiere de
25
la prestación de un servicio”. En conclusión, el aplicativo propuesto en
esta investigación sugiere una serie de requerimientos basados en
solicitudes y respuestas a un servicio masivo y de uso común en la
sociedad, es decir, se parte de una actividad cotidiana y se le incorpora
un valor agregado capaz de mejorar la funcionalidad del servicio
haciéndolo comercialmente más llamativo.
Software Prototipo de Sistematización de pedidos e inventarios –
Comidas Rápidas Coyote Good Food.
Universidad Tecnológica de Pereira
La finalidad de esta investigación es la de “desarrollar un prototipo de
aplicación web para el restaurante ‘Coyote Good Food’ que le permita
automatizar los procesos de ventas, inventarios y gestión de pedidos”.
Aunque el proyecto no involucra la participación de Smartphone, es
destacable la estructura funcional que se basa en la sistematización en
la toma y entrega de pedidos en un establecimiento comercial de
comidas rápidas. La solución que buscar este proyecto consiste en
mejorar “la gestión de pedidos y el control de inventarios, los cuales se
realizan de forma manual generando retrasos e inconformidad en el
cliente, impidiendo el crecimiento y posicionamiento de la empresa en el
mercado”. Al igual que la anterior investigación, este proyecto centra su
problemática en una situación o actividad humana común y frecuente, y
26
lo que busca es modificar los procesos manuales para transformarlos en
flujos confiables de información.
Actualmente se vienen desarrollando varias aplicaciones para dispositivos móviles
cuyo propósito fundamental es mejorar y agilizar la venta de productos de
consumo masivo, tales como alimentos, bebidas, farmacéuticos entre otros. El
gran poder de estas aplicaciones es querer llegar al usuario por medio de una
interfaz gráfica amigable, adaptable y de fácil uso, y sobre todo con el menor
consumo de los recursos propios de cada dispositivo. A continuación se citan tres
de las más reconocidas aplicaciones usadas actualmente en el mercado:
HelloFood
Es una aplicación móvil para dispositivos IPhone (Mac) y Android
(Google) que sirve para ordenar comidas a domicilio de una variedad
extensa de restaurantes ubicados en la zona donde se encuentra el
cliente. Esta aplicación fue desarrollada por una empresa europea
llamada Rocket Internet, la cual se dedica a generar impulso comercial a
empresas que estén interesadas en mejorar sus ventas por medio de los
canales virtuales que posee la red de comunicaciones más grande del
mundo. HelloFood ha ingresado con gran impacto a más de 27 países y
27
es considerado el servicio de entrega de alimentos a domicilio con el
alcance más amplio del mundo. 5
Rebaja Móvil
Esta aplicación fue construida para la cadena de droguerías La Rebaja y
está basada en un sistema de petición de productos farmacéuticos a
domicilio desde los dispositivos móviles con sistema operativo IO de
Mac, es decir, de la empresa Apple Inc. Esta aplicación fue desarrollada
por la empresa colombiana Imaginamos Ltda., la cual ofrece un
portafolio de productos y servicios tales como el diseño web para
pequeñas y medianas empresas, diseño de logos, hosting, aplicaciones
web entre otros. 6
Correo de La Noche
También desarrollada por Imaginamos Ltda., y es particularmente la
aplicación que más se asemeja al comportamiento y funcionalidad del
propuesto en este proyecto. La aplicación direcciona su actividad en la
entrega de pedidos de bebidas embriagantes y snack en la ciudad de
Bogotá pero solo en horarios nocturnos y en determinadas zonas. 7
5 HelloFood. Comidas a domicilio. http://www.hellofood.com.co/ 6 Rebaja Móvil. Droguería a domicilio. http://www.larebajamovil.com/ 7 Correo de la Noche. Rumba a domicilio. http://www.correodelanoche.com/
28
2.2. MARCO CONTEXTUAL
2.2.1. Eje Cafetero
El Eje Cafetero, o Triángulo del Café, es una región topográfica de Colombia,
comprendida en su extensión por los departamentos de Risaralda, Caldas y
Quindío con sus respectivas capitales Pereira, Manizales y Armenia. La Región
tiene una extensión total de 13.871 Km2 que representa cerca del 1,2% de la
superficie total del país y está conformado por 53 municipios de los 1.098 con los
que cuenta el país.
ILUSTRACIÓN 8 - MAPA EJE CAFETERO
Según el Observatorio Colombiano de Ciencia y Tecnología la economía de la
Región se basa principalmente en la actividad agrícola, la industria manufacturera,
el comercio y actualmente en creciente industria turística. En Caldas y Quindío se
29
mantiene una importante actividad agrícola siendo su principal cultivo el café.
Otros cultivos que en los últimos años han incrementado su producción son: el
plátano, yuca, sorgo, soya, fríjol, maíz y cacao. En Risaralda los sectores
económicos que se destacan por los resultados obtenidos fueron los de la
industria manufacturera y el comercio, la construcción, los servicios sociales,
personales, el transporte y las comunicaciones; por el contrario, la producción de
café viene disminuyendo considerablemente desde algunos años.
El Eje Cafetero, y en especial la ciudad de Pereira viene evidenciando un notable
crecimiento comercial, integrando la participación de una extensa gama de
productos y servicios, que van desde las necesidades básicas hasta actividades
relacionadas con el turismo y la recreación.
2.2.2. Comercio de Licores
En un estudio reciente publicado por el diario La Patria de Manizales se dan a
conocer los niveles de comercialización y consumo de Licores en el Eje Cafetero.
La publicación muestra un análisis comparativo de las ventas de Licores en el
país, donde los resultados en ventas de la región del Eje Cafetero, junto con la de
Antioquía, tienden a ser superiores que el promedio nacional. El proceso de
distribución de los productos y bebidas embriagantes es básicamente el mismo
que cualquier otro producto que se comercializa en la región, después de
producido y terminado es repartido por diferentes canales y modos de
30
comercialización, que va desde las grandes superficies, mayoristas, distribuidoras,
estanquillos y tiendas de barrio, para llegar al consumidor final. 8
2.2.3. Entregas a Domicilio
Muchas y recientes investigaciones coinciden en que el comportamiento del
consumidor está determinado por una gama de estímulos tales como anuncios,
necesidades fisiológicas y otros factores que inciden directamente en la toma de
decisiones a la hora de adquirir algo. Estos hábitos de consumo demuestran
(según la firma Urban Associates) que el 58% de los mayores de 18 años de los
estratos tres, cuatro y cinco, solicitan productos o servicios a domicilio, o en su
defecto compran para llevar a casa.
Ventajas de las Entregas a Domicilio
1. Le ofrecen al consumidor cierta comodidad y facilidad a la hora de
comprar sin necesidad de salir de su lugar de residencia.
2. Construyen confianza en un mercado lleno de inseguridades.
3. Evita pérdidas de tiempo al consumidor: desplazamientos, atascos y
búsqueda de estacionamientos.
4. Le reduce gastos derivados de transporte al consumidor: bus, taxi,
gasolina, etc.
8 Consumo de Licor. Diario La Patria, Julio 25 de 2012. http://www.lapatria.com/por-la-u/universitarios-adelantados-en-el-consumo-de-licor-10926
31
5. Evita el estrés que ocasionan los trancones y el tráfico en las avenidas
principales.
6. Facilidad al momento de realizar los pedidos.
Aunque ni gremios como Fenalco ni las mismas universidades disponen de
estudios económicos sobre el crecimiento e impacto que tienen las ventas a
domicilio en la economía regional y en el país, sí advierten que esa estrategia se
abre paso cada vez con más fuerza en el mercado doméstico. Para muchos
empresarios y proveedores de productos y servicios en el Eje Cafetero el servicio
de entrega de sus productos a domicilio representa más del 30% del total de las
ventas, en los casos particulares de los restaurantes y las droguerías se denotan
una mayor actividad relacionada con esta modalidad comercial.
Actualmente existen tres modalidades para realizar los pedidos a domicilio:
Telefónico:
Sigue siendo el medio más utilizado por los consumidores.
Internet – “On Line”:
Muchos empresarios cuentan con su propio portal web e incorporan el
servicio de una manera visual más amena y entretenida para el
consumidor.
Aplicativos móviles:
Son la novedad para cualquier empresa que desee comercializar sus
productos o servicios por internet, y le dan al consumidor un valor de
portabilidad que no permite la aplicación web.
32
Por otro lado, el Eje Cafetero y en particular sus ciudades capitales ofrecen una
ventaja fundamental para el desarrollo del proceso de entregas a domicilio, ya que
la extensión geográfica urbana no es tan grande como en otras regiones del país y
permiten agilizar la movilización y entrega de pedidos, con bajos costos y en
cortos periodos de tiempo.
2.3. MARCO CONCEPTUAL
2.3.1. Tipologías de Desarrollo 9
Las tipologías de desarrollo representan las áreas de negocio identificadas dentro
del campo del análisis y construcción de software:
Desarrollo a la Medida: soluciones de la Ingeniería de Software que
responden o se adaptan a las necesidades de los clientes de integrar,
automatizar procesos y funciones con herramientas ofimáticas, internet
y aplicaciones web o de escritorio, alineadas con los objetivos de lograr
mayor eficiencia y productividad. Estos servicios incluyen la planeación,
definición, diseño, construcción y mantenimiento de las aplicaciones.
Desarrollo de Aplicaciones WEB: es un modelo de negocio de interés
progresivo de la industria del Software que trata del suministro de
herramientas que los usuarios pueden utilizar accediendo a un servidor
9 Estudio de la Caracterización de Productos y Servicios de la Industria de Software y Servicios Asociados. FEDESOFT Noviembre de 2012. http://www.fiti.gov.co/Images/Recursos/estudiocifrassectorsw2012.pdf
33
web a través de Internet o de una intranet, mediante un navegador. Las
empresas proveedoras de software (Proveedores de Aplicaciones de
Servicios – ASP por sus siglas en inglés) promueven su acceso vía
Internet, permitiendo al usuario pagar una cuota periódica para usar la
aplicación, sin necesidad de instalarla en el ordenador del usuario.
Computación en la Nube: es un modelo de distribución de software
donde el software y los datos que maneja se alojan en servidores de la
compañía de TI y se accede con un navegador web o un cliente fino
especializado, a través de internet. La empresa provee el servicio de
mantenimiento, operación diaria, y soporte del software usado por el
cliente. Regularmente el software puede ser consultado en cualquier
computador, esté presente en la empresa o no. Se deduce que la
información, el procesamiento, los insumos y los resultados de la lógica
de negocio del software están hospedados en la compañía.
Comercio Electrónico: es la compra y venta de bienes y servicios a
través de sistemas electrónicos, principalmente Internet. Con el
incremento de internautas crece el comercio electrónico por lo que la
industria del SW&TI tiene un importante segmento de mercado en la
difusión y aplicación de las tecnologías y en las funcionalidades de la
tienda electrónica pues las empresas tienen la necesidad de integrar los
sistemas corporativos, implantar plataformas de venta online
(marketplace) o adoptar soluciones SaaS o Cloud Solutions. También se
pueden acoger soluciones Open Source o tecnología de código abierto,
34
para crear una tienda en Internet de costo reducido porque su código es
público y de uso gratuito sin pago de licencias. Los programadores de
Open Source pueden desarrollar funcionalidades como catálogos de
productos, reglas de promoción, venta cruzada, sistema de pago, zona
de gestión del usuario, gestión simultánea de tiendas, sistema de
seguimiento de pedidos y análisis de ventas, entre otros.
Portales, redes sociales, WEB 2.0: Las redes sociales son una
herramienta básica de comunicación preferida por los internautas pues
estos tienen la capacidad de generar contenidos susceptibles de
compartirse dentro de los entornos de relaciones y de expandirse por la
Red, facilitan el trabajo colaborativo y entornos más abiertos. La
producción de contenido resulta de interés para las organizaciones que
buscan seguidores y conversaciones más activas con sus fans. La Web
2.0 tiene herramientas para el uso de la educación como los blogs, wiki,
servicios para compartir multimedia, podcats, videocasts, redes sociales,
herramientas de edición colectiva, sindicación y notificación de
contenidos.
2.3.2. Sistemas Operativos de Dispositivos Móviles
A continuación se dan a conocer los cinco sistemas operativos más comunes en
los dispositivos móviles o Smartphone:
Android
Es un sistema operativo inicialmente desarrollado por Android Inc., una
firma adquirida por Google en el 2005. Este sistema operativo está
35
basado en una versión modificada del Kernel de Linux. Al contrario que
otros sistemas operativos para dispositivos móviles como iOS o
Windows Phone, Android se desarrolla de forma abierta y se puede
acceder tanto al código fuente como al listado de incidencias donde
podemos ver problemas aún no resueltos y reportar problemas
nuevos.10
iOS
Es el sistema operativo utilizado por el iPhone. Está basado en una
variante del Mach kernel que se encuentra en Mac OS X. El iOS incluye
el componente de software “Core Animation” de Mac OS X v10.5 que,
junto con el PowerVR MBX el hardware de 3D, es responsable de las
animaciones usadas en el interfaz de usuario. iOS tiene 4 capas de
abstracción: la capa del núcleo del sistema operativo, la capa de
Servicios Principales, la capa de Medios de comunicación y la capa de
Cocoa Touch. El sistema operativo ocupa bastante menos de medio
gigabyte del total del dispositivo, de 8 GB o de 16 GB.12 Esto se realizó
para poder soportar futuras aplicaciones de Apple, así como
aplicaciones de terceros publicadas en la iTunes Store o la App Store. 11
10 Concepto Definición. Junio 1 de 2011. http://conceptodefinicion.de/android/ 11 Diccionario de Informática y Tecnología. Definición de Iphone OS. http://www.alegsa.com.ar/Dic/iphone%20os.php
36
Windows Phone
Anteriormente llamado Windows Mobile es un sistema operativo móvil
compacto desarrollado por Microsoft, y diseñado para su uso en
teléfonos inteligentes (Smartphones) y otros dispositivos móviles.
Windows Phone hace parte de los sistemas operativos con interfaz
natural de usuario. Se basa en el núcleo del sistema operativo Windows
CE y cuenta con un conjunto de aplicaciones básicas utilizando las API
de Microsoft Windows. Está diseñado para ser similar a las versiones de
escritorio de Windows estéticamente. Además, existe una gran oferta de
software de terceros disponible para Windows Mobile, la cual se puede
adquirir a través de Windows Marketplace for Mobile. 12
BlackBerry
Es un sistema operativo multitarea (OS) para el BlackBerry, lo que
permite un uso intensivo de los dispositivos de entrada disponibles en
los teléfonos, en particular la rueda de desplazamiento y el trackpad
(septiembre 2009-presente). El sistema operativo proporciona soporte
para Java MIDP 1.0 y WAP 1.2. Las versiones anteriores permitían la
sincronización inalámbrica con Microsoft Exchange Server para el
correo electrónico y calendario, al igual como con Lotus Domino e-mail.
El actual OS 5.0 proporciona un subconjunto de MIDP 2.0, y permite la
activación inalámbrica completa y la sincronización con Exchange de
12 Concepto y Definición. Windows Phone. Junio 1 de 2011. http://conceptodefinicion.de/windows-phone/
37
correo electrónico, calendario, tareas, notas y contactos, y añade un
soporte para Novell GroupWise y Lotus Notes. 13
Symbian OS
Symbian es un sistema operativo que fue producto de la alianza de
varias empresas de telefonía móvil, entre las que se encuentran Nokia,
Sony Ericsson, Psion, Samsung, Siemens, Arima, Benq, Fujitsu,
Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp, etc. Sus
orígenes provienen de su antepasado EPOC32, utilizado en PDA’s y
Handhelds de PSION. El objetivo de Symbian fue crear un sistema
operativo para terminales móviles que pudiera competir con el de Palm
o el Windows Mobile de Microsoft y ahora Android de Google Inc., iOS
de Apple Inc. y BlackBerry 6 RIM. 14
2.3.3. Plataformas de Desarrollo para móviles
En el campo del desarrollo de aplicaciones para dispositivos móviles es importante
tener en cuenta tres aspectos fundamentales que tienen que ver con las
tecnologías anteriormente mencionadas. Estos aspectos se basan
fundamentalmente en la orientación tecnológica de la plataforma de desarrollo, es
decir, de acuerdo a la finalidad de los recursos es posible crear aplicaciones
desde:
13 Diccionario de Informática y Tecnología. Definición de Blacberry OS. http://www.alegsa.com.ar/Dic/blackberry%20os.php 14 Qué es Symbian OS. Glosario de GsmSpain, Octubre 2 de 2012. http://www.gsmspain.com/glosario/?palabra=SYMBIAN
38
Aplicaciones web optimizadas para móviles
Aplicaciones móviles nativas
Aplicaciones hibridas
A continuación se establecerán algunas características y diferencias entre cada
una de estas variantes de desarrollo: 15
2.3.1.1. Desarrollo Móvil Web
El desarrollo móvil web es el desarrollo de aplicaciones web regulares, pero
optimizadas para ser visualizadas desde un dispositivo móvil o Tablet. Por
definición, estas aplicaciones serán accedidas utilizando el navegador que
viene por defecto dentro de los dispositivos: ya sea Safari (o algún otro) en
iPhone o iPad y digamos Dolphin (entre otros) para Android.
Características de aplicaciones móviles web:
Serán accedidas desde un navegador desde el teléfono.
Para todos los dispositivos se desplegará casi que de la misma
forma.
Es prácticamente lo mismo que desarrollar cualquier aplicación o sitio
web: se utiliza HTML, CSS y JavaScript.
Ventajas de aplicaciones móviles web:
15 Pixmat Studios. Julio 28 de 2012. García Demóstegenes. Aplicaciones Móviles: Natico, Web o Hibrido? http://www.pixmatstudios.com/blog/aplicaciones-moviles-nativo-web-hibrido/#.VAyr3Pl5OSo
39
Compatibilidad: Se reutiliza casi en un 100% el mismo código fuente
para todos los sistemas operativos orientados a móviles, así se tiene
que dar mantenimiento sólo a una versión.
Rango de usuarios: Se puede llegar a más tipos de dispositivos: no sólo
a Android y iOS, sino que puede llegarse hasta el menos común, como
Bada (Samsung).
Fácil uso: No hace falta descargar nada, sólo con acceder a una URL
los usuarios podrán utilizar tu aplicación.
Actualizado siempre: Las actualizaciones llegan de inmediato, no se
debe esperar una semana para que el AppStore apruebe la nueva
actualización.
Más sencillo y rápido de llevar a cabo en muchas veces: muchas veces,
es mucho más fácil desarrollar y diseñar dentro de un browser utilizando
HTML, CSS y JavaScript que hacer lo mismo en Java, Objetive-C o
JavaScript (Appcelerator, Sencha). Posicionar elementos, estilizarlos y
ciertas flexibilidades son posibles en minutos con tecnologías móviles.
Desventajas de aplicaciones móviles web:
No se pueden utilizar la cámara y otros componentes nativos (al menos
por ahora): Con aplicaciones web nativas, al ser accedidas desde el
navegador, no tienes disponibilidad de ciertos componentes y
funcionalidades nativas del teléfono, entre ellos la cámara.
40
Cross-Browser Support versión 2.0: Antes preocupaba Internet Explorer
6, ahora preocupan otros más, como el pésimo soporte a los estándares
en BlackBerry 4 y 5, lo que trae mayores costos de desarrollo en
muchos casos.
Posibilidad de usarla offline (en algunos): No se permite el “offline mode”
cuando se esté desarrollando con web. Esto no aplica para iOS y otros,
ya que Safari implementa Web Storage de HTML5 y Offline Application
Cache
2.3.1.2. Desarrollo Móvil Nativo
Por otra parte, el desarrollo móvil nativo es el desarrollo de aplicaciones
que serán instaladas en el sistema de archivos de cada dispositivo y serán
distribuidas por los mercados de aplicaciones móviles, como el AppStore
(iOS) o el Play Market (Android).
Características de aplicaciones móviles nativas:
Serán descargadas desde el mercado de aplicaciones para el
sistema operativo: Play Market o el AppStore.
Es una aplicación distinta por sistema operativo: una para Android y
otra para iOS (y en muchos casos una para iPhone y otra para iPad).
Se desarrollan con lenguajes como Java (Android) u Objetive-C
(iOS), pero hay alternativas como Appcelerator que permiten
desarrollarlas utilizando JavaScript puro, para ambas plataformas.
41
Ventajas de aplicaciones móviles nativas:
Posibilidad de utilizar funcionalidades nativas: es posible utilizar
funcionalidades nativas, como la cámara, el acelerómetro, etc.
Nuevas alternativas para desarrollar multiplataforma: Aun cuando lo
regular es desarrollar estas aplicaciones utilizando las herramientas
oficiales (como el Android SDK y Java en Android), han surgido
varias nuevas tecnologías para llegar a varios dispositivos con casi el
mismo código fuente, como Appcelerator.
Performance: Típicamente llegan a desempeñarse mejor que las
aplicaciones web.
Hay un “market” para estas aplicaciones: Las personas pueden
encontrar una aplicación utilizando el AppStore o el Play Market en
cualquiera de los casos, estas aplicaciones pueden ser puestas a la
venta.
Modo offline: La aplicación desarrollada puede utilizarse sin
necesidad de una conexión a internet.
Desventajas de aplicaciones móviles nativas:
Típicamente son más costosas de llevar a cabo: Por lo general, son
más costosas de llevar a cabo, ya que se necesita invertir mucho
más tiempo.
Mayores costos de mantenimiento: De igual forma, mantener varias
versiones de la aplicación es costoso.
42
Actualizaciones y aprobaciones: Poner una aplicación en el AppStore
es tedioso, puede llevar hasta más de una semana. Se debe esperar
otra semana para que Apple Inc. apruebe los cambios.
2.3.1.3. Aplicaciones Hibridas
Las aplicaciones hibridas con las que se conocen como la combinación de
las dos plataformas mencionadas anteriormente y su finalidad es utilizar el
desarrollo nativo cuando es mejor o necesario, pero utilizar tecnologías web
cuando sea más práctica.
Este es un enfoque muy interesante que se ha estado llevando a cabo en
varios nuevos proyectos. Para todas las vistas que representen gran
complejidad y necesiten mayor flexibilidad se utiliza directamente HTML
rodeada de una ventana nativa (para poner el botón de back, por ejemplo).
También lo es usada para aquellas ventanas cuyo contenido seguramente
cambiará muy a menudo, por ejemplo si es un contenido que cambia cada
mes, y es necesario evitar una nueva versión cada mes sólo para actualizar
dicho contenido.
Por el otro lado, todas las ventanas que necesiten funcionalidad nativa del
teléfono, como la cámara o detalles que se requieran guardar en la
aplicación, es indispensable el uso de componentes nativos.
43
2.3.4. MYSQL
El sistema de base de datos operacional MySQL es hoy en día uno de los más
importantes en lo que hace al diseño y programación de base de datos de tipo
relacional. Cuenta con millones de aplicaciones y aparece en el mundo
informático como una de las más utilizadas por usuarios del medio. El
programa MySQL se usa como servidor a través del cual pueden conectarse
múltiples usuarios y utilizarlo al mismo tiempo. Una de las características más
interesantes de MySQL es que permite recurrir a bases de datos multiusuario a
través de la web y en diferentes lenguajes de programación que se adaptan a
diferentes necesidades y requerimientos. Por otro lado, MySQL es conocida
por desarrollar alta velocidad en la búsqueda de datos e información, a
diferencia de sistemas anteriores. Las plataformas que utiliza son de variado
tipo y entre ellas podemos mencionar LAMP, MAMP, SAMP, BAMP y WAMP
(aplicables a Mac, Windows, Linux, BSD, Open Solaris, Perl y Phyton entre
otras).
2.3.5. PHP
La sigla PHP identifica a un lenguaje de programación que nació como
Personal Home Page (PHP) Tools. Fue desarrollado por el programador de
origen danés Rasmus Lerdorf en 1994 con el propósito de facilitar el diseño de
páginas web de carácter dinámico. El acrónimo recursivo, sin embargo, en la
actualidad está vinculado a PHP Hypertext Pre-Processor. El lenguaje es
desarrollado hoy en día por The PHP Group aunque carece de una normativa
44
formal. La Free Software Foundation, por lo tanto, considera la licencia PHP
como parte del software libre. El lenguaje PHP suele procesarse directamente
en el servidor aunque también puede usarse a través de software capaz de
ejecutar comandos y para el desarrollo de otra clase de programas.
2.3.6. jQuery MOBILE
jQuery Mobile es un framework de interfaz de usuario de desarrollo de web que
nos permite desarrollar aplicaciones web para celulares o móviles que trabajen
en cualquier Smartphone y Tablet. El jQuery Mobile framework se basa en el
core de jQuery y proporciona una serie de herramientas, incluyendo el manejo
del DOM de HTML y XML, el control de evento, la comunicación con el servidor
a través de Ajax, así como los efectos de animación y de imágenes para
páginas web.
45
3. RECOLECCION DE INFORMACION Y ANALISIS DE REQUERIMIENTOS
3.1. RECOLECCION DE INFORMACION POR MEDIO DE ENCUESTAS
Y ENTREVISTAS
La encuesta es un estudio observacional que se basa en una serie de preguntas
que se efectúan a muchas personas para reunir datos o para detectar la opinión
sobre un asunto determinado. En la encuesta planteada para el desarrollo del
prototipo, es indispensable conocer datos precisos relacionados con el consumidor
o cliente final de la aplicación, con el fin de establecer los gustos, las preferencias,
las reacciones, las motivaciones y las sugerencias sobre el funcionamiento de las
ventas de productos de estanquillo y las entregas a domicilio de los mismos.
La entrevista es una conversación entre el investigador y el sujeto de estudio, con
el fin de obtener respuestas verbales a los interrogantes planteados sobre el
desarrollo del prototipo planteado en este proyecto. En este caso el ente
investigador está conformado por los dos estudiantes realizadores del proyecto.
Para el sujeto de estudio se escogieron dos propietarios de los más destacados y
reconocidos estanquillos de la ciudad de Pereira, los cuales están ubicados
estratégicamente para el desarrollo la actividad comercial y de las entregas a
domicilios.
46
ILUSTRACIÓN 9 - DIAGRAMA DE ACTIVIDADES REQUERIMIENTOS
FUENTE: LOS AUTORES
3.1.1. Definir Objetivos
De acuerdo con las necesidades del proyecto y teniendo en cuenta los aspectos
funcionales y los procesos de la venta a domicilio, se establecen los siguientes
objetivos:
Establecer las principales fuentes de información.
47
Establecer y conocer los procesos que intervienen en la entrega de
domicilios.
Identificar los problemas recurrentes dentro del proceso de entrega a
domicilio.
Establecer los posibles alcances del negocio de la venta de productos de
estanquillo.
Identificar los requerimientos del usuario y/o consumidor del estanquillo.
Conocer sugerencias y recomendaciones por parte del usuario final.
Conocer sugerencias o aportes por parte de los dueños de estanquillos.
3.1.2. Definir tamaño de la Encuesta
Según un estudio publicado el 12 de diciembre de 2012 por el diario El
Colombiano, el 69% de los colombianos ha ingerido licor al menos una vez en su
vida. La mayor incidencia de compra y consumo de bebidas alcohólicas se
presenta en el grupo de personas entre los 18 y 24 años, con 80,5%, seguido de
25 a 34 años, con 74,2% 16
Por otra parte, La Federación Nacional de Comerciantes Risaralda (FENALCO),
publicó un informe sobre la reducción del consumo de licor en los bares y
discotecas hasta en un 40%, pero dio a conocer el aumento del consumo en
algunos eventos de tipo doméstico. El informe da como causa principal de este
16 Diario El Colombiano. (Diciembre 5 de 2012). Investigación de la Facultad Latinoamericana de Ciencias Sociales
(Flacso) http://www.elcolombiano.com/BancoConocimiento/6/69_de_cada_100_colombianos_consumen_licor/69_de_cada_100_colombianos_consumen_licor.asp
48
suceso a las nuevas normas que penalizan a las personas que conduzcan bajo los
efectos del alcohol.17
Para el cálculo de la muestra se requiere el uso de la siguiente fórmula:
Fórmula Muestral
El tamaño de la población está indicado por la cantidad de habitantes de la ciudad
de Pereira entre los 18 y los 50 años de edad. 18. Se encuestaron 110 personas
entre los estratos 3, 4 y 5, en su gran mayoría estudiantes universitarios.
3.1.3. Definir personas a Entrevistar
Antes de definir las personas a entrevistar, fue necesario establecer por medio de
la observación y la consulta directa cuales son los puntos de la ciudad donde se
encuentran ubicados los estanquillos más reconocidos. Se estableció que la Zona
Rosa de Pereira, en el sector de la Circunvalar es el sitio donde se albergan gran
cantidad de bares, discotecas y estanquillos, y por ende lo más adecuado era
tratar de ubicar a los propietarios de uno o dos estanquillos para entrevistarlos.
17 Diario del Otún. (Marzo 2 de 2014). Caen las ventas en consumo de alcohol.
http://www.eldiario.com.co/seccion/ECON%C3%93MICA/caen-las-ventas-en-consumo-de-licor1403.html 18 Censo Pereira Digital 2013 - http://www.pereiradigital.gov.co/web/es/demografia-1
49
Las personas que se entrevistaron en la fase de recolección de la información
fueron las siguientes:
Cesar Ramírez
Propietario del Estanquillo La Cosa Nostra
Margarita Obando
Propietaria de Licores Marge
3.1.4. Entrevistas a propietarios de Estanquillos
Los objetivos de esta entrevista es conocer a fondo el funcionamiento, los
procesos y las personas que intervienen dentro de la venta a domicilio de los
productos de estanquillo. Además, por medio de las preguntas y respuestas se
logran establecer muchos de los requerimientos que son de funcionalidad del
administrador del prototipo.
3.1.5. Definir datos a ser recolectados
En esta fase se definen los datos necesarios para implementar el aplicativo, lo
anterior basado en la información obtenida en las encuestas y en las entrevistas.
50
3.1.6. Identificar los Requerimientos
Para la identificación de los Requerimientos es indispensable realizar una listado
de las necesidades usando frases simples con un lenguaje práctico y entendible
para el usuario. Estas necesidades son interpretadas como las actividades
esenciales para el funcionamiento de cualquier empresa, en este caso, de los
estanquillos. Particularmente el tema de investigación y profundización es el
esquema empleado para la venta a domicilio de productos de estanquillo, que en
términos normales es una venta a distancia, que incorpora otras variables
esenciales como distancia, tiempo y recorridos.
3.1.7. Clasificar y restablecer los requerimientos
La clasificación de los requerimientos es una fase de vital importancia ya que
identifica las necesidades reales del sistema real, las cuales deben estar en una
forma que pueda ser comprendida y usada por los desarrolladores del aplicativo.
3.1.8. Analizar los Requerimientos
En esta fase se asegura que los requerimientos estén bien definidos y que
cumplan con los criterios de un buen requerimiento.
51
3.1.9. Administrar los Requerimientos
Los requerimientos se deben dejar adicionar, modificar o borrar en el caso que se
necesite y en la fase que se requiera.
3.1.10. Probar y verificar los Requerimientos
Es el proceso de chequear los requerimientos, diseño, código, planes de prueba y
productos del sistema para asegurar que cumplan con los requerimientos.
3.1.11. Validar los Requerimientos
Es el proceso de confirmar que los requerimientos reales se cumplen en el
sistema que se está entregando, esto se hace debido a que no se cuenta con
tiempo para una prueba exhaustiva.
3.2. CICLO DE VIDA DEL PROTOTIPO
El ciclo de vida del Prototipo puede describirse como el periodo entre el cual se
toma la decisión de realizar el desarrollo del software y la entrega final al cliente, el
ciclo generalmente incluye las fases de requisitos, diseño, implementación,
prueba, instalación y aceptación.
52
3.3. HISTORIAS DE USUARIOS
Las historias de usuario representan un requerimiento de software escrito en una o
dos frases utilizando el lenguaje común del usuario.
3.4. ANALISIS DE REQUERMIENTOS
En esta fase se determinan los requerimientos del sistema para el diseño del
primer prototipo funcional del aplicativo. Dichos requerimientos son especificados
en la ingeniería de software dentro del presente documento.
3.4.1. Requerimientos Funcionales
3.4.1.1. Registro y Gestión de Clientes
Es necesario que el aplicativo cuente con un módulo para registrar y guardar los
datos principales del cliente, con el fin de almacenar la información y crear un
vínculo comercial entre el proveedor del servicio y cada uno de sus clientes.
Además, este módulo brinda la posibilidad al cliente de modificar algunos de sus
datos en caso que lo necesite. Esta operación se debe realizar inmediatamente se
descargue el aplicativo en el dispositivo móvil del cliente.
53
3.4.1.2. Logueo Clientes
El aplicativo debe contar con un módulo o interfaz que le brinde la posibilidad al
cliente para que ingrese por medio de su correo electrónico y una clave. El
sistema debe validar esta información de acuerdo a los datos registrados
previamente según el requerimiento de registro de clientes. Dentro de este módulo
también se genera la opción de poder recuperar la contraseña en caso de que el
cliente la haya olvidado. Esta operación se debe realizar en caso que el cliente
cierre la sesión o desee ingresar al aplicativo desde un dispositivo distinto al suyo.
3.4.1.3. Búsqueda de Productos
El aplicativo debe contar con un módulo que le dé la posibilidad al cliente de
buscar un producto ingresando una palabra o una frase que lo identifiquen. El
sistema deberá devolver en la interfaz todas las posibles coincidencias, con el fin
de que el cliente pueda escoger el que estaba buscando. El modulo generará una
búsqueda en forma jerárquica, desde el nombre del producto, pasando por la
categoría, fabricante, descripción, hasta llegar a la característica menos visible del
objeto como tal. Este requerimiento debe estar representado por medio de un
ícono visible en la parte superior de la interfaz principal.
3.4.1.4. Mostrar Categorías
Este módulo debe permitirle al cliente visualizar los productos de forma organizada
según la categoría que escoja dentro del grupo de opciones. Las categorías
54
agrupan a los productos según una serie de características en común, en este
caso, el aplicativo hace una organización de los productos para poder identificar
los diferentes tipos de bebidas. Este requerimiento debe estar representado por
medio de un ícono visible en la parte superior de la interfaz principal, y se deben
aparecer en forma de ventana emergente cada vez que el cliente la escoja.
3.4.1.5. Opciones de Compra
Por medio de este módulo se darán a conocer las distintas opciones que ofrece el
aplicativo para que el cliente mejore su compra. Tales opciones forman parte de
una gama de beneficios comerciales que el proveedor del servicio puede
considerar según la fecha, la participación de nuevos productos o algún evento en
particular. El aplicativo le dará la opción al cliente para que escoja alguno de estos
beneficios y mostrar en la interfaz principal los resultados de la opción
referenciada. Este requerimiento debe estar representado por medio de un ícono
visible en la parte superior de la interfaz principal, deberá mostrar dichas opciones
en forma de menús desplegables.
3.4.1.6. Canasto de Compra
El Canasto de Compra es un requerimiento del sistema que debe permitirle al
cliente almacenar de manera temporal los productos que vaya escogiendo. Este
módulo debe almacenar la información de los productos que se van pidiendo, las
cantidades, los valores respectivos y el total de la compra, y, adicional a esto,
55
debe permitirle al cliente la opción de manipular las cantidades o las referencias,
en caso que decida modificar el contenido del canasto. Este requerimiento debe
estar representado por medio de una imagen que identifique un canasto,
posicionado en la parte central de la interfaz principal, con el fin de que sea lo
suficientemente visible y de fácil acceso para el cliente. Su presentación será a
manera de ventana emergente.
3.4.1.7. Estanterías de Productos
El aplicativo requiere de un módulo que muestre de manera organizada los
productos que se encuentran para la venta. Este requerimiento representa la parte
más visible de la interfaz principal, ya que se desea que sea mostrado en forma de
estantería según la categoría del producto. Dentro de este módulo el cliente tendrá
la opción de escoger y visualizar toda la información del producto, la cual se
encuentra almacenada previamente por el proveedor del servicio. Igualmente, el
sistema le permite al cliente enviar el producto al canasto de compra (véase
requerimiento Canasto de Compra), y definir la cantidad de unidades que desea
comprar.
Los productos serán mostrados en forma de imágenes reales, es decir, fotografías
idénticas al producto físico con el fin de dar una interfaz amigable y conocida al
cliente. La interfaz debe mostrar cuatro productos en pantalla, y el cliente podrá
56
visualizar la estantería completa en forma de slide19, deslizando de derecha a
izquierda hasta terminar todo el portafolio.
3.4.1.8. Realizar y Confirmar Pedido
Dentro de la aplicación es necesario que exista un módulo donde el cliente tenga
la opción de confirmar el pedido. Esta opción debe estar identificada por un ícono
visible en la parte central de la interfaz principal, para que el cliente pueda acceder
fácilmente a ella. Dentro de este requerimiento es fundamental que el sistema
valide si el valor del pedido es superior al rango inicialmente establecido por el
proveedor, en caso que no sea así, se le debe indicar al cliente que el pedido debe
superar dicho rango e invalidar la compra. Por otro lado, este módulo debe
mostrarle al cliente el valor total del pedido, debe darle la opción al cliente de
escoger una de las direcciones previamente guardadas o ingresar una nueva
dirección, ya sea directamente por teclado o con la ayuda de Google Maps20.
Por último el cliente deberá confirmar la compra por medio de un botón que debe
aparecer en la parte inferior de este módulo. Seguidamente, el aplicativo debe
mostrarle al cliente la hora en que se realizó el pedido, la dirección exacta de
entrega y la hora aproximada de entrega de los productos. Todo este módulo
tendrá una visualización a manera de ventana emergente, es decir, su aparición
19 Se llaman así las presentaciones de imágenes en las que éstas van desfilando, de forma más o menos divertida y
decorada. 20 Google Maps es un servidor de aplicaciones de mapas en la web que pertenece a Google. Ofrece imágenes de mapas
desplazables, así como fotografías por satélite del mundo e incluso la ruta entre diferentes ubicaciones o imágenes a pie de calle Google Street View.
57
depende de que el cliente haga clic sobre la imagen, y se abrirá una ventana que
estará vinculada permanentemente a la interfaz principal.
3.4.1.9. Historial de Pedidos
La aplicación debe tener un módulo donde queden almacenados los datos de los
pedidos realizados por el cliente. Esta opción le debe permitir al cliente visualizar
dichos pedidos para poder tomarlos como sugerido para una nueva compra.
Adicional a esto, el historial de pedidos permite visualizar las características
propias de cada compra, es decir, datos como la fecha, la hora de entrega, el
valor, etc. Este requerimiento debe presentarse en forma de ícono en la parte
inferior de la interfaz principal y en forma de ventana emergente.
3.4.1.10. Contacto
El aplicativo debe tener un módulo que muestre toda la información relacionada
con el proveedor del servicio, la cual debe relacionar los datos principales para
que el cliente pueda contactar por medio telefónico o por correo electrónico.
Además, el modulo requiere que se dé la opción para que el cliente pueda enviar
quejas, reclamos y/o sugerencias para el mejoramiento del servicio. Este
requerimiento debe visualizarse en la parte inferior de la interfaz principal, en
forma de ventana emergente ligada directamente con la misma.
58
3.4.2. Requerimientos No Funcionales
3.4.2.1. Confiabilidad
Los errores deben ser controlados
Cada error que pueda surgir debe ser controlado, es decir, en caso de surgir un
error se deben mostrar pantallas personalizadas al usuario, pero no permitir que el
sistema muestre secciones del código o descripciones detalladas de error que
puedan poner en riesgo la seguridad e integridad del sistema.
3.4.2.2. Plataforma del Sistema
Lenguaje de Programación
El sistema debe ser desarrollado utilizando Jquery Mobile, HTML5 y CSS, en este
caso se han utilizado frameworks que soportan los contenidos de dichos
lenguajes.
Servidor Web
Existen dos posibilidades abiertas y a disposición del proveedor del servicio. Una
de ellas consiste en alojar la información bajo el servidor del proveedor del servicio
de estanquillo on-line, con el equipo y la redundancia necesaria para tal fin. El
otro, consiste en alojar la información en la nube, es decir, utilizando los nuevos
conceptos de almacenamiento virtual.
59
3.4.2.3. Usabilidad
Sistema Operativo Móvil
El aplicativo podrá ser visto y utilizado en todos los sistemas operativos existentes
para dispositivos móviles: Iphone, Android, Windows Phone, BlackBerry, entre
otros.
3.4.2.4. Seguridad
Autenticación
La aplicación se descarga directamente en cada dispositivo móvil, el cliente activa
el sistema en el momento de abrir la aplicación e inmediatamente debe registrar
sus datos para ingresar. Dentro de los datos del usuario se almacenarán el correo
como dato principal y una clave debidamente protegida.
3.4.2.5. Rendimiento
Se espera que el tiempo de respuesta del aplicativo ante una petición del usuario
sea entre 1 y 2 segundos. Cada una de las operaciones inmersas en la aplicación
debe registrar un tiempo de respuesta dentro de este rango de tiempo.
3.4.2.6. Escalabilidad
El sistema será diseñado pensando en la adhesión de nuevos parámetros
comerciales que el proveedor de servicios quiera brindar. La estructura del código
fuente y del modelo de datos permitirá que se puedan agregar otros tipos de
servicios relacionados con el consumo de bebidas embriagantes.
60
3.4.2.7. Buenas Prácticas de Desarrollo
Seguridad: La finalidad de un buen desarrollo es brindar herramientas con las
condiciones óptimas y adecuadas. Todos los datos de ingreso serán verificados y
validados. Para el caso de los campos de texto, el aplicativo empleará un sistema
de validación que le permite a cada campo el ingreso de los datos únicamente
comprometidos, es decir, si el campo es numérico sólo se permitirá de datos
numéricos.
Optimización: la optimización consiste en que el programa consuma la menor
cantidad posible de recursos (memoria y disco). Es importante ahorrar pasos de
variables innecesarios, líneas de código, medir el rendimiento de funciones
similares y usar las que menos recursos utilicen.
3.4.2.8. Mantenibilidad
Documentación
Se requiere que el sistema tenga sus respectivos manuales que sirvan de
referencia en cualquier momento a los Usuarios/Clientes. Este manual debe
detallar las funciones más importantes y las funcionalidades que provee el
sistema.
61
3.4.2.9. Portabilidad
El sistema debe funcionar bajo cualquier sistema operativo o cualquier plataforma.
Esta condición se cumple además en la medida de cumplir el requisito de usar
cualquier dispositivo móvil existente y utilizable en la región.
62
4. ESPECIFICACION DE REQUERIMIENTOS
4.1. REQUERMIENTOS FUNCIONALES
TABLA 1 - REQUERIMIENTOS FUNCIONALES
Id Requerimientos Funcionales Versión Prioridad
RF1Se requiere de una aplicación móvil que permita realizar pedidos de
licores y producto relacionados, para su posterior entrega a domicilio.1.0 Abril 2013 Alta
RF2El aplicativo está dirigido al consumidor final o cliente del estanquillo
virtual, es decir que el actor principal del sistema es el CLIENTE.1.0 Abril 2013 Alta
RF3Un requisito principal del aplicativo es crear una cuenta para cada uno de
los clientes.1.0 Abril 2013 Alta
RF4Los datos serán ingresados por cada cliente, y será este el encargadode
modificarlos en el momento en que lo desee.1.0 Abril 2013 Alta
RF5El ingreso al sistema se realizará una vez descargada la aplicación y
registrado los datos.1.0 Abril 2013 Media
RF6El sistema debe permitir que el cliente debe loguearse siempre y cuando
cierre la sesión inicialmente abierta.1.0 Abril 2013 Media
RF7Las sesion debe mantiener activas siempre y cuando la aplicación no sea
borrada o eliminada.1.0 Abril 2013 Alta
RF8El aplicativo debe contar con una Interfaz Principal donde se muestren los
modulos del sistema1.0 Abril 2013 Alta
RF9 El aplicativo permite visualizar los productos en forma de slide 1.0 Abril 2013 Alta
RF10Los productos deben estar representados por imágenes reales e
identicas1.0 Abril 2013 Alta
RF11Cada producto debe tener asociado sus características básicas, como
precio y nombre.1.0 Abril 2013 Alta
RF12El sistema debe permitir que el cliente selección un producto para ver sus
especificaciones, como presentación, fabricación, contenido, etc.1.0 Abril 2013 Alta
RF13El sistema depe mostrar los productos en forma organizada, según las
indicaciones del prestador del servicio.1.0 Abril 2013 Alta
RF14El aplicativo debe dar la opción de poder buscar un producto por medio de
un cuadro de texto.1.0 Abril 2013 Alta
RF15El sistema debe ejecutar la búsqueda y mostrar los resultados en la
interfaz principal.1.0 Abril 2013 Alta
RF16El sistema debe mostrar un mensaje informando que no se encontraron
resultados, en caso de no existir coincidencias1.0 Abril 2013 Media
RF17El aplicativo debe mostrar todos los productos en la Interfaz Principal
caso que el cliente descarte la búsqueda1.0 Abril 2013 Alta
RF18El aplicativo debe dar una opción donde se muestren el listado de las
categorías de los productos.1.0 Abril 2013 Alta
Fuente: Los Autores
63
TABLA 1 - CONTINUACIÓN REQUERIMIENTOS FUNCIONALES
Id Requerimientos Funcionales Versión Prioridad
RF19El sistema debe permitir que el cliente escoja una de esas categorías y
muestre los resultados en la interfaz principal.1.0 Abril 2013 Alta
RF20El aplicativo debe organizar los resultados según la categoría
seleccionada por el cliente.1.0 Abril 2013 Media
RF21El sistema debe dar una opción para que el cliente pueda visualizar las
ofertas, promociones y descuentos.1.0 Abril 2013 Alta
RF22El cliente puede escoger alguna de estas opciones y el aplicativo debe
mostrar los resultados en la interfaz principal.1.0 Abril 2013 Media
RF23El sistema debe mostrar las ofertas, descuentos y promociones creados
previamente por el Administrador1.0 Abril 2013 Alta
RF24El aplicativo debe mostrar un "Canasto de Compra" para que el cliente
vaya almacenando los productos preseleccionados1.0 Abril 2013 Alta
RF25El canasto debe almacenar los productos para que el sistema guarde
temporalmente los datos de cada uno de ellos.1.0 Abril 2013 Alta
RF26El sistema debe permitir que el cliente visualice los productos del
canasto en forma de lista, con el nombre, cantidad y valor unitario.1.0 Abril 2013 Alta
RF27El canasto debe mostrar también el total de la compra y la cantidad de
productos.1.0 Abril 2013 Alta
RF28El canasto debe permitir que el cliente modifique las cantidades de los
productos, para disminuir o aumenta el valor del pedido.1.0 Abril 2013 Alta
RF29El canasto le debe permitir al cliente borrar alguno de los productos, o
vaciar todos los productos del canasto.1.0 Abril 2013 Alta
RF30El aplicatico contendrá una función o módulo que le permita al cliente
visualizar y confirmar el pedido.1.0 Abril 2013 Alta
RF31El aplicativo debe validar si el valor de los productos pedidos es superior
al valor mínimo establecido por el Administrador del sistema.1.0 Abril 2013 Alta
RF32Si el valor no supera el mínimo establecido, el sistema no permitirá
realizar la compra.1.0 Abril 2013 Media
RF33El modulo de confirmación debe mostrar el total de la compra, el nombre
del cliente y la lista de direcciones asociadas al cliente.1.0 Abril 2013 Alta
RF34
Este módulo de Pedido debe dar la opcion para que el cliente seleccione
una de las direcciones almacenadas o para que ingrese una nueva por
medio de un cuadro de texto o por medio de Google Maps.
1.0 Abril 2013 Alta
Fuente: Los Autores
64
TABLA 1 - CONTINUACIÓN REQUERIMIENTOS FUNCIONALES
Id Requerimientos Funcionales Versión Prioridad
RF35El Módulo de pedido de mostrar al cliente la opción de confirmar el pedido
o de descartarlo y volver a la interfaz principal a continuar con el pedido.1.0 Abril 2013 Alta
RF36Después de confirmado el pedido, el sistema debe mostrar al cliente la
hora de Pedido y la fecha aproximada de entrega de los productos.1.0 Abril 2013 Media
RF37
El aplicativo debe reinicializar el canasto después de que el cliente
confirme el pedido, y volver a mostrar todos los productos en la interfaz
principal.
1.0 Abril 2013 Alta
RF38El sistema debe contener un modulo o funcionalidad que le permita al
cliente ver el historial de pedidos1.0 Abril 2013 Media
RF39El historial de Pedidos debe mostrar todos los pedidos realizados por el
cliente de forma cronológica, iniciando por el mas reciente.1.0 Abril 2013 Media
RF40
Dentro de este módulo, los pedidos deben ser mostrados en forma de
lista para que el cliente pueda seleccionar alguno de ellos y bajarlo al
canasto de compra.
1.0 Abril 2013 Media
RF41
Después de bajado el pedido del modulo del historial al canasto, el
sistema debe permitir al cliente hacer las modificaciones que considere
necesarias, para su confirmación posterior.
1.0 Abril 2013 Media
RF42El aplicativo debe contar con un módulo o interfaz para que el cliente
modifique los datos registrados en el sistema.1.0 Abril 2013 Alta
RF43El cliente podrá modificar algunos datos como la clave de acceso, añadir
direcciones, cambiar el número del teléfono fijo o móvil. 1.0 Abril 2013 Alta
RF44El aplicativo debe dar la opción al cliente de contactar al proveedor de los
servicios por medio de un módulo de fácil acceso1.0 Abril 2013 Media
RF45
Este módulo de contacto debe permitir al cliente enviar quejas, reclamos
o solicitudes de forma escrita. El Administrador recibirá los mensajes en
el correo electrónico.
1.0 Abril 2013 Media
RF46
Lel sistema debe tener una opción para que el cliente pueda cerrar la
sesión en el momento que lo deses. Esta opción debe ser visibel en al
Interfaz Principal.
1.0 Abril 2013 Media
Fuente: Los Autores
65
4.2. REQUERIMIENTOS NO FUNCIONALES
TABLA 2 - REQUERIMIENTOS NO FUNCIONALES
Portabilidad
Dispositivos Móviles
Seguridad
Integridad
Confiabilidad
Concurrencia
Rendimiento
Tiempo de respuesta de 1 a 2 segundos ante petición de cliente
Escalabilidad
El aplicativo debe ser diseñado para soportar futuras adhesiones y/o modificaciones
Disponibilidad
Las 24 horas del día, los 7 días de la semana. Las Excepciones las da el proveedor
del serivicio en caso de fechas o días especiales.
Concurrencia
Disponibilidad de mas de 100 usuarios (Clientes) al mismo tiempo.
Se debe proporicionar un manual de Usuario, el cual puede ser:
Instrucciones paso a paso, con imágenes.
Manual documentado
Capacitación al proveedor del servicio de Estanquillo On-Line
Interfaz Gráfica
Colores y diseños agradables y consecuentes con el servicio prestado
El icono del aplicativo será la imagen del proveedor del serivicio
RNF2
RNF1
N. Requerimientos No Funcionales
RNF8
RNF7
RNF6
RNF5
RNF4
RNF3
Fuente: Los Autores
66
4.3. IDENTIFICACION DE LOS CASOS DE USO
TABLA 3 - IDENTIFICACIÓN DE LOS CASOS DE USO
1 Creación de Cliente Cliente RF3 - RF4 - RF5 - RF6
2 Logueo de Cliente Cliente RF6 - RF7
3 Ingreso Interfaz Principal Cliente RF8 - RF9 - RF10 - RF11 - RF12 - RF13
4 Buscar Productos Cliente RF14 - RF15 - RF16 - RF17
5 Mostrar Productos por Categoría Cliente RF18 - RF19 - RF20
6 Mostrar Productos por Opciones de Compra Cliente RF21 - RF22 - RF23
7 Elegir Producto al Canasto Cliente RF24 - RF25 - RF26 - RF27
8 Manipular Canasto de Compra Cliente RF28 - RF29
9 Realizar y Confirmar Pedido Cliente - Administrador RF30 - RF31 - RF32 - RF33
10 Recibir Petición Administrador RF30 - RF34 - RF35 - RF36
11 Administrar Pedidos Administrador RF30 - RF34 - RF35 - RF36
12 Administrar Productos Administrador RF8 - RF9 - RF10 - RF11 - RF12 - RF13
N. Caso de UsoActores que
IntervienenReferencias Cruzadas
Fuente: Los Autores
67
5. IDENTIFICACION, ESPECIFICACION Y MODELADO DE CASOS DE USO
5.1. IDENTIFICACION DE CASOS DE USO
5.1.1. Generalización del Actor
5.1.1.1. Diagrama de Caso de Uso
ILUSTRACIÓN 10 - GENERALIZACIÓN DEL ACTOR
Fuente: Los Autores
Este caso de uso se ha realizado para tener una mejor interpretación de la
generalización del actor con referencia al sistema, el actor se identifica
68
dependiendo del ambiente en el que se esté desarrollando, puede ser:
Administrador o Cliente.
En adelante en algunos apartados del documento se utilizará para fines prácticos
Caso de Uso como “CU‟.
5.2. CREACION DE CLIENTE
5.2.1. Diagrama de Caso de Uso
ILUSTRACIÓN 11 - CASO DE USO CREACIÓN CLIENTE
Fuente: Los Autores
69
5.2.2. Especificación del Caso de Uso
Sección Principal:
TABLA 4 - SECCIÓN PRINCIPAL CU CREAR USUARIO
Caso de Uso Crear Usuario
Actores Cliente
PropósitoPermitir al cliente ingresar y registrar los datos necesarios para
la utilización del aplicativo
Resumen
El cliente descarga la aplicación en su dispositivo móvil la
ejecuta. La aplicación solicita el registro de los datos para
poder ingresar al sistema.
Tipo Esencial
Referencias Cruzadas RF3 - RF4 - RF5 - RF6
Curso Normal de los Eventos:
TABLA 5 - CURSO NORMAL EVENTOS CU CREAR USUARIO
1Este caso comienza cuando el cliente descarga la
aplicación en su dsipositivo móvil y lo ejecuta2
Abre una ventana con el logo de la aplicación y solicita
al cliente que se registre
3
Esoge una de las opciones según sea el caso:
A. Si es cliente nuevo, ingresa a la sección de
Registro.
B. Si ya está creado, ingresa a la sección de
Logueo.
4 Ingresa a la Aplicación 5 Muestr la Interfaz Principal
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos
TABLA 6 - CURSOS ALTERNOS CU CREAR USUARIO
Acción Descripción
3 El cliente decide no ingresar a la aplicación y se sale del sistema.
Fuente: Los Autores
70
Sección Nuevo Usuario
TABLA 7 - SECCIÓN NUEVO USUARIO
1 El cliente selecciona la opcion de Registro 2
Abre una ventana con el formualrio de ingreso que
contiene los campos con los datos necesarios para el
registro. En primer lugar se muestra el tipo de cliente a
ingresar:
- Cliente Personal
- Cliente Institucional
3 Selecciona el tipo de cliente a registrar 4.1
Despliega los campos según sea la opción establecida
por el cliente:
Cliente Personal:
- Cédula
- Nombres
- Apellidos
- Correo Electrónico
- Clave
- Confirmación Clave
- Fecha Nacimiento
- Dirección (es)
4.2
Cliente Institucional:
- Cédula o NIt
- Nombres
- Apellidos
- Razón Social
- Correo Electrónico
- Clave
- Confirmación Clave
- Fecha Nacimiento
- Dirección (es)
5Llena los campos y seguidamente da la opción de
"Registrar"6 Envía los datos para ser almacenados
7 Cierra el formulario y abre la interfaz principal.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos:
TABLA 8 - CURSOS ALTERNOS NUEVO USUARIO
Acción Descripción
3El cliente no ingresa los datos completos. El sistema muestra la información
solicitando llenar todos los campos y regresa el paso N. 2
3 El cliente decide no ingresar a la aplicación y se sale del sistema.
Fuente: Los Autores
71
5.2.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 12 - DIAGRAMA DE SECUENCIA CREACIÓN CLIENTE
Fuente: Los Autores
72
5.3. LOGUEO DE CLIENTE
5.3.1. Diagrama de Caso de Uso
ILUSTRACIÓN 13 - CASO DE USO LOGUEO CLIENTE
Fuente: Los Autores
73
5.3.2. Especificación del Caso de Uso
Sección Principal
TABLA 9 - SECCIÓN PRINCIPAL CU LOGUEO CLIENTE
Caso de Uso Logueo Usuario
Actores Cliente
Propósito Permite al cliente ingresar al aplicativo.
ResumenEl cliente ingresa su correo electrónico y una clave para
validarlos en el sistema e ingresar al aplcativo
Tipo Esencial
Referencias Cruzadas RF6 - RF7
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 10 - CURSO NORMAL EVENTOS CU LOGUEO CLIENTE
1 El cliente selecciona la aplicación en el dispositivo 2 Se abre interfaz de ingreso, con el Logo del servicio
3
Muestra un formulario con dos campos y un botón.
- Correo Electrónico
- Clave de Ingreso
Muestra una opción de Recuperar Clave
4 Ingresa los datos y da clik en "Ingresar" 5 Muestra la Interfaz Principal.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos
TABLA 11 - CURSOS ALTERNOS CU LOGUEO CLIENTE
Acción Descripción
4 El cliente decide no ingresar a la aplicación y se sale del sistema.
4El cliente no ingresa los datos completos. El sistema muestra la información
solicitando llenar todos los campos y regresa el paso N. 3
4 El cliente olvida la contraseña y da click en la Opción: "Recuperar Contraseña "
Fuente: Los Autores
74
Sección Recuperar Clave
TABLA 12 - SECCIÓN RECUPERAR CLAVE CU LOGUEO CLIENTE
1 El cliente da la opción de "Recuperar Clave " 2
Muestra un pequeño formulario con un campo y un
botón. El campo refiere al correo electrónico del
cliente.
3 Ingresa el correo electrónico y da click en "Enviar" 4
Valida el correo y envia un mensaje al cliente con una
clave temporal que el cliente debe modificar
posteriormente.
5Abre interfaz de ingreso, con el Logo del servicio. Se
inicia el CU Logueo Cliente
Acción de los Actores Respuesta del Sistema
FUENTE: LOS AUTORES
5.3.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 14 - DIAGRAMA DE SECUENCIA LOGUEO DE CLIENTE
Fuente: Los Autores
75
5.4. INGRESO A LA INTERFAZ PRINCIPAL
5.4.1. Diagrama de Caso de Uso
ILUSTRACIÓN 15 – CASO DE USO INTERFAZ PPAL.
Fuente: Los Autores
76
5.4.2. Especificación del Caso de Uso
Sección Principal
TABLA 13 - SECCIÓN PRINCIPAL CU INTERFAZ PPAL
Caso de Uso Ingreso Interfaz Principal
Actores Cliente
Propósito Permite al cliente ingresar a la pantalla principal del aplicativo.
Resumen
El cliente visualiza todos los componentes del aplicativo en la
interfaz principal, permitiéndole acceder a los servicios
principales para concretar la compra
Tipo Esencial
Referencias Cruzadas RF8 - RF9 - RF10 - RF11 - RF12 - RF13
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 14 - CURSO NORMAL EVENTOS CU INTERFAZ PPAL
1 Se loguea o Ingresa al aplicativo 2 Muestra todos los componentes del sistema
3Muestra los productos organizados según decisión del
proveedor del serivicio
4
Componentes Básicos del Sistema:
- Buscar Productos
- Categorías
- Opciones de Compra
- Canasto de Compra
- Confirmar Pedido
- Historial de Pedidos
- Datos del Cliente
- Contacto del Proveedor del servicio
5 Inicia Pedido.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
77
Cursos Alternos
TABLA 15 - CURSOS ALTERNOS CU INTERFAZ PPAL.
Acción Descripción
5 El cliente decide cerrar la aplicación y se sale del sistema.
FUENTE: LOS AUTORES
5.4.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 16 - DIAGRAMA DE SECUENCIA INTERFAZ PRINCIPAL
FUENTE: LOS AUTORES
78
5.5. BUSCAR PRODUCTOS
5.5.1. Diagrama de Caso de Uso
ILUSTRACIÓN 17 - CASO DE USO BUSCAR PRODUCTOS
Fuente: Los Autores
79
5.5.2. Especificación del Caso de Uso
Sección Principal
TABLA 16 - SECCIÓN PRINCIPAL CU BUSCAR PRODUCTOS
Caso de Uso Buscar Productos
Actores Cliente
Propósito Permite al cliente buscar productos para su compra
ResumenEl cliente ingresa el texto para que el sistema busque y lñe
muestre todas las coincidencias posibles
Tipo Esencial
Referencias Cruzadas RF14 - RF15 - RF16 - RF17
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 17 - CURSO NORMAL EVENTOS CU BUSCAR PRODUCTOS
1
El caso de uso a partir del momento en que el
cliente se encuentre ubicado en la Interfaz
Principal y de click en la opci{on "Buscar"
2
Se abre una ventana emergente con un campo de
texto y un botón. El campo tiene una leyenda que le
indica al usuario que debe ingresar la cadena de texto
del producto a buscar.
3Digita la cadena de texto y da click en el botón
"Buscar"4
Raliza una busqueda por los campos de la tabla de
productos donde se encuentra la información
requerida. En caso de encontrar coincidencias las
muestra inmediatamente en la Interfaz principal y
cierra la ventana emergente.
5Si no encuentra coincidencias muestra un mensaje y
se queda en la ventana emergente.
6 Continúa con el pedido.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos
TABLA 18 - CURSOS ALTERNOS CU BUSCAR PRODUCTOS
Acción Descripción
1El cliente decide abandonar la búsqueda y da click en la "X" de la ventana
emergente
FUENTE: LOS AUTORES
80
5.5.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 18 - DIAGRAMA DE SECUENCIA BUSCAR PRODUCTO
FUENTE: LOS AUTORES
81
5.6. MOSTRAR PRODUCTOS POR CATEGORIA
5.6.1. Diagrama de Caso de Uso
ILUSTRACIÓN 19 – CASO DE USO MOSTRAR PRODUCTOS POR CATEGORÍAS
Fuente: Los Autores
82
5.6.2. Especificación del Caso de Uso
Sección Principal
TABLA 19 - SECCIÓN PRINCIPAL CU MOSTRAR POR CATEGORÍAS
Caso de Uso Mostrar Productos por Categoría
Actores Cliente
PropósitoMuestra al cliente el grupo de productos organizado por
categorías
Resumen
El cliente puede escoger una de las categorías relacionadas en
el aplicativo para que el sistema le muestre los productos de
dicha categoría.
Tipo Esencial
Referencias Cruzadas RF18 - RF19 - RF20
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 20 - CURSO NORMAL EVENTOS CU MOSTRAR POR CATEGORÍAS
1
El caso de uso a partir del momento en que el
cliente se encuentre ubicado en la Interfaz
Principal y de click en la opci{on "Categorías"
2
Se abre una ventana emergente que muestra el listado
de las categorías. Muestra el botón "Aceptar" para
ejecutar la consulta
3Escoge una de las opciones del listado y da click
en el botón "Aceptar"4
Muestra en la Interfaz Principal los productos que
pertenecen a dicha categoría
5 Continúa con el pedido.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos
TABLA 21 - CURSOS ALTERNOS CU MOSTRAR POR CATEGORÍAS
Acción Descripción
3El cliente decide abandonar la búsqueda y da click en la "X" de la ventana
emergente
FUENTE: LOS AUTORES
83
5.6.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 20 - DIAGRAMA DE SECUENCIA MOSTRAR POR CATEGORÍA
FUENTE: LOS AUTORES
84
5.7. MOSTRAR PRODUCTOS POR OPCIONES DE COMPRA
5.7.1. Diagrama de Caso de Uso
ILUSTRACIÓN 21 - CASO DE USO PRODUCTOS X OPCIONES COMPRA
Fuente: Los Autores
85
5.7.2. Especificación del Caso de Uso
Sección Principal
TABLA 22 - SECCIÓN PRINCIPAL CU OPCIONES DE COMPRA
Caso de Uso Mostrar Productos por Opciones de Compra
Actores Cliente
PropósitoMuestra al cliente la lista de Opciones de Compra para
seleccionar
Resumen
El cliente puede seleccionar una de las opciones de la lista de
Descuentos, Promociones y/o Ofertas para que posteriormente
sea seleccionada.
Tipo Esencial
Referencias Cruzadas RF21 - RF22 - RF23
FUENTE: LOS AUTORES
Curso Normal de los Eventos
TABLA 23 - CURSO NORMAL EVENTOS CU OPCIONES DE COMPRA
1
El caso de uso se inicia a partir del momento en
que el cliente se encuentre ubicado en la Interfaz
Principal y de click en la opción "Opciones de
Compra"
2
Se abre una ventana emergente que muestra el listado
de las opciones de Compra. Muestra el botón
"Aceptar" para ejecutar la consulta
3Escoge una de las opciones del listado y da click
en el botón "Aceptar"4
Muestra en la Interfaz Principal los productos que
pertenecen a dicha Opción de Compra
5 Continúa con el pedido.
Acción de los Actores Respuesta del Sistema
FUENTE: LOS AUTORES
Cursos Alternos
TABLA 24 - CURSOS ALTERNOS CU OPCIONES DE COMPRA
Acción Descripción
3El cliente decide abandonar la búsqueda y da click en la "X" de la ventana
emergente
FUENTE: LOS AUTORES
86
5.8. ELEGIR PRODUCTO AL CANASTO
5.8.1. Diagrama de Caso de Uso
ILUSTRACIÓN 22 - CASO DE USO PRODUCTO A CANASTO
Fuente: Los Autores
87
5.8.2. Especificación del Caso de Uso
Sección Principal
TABLA 25 - SECCIÓN PRINCIPAL CU ELEGIR PRODUCTO
Caso de Uso Elegir Producto al Canasto
Actores Cliente
Propósito Selección de Producto para enviar al Canasto
ResumenEl cliente selecciona el pedido para agregarlo al canasto de
compra.
Tipo Esencial
Referencias Cruzadas RF24 - RF25 - RF26 - RF27
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 26 - CURSO NORMAL EVENTOS CU ELEGIR PRODUCTO
1 El cliente selecciona el producto 2
Se abre una ventana emergente donde se muestran los
datos básicos del producto:
- Valor
- Descripción
- Contenido
- Fabricante
- Valor Unitario
Además se muestra un control para dar la cantidad de
unidades.
3Selecciona la cantidad a pedir y da click en el
botón "Aceptar"4
Se cierra la ventana emergente y se agrega el producto
al Canasto según las cantidades seleccionadas por el
cliente
5 Continúa con el pedido.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
88
Cursos Alternos
Tabla 27 - Cursos Alternos CU Elegir Producto
Acción Descripción
3El cliente decide abandonar la búsqueda y da click en la "X" de la ventana
emergente
FUENTE: LOS AUTORES
5.8.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 23 - DIAGRAMA DE SECUENCIA PRODUCTO AL CANASTO
FUENTE: LOS AUTORES
89
5.9. CANASTO DE COMPRA
5.9.1. Diagrama de Caso de Uso
ILUSTRACIÓN 24 - CASO DE USO MANIPULAR CANASTO
Fuente: Los Autores
90
5.9.2. Especificación del Caso de Uso
Sección Principal
TABLA 28 - SECCIÓN PRINCIPAL CU CANASTO DE COMPRA
Caso de Uso Manipular Canasto de Compra
Actores Cliente
Propósito Selección del Canasto de Compra
ResumenEl cliente selecciona el Canasto de Compra para verificar y/o
modificar los productos y las cantidades pedidas
Tipo Esencial
Referencias Cruzadas RF28 - RF29
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 29 - CURSO NORMAL EVENTOS CU CANASTO DE COMPRA
1 El cliente selecciona el Canasto 2
Se abre una ventana emergente que muestra los
siguientes datos:
- Listado de los Productos pedidos, con el nombre, la
cantidad, valor unitario y subtotal.
- Total del Pedido
- El campo "Cantidad" en el listado es editable.
- Opción de eliminar un producto del listado
- Botón para vaciar el canasto.
- Botón para aceptar los cambios
3 Realiza las modificaciones y da click en "Aceptar" 4
Cierra ventana emergente y realiza los cambios
propuestos en el canasto para volver a la interfaz
principal
5 Continúa con el pedido.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
91
Cursos Alternos
TABLA 30 - CURSOS ALTERNOS CU CANASTO DE COMPRA
Acción Descripción
3El cliente decide abandonar la búsqueda y da click en la "X" de la ventana
emergente
3El cliente decide vaciar el canasto y volver a la Interfaz Principal dando click en la
"X" de la ventana emergente.
FUENTE: LOS AUTORES
5.9.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 25 - DIAGRAMA DE SECUENCIA MANIPULAR CANASTO
FUENTE: LOS AUTORES
92
5.10. REALIZAR PEDIDO
5.10.1. Diagrama de Caso de Uso
ILUSTRACIÓN 26 - CASO DE USO REALIZAR PEDIDO
Fuente: Los Autores
93
5.10.2. Especificación del Caso de Uso
Sección Principal
TABLA 31 - SECCIÓN PRINCIPAL CU REALIZAR PEDIDO
Caso de Uso Realizar y Confirmar Pedido
Actores Cliente
Propósito Confirmación del Pedido
Resumen
El cliente selecciona la Opción "Pedir" de la Interfaz Principal
para confirmar el pedido de los productos almacenados en el
canasto
Tipo Esencial
Referencias Cruzadas RF30 - RF31 - RF32 - RF33
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 32 - CURSO NORMAL EVENTOS CU REALIZAR PEDIDO
1El cliente da click en la opción "Pedir" de la
Interfaz Principal2
Se abre una interfaz Principal que muestra un saludo
con el nombre del cliente y el valor total de la compra.
Muestra un listado con las direcciones almacenadas
por el cliente, o da la opción para que el cliente ingrese
una nueva ubicación.
3Selecciona dirección o ingresa una nueva con
ayuda de Google Maps del dispositivo móvil.
4 Da click en la opción "Confirmar" 5
Muestra otra ventana donde aparece el valor total de la
compra, la hora y fecha de realización del pedido, la
hora y fecha de la entrega del pedido y un
agradecimiento por la compra.
6Se cierran las ventanas emergentes, se inicializan
todas las variables y retorna la interfaz principal.
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos
TABLA 33 - CURSOS ALTERNOS CU REALIZAR PEDIDO
Acción Descripción
4El cliente decide abandonar el módulo y da click en la "X" de la ventana emergente.
Se descarta la compra.
Fuente: Los Autores
94
5.10.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 27 - DIAGRAMA DE SECUENCIA REALIZAR PEDIDO
FUENTE: LOS AUTORES
95
5.11. RECIBIR PETICION DE PEDIDO
5.11.1. Diagrama de Caso de Uso
ILUSTRACIÓN 28- CASO DE USO RECIBIR PETICIÓN
Fuente: Los Autores
96
5.11.2. Especificación del Caso de Uso
Sección Principal
TABLA 34 - SECCIÓN PRINCIPAL CU RECIBIR PETICIÓN
Caso de Uso Recibir Petición
Actores Cliente - Administrador
Propósito El Administrador recibe la Petición del Cliente
ResumenDespués de confirmado el pedido el Administrador recibe la
solicitud para el envío de los productos al cliente.
Tipo Esencial
Referencias Cruzadas RF30 - RF34 - RF35 - RF36
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 35 - CURSO NORMAL EVENTOS CU RECIBIR PETICIÓN
1 El cliente confirma el pedido 2Valida los datos y envía un mensaje y un correo al
Administrador del sistema.
3El Administrador verifica la dirección de entrega y
cambia el estado del Pedido a "En Proceso"
4Envía el pedido al cliente para su posterior entrega
y cancelación en efectivo.
5 El cliente cancela el Pedido
6El Administrador cambia el estado del Pedido a
"Finalizado"7
Realiza las operaciones y guarda el pedido en el
Historial del Cliente
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos
TABLA 36 - CURSOS ALTERNOS CU RECIBIR PETICIÓN
Acción Descripción
5No se entrega el pedido por causas derivadas o relacionadas con el cliente. Se
devuelven los productos al Administrador.
6El Administrador cambia el estado del Pedido a "No Entregado", y realiza las
observaciones del caso en el campo creado para tal fin.
Fuente: Los Autores
97
5.11.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 29 - DIAGRAMA DE SECUENCIA RECIBIR PETICIÓN
FUENTE: LOS AUTORES
98
5.12. ADMINISTRAR PEDIDOS
5.12.1. Diagrama de Caso de Uso
ILUSTRACIÓN 30 - CASO DE USO ADMINISTRAR PEDIDOS
Fuente: Los Autores
99
5.12.2. Especificación del Caso de Uso
Sección Principal
TABLA 37 - SECCIÓN PRINCIPAL CU ADMINISTRAR PEDIDOS
Caso de Uso Administrar Pedidos
Actores Administrador
Propósito El Administrador gestiona el estado de los pedidos
ResumenSe realizan los cambios y las modificaciones a los pedidos
realizados por los clientes
Tipo Esencial
Referencias Cruzadas RF30 - RF34 - RF35 - RF36
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 38 - CURSO NORMAL EVENTOS CU ADMINISTRAR PEDIDOS
1 El Administrador recibe notificación de Pedido 2El sistema guarda los datos del Pedido con la
información correspondiente al cliente y a los
3
Ingresa al Módulo de Pedidos en el entorno WEB y
modifica el campo del Pedido llamado "Estado", y
lo pone en "En Proceso"
4El sistema realiza la modificación en la tabla
respectiva.
5
El Administrador realiza el envío del Pedido y
espera respuesta del cliente para cambiar el
estado a "Finalizado"
6Se modifica nuevamente la tabla en el campo
especificado por el Administrador
7 Guarda el Pedido en el historial de Pedidos del cliente
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
Cursos Alternos
TABLA 39 - CURSOS ALTERNOS CU ADMINISTRAR PEDIDOS
Acción Descripción
5No se entrega el pedido por causas derivadas o relacionadas con el cliente. Se
devuelven los productos al Administrador.
6El Administrador cambia el estado del Pedido a "No Entregado", y realiza las
observaciones del caso en el campo creado para tal fin.
Fuente: Los Autores
100
5.12.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 31 - DIAGRAMA DE SECUENCIA ADMINISTRAR PEDIDOS
FUENTE: LOS AUTORES
101
5.13. ADMINISTRAR PRODUCTOS
5.13.1. Diagrama de Caso de Uso
ILUSTRACIÓN 32 - CASO DE USO ADMINISTRAR PRODUCTOS
Fuente: Los Autores
102
5.13.2. Especificación del Caso de Uso
Sección Principal
TABLA 40 - SECCIÓN PRINCIPAL CU ADMINISTRAR PRODUCTOS
Caso de Uso Administrar Productos
Actores Administrador
Propósito El Administrador gestiona todo lo referente a los Productos
ResumenSe realizan adiciones de productos y modificaciones de los
mismos
Tipo Esencial
Referencias Cruzadas RF8 - RF9 - RF10 - RF11 - RF12 - RF13
Fuente: Los Autores
Curso Normal de los Eventos
TABLA 41 - CURSO NORMAL EVENTOS CU ADMINISTRAR PRODUCTOS
1 El Administrador ingresa al Modulo de Productos 2
Se muestran los Productos, con dos posibilidades:
- Adicionar Producto
- Modificar Productos
3
Ingresa los datos del producto, para nuevo
producto o para modificar producto. Click en
"Guardar"
4El Sistema realiza la adición o el cambio respectivo en
la Base de Datos,
Acción de los Actores Respuesta del Sistema
Fuente: Los Autores
103
5.13.3. Diagrama de Secuencia del Caso de Uso
ILUSTRACIÓN 33- DIAGRAMA DE SECUENCIA ADMINISTRAR PRODUCTO
FUENTE: LOS AUTORES
104
6. DISEÑO DE LA BASE DE DATOS
Para el prototipo implementado se ha diseñado una base de datos fundamentada
en el modelo relacional, la cual se describe a continuación:
Almacenar la información de los clientes solicitantes de los productos a
domicilio.
Almacenar la información de los productos, con sus respectivas
características.
Almacenar la información de los pedidos efectuados por los clientes para
poder enviar los productos a domicilio.
Almacenar la información de los usuarios Administradores del prototipo en
su entorno web para validación de ingreso.
6.1. TABLAS
6.1.1. Categoría
En esta tabla se almacenan los tipos de productos existentes, lo que permite
clasificar de una forma ordenada todas las referencias creadas para la venta a
domicilio.
Id_cat: Llave primaria de la tabla que identifica la categoría.
Nom_cat: Nombre que recibe la categoría.
desc_cat: Descripción formal y detallada de la categoría.
105
6.1.2. Ciudad
En esta tabla se almacenan las ciudades de ubicación de los clientes, con el fin de
crear un registro de los lugares donde se van a entregar los domicilios.
Id_ciudad: Llave primaria de la ciudad según el estándar de la Dian.
Nom_ciudad: Nombre completo de la ciudad.
6.1.3. Cliente
En esta tabla se almacenan los datos de los clientes que ingresan y se registran
para solicitar los productos a domicilio.
Id_cliente: Número de cédula del cliente.
Id_tipcli: Identifica el tipo cliente al cual se encuentra relacionado cada
cliente.
Nom_cliente: Nombres registrados por el cliente.
Ape_cliente: Apellidos registrados por el cliente.
Nomcial_cliente: Nombre comercial o razón social del cliente, en caso que
la requiera.
Cel_cliente: Número de teléfono celular registrado por el cliente.
Tel_cliente: Número de teléfono fijo registrado por el cliente.
Mail_cliente: Cuenta de correo electrónico registrada por el cliente.
Pwd_cliente: Clave registrada por el cliente para ingresar al prototipo móvil.
Id_est: Identificador del estado del cliente.
106
Id_lista: Identificador de la lista de precios que tiene asociada cada
cliente.
6.1.4. DetCanasto
Esta tabla almacena el detalle de la información que se maneja en el canasto de
compra, y a su vez, sirve como base para cada uno de los pedidos.
Id_detalle: Número autoincrementable que identifica el registro.
Id_prod: Identificador de cada uno de los productos que el cliente va
registrando en el canasto.
Id_cliente: Número de cédula que identifica al cliente que manipula el
canasto.
Nom_cliente: Nombre del cliente que manipula el canasto.
Nom_prod: Nombre de cada uno de los productos que el cliente va
almacenando en el canasto de compra.
Cant_prod: Cantidad de unidades pedidas por cada producto.
Precio_prod: Valor unitario asignado a cada producto.
Subt_prod: Valor resultante del precio del producto multiplicado por la
cantidad pedida.
Id_est: Estado del detalle del pedido.
6.1.5. Dirección
La Tabla Dirección almacena todas las direcciones de los clientes, sin importar la
cantidad que cada cliente pueda tener.
Id_dir: Número autoincrementable que identifica cada una de las
direcciones.
Id_cliente: Identificador del cliente.
107
Dir_cliente: Almacena la dirección del cliente.
Id_ciudad: Almacena el identificador de la ciudad a la que pertenece
dicha dirección.
Id_est: Identificador del estado de la dirección.
6.1.6. Estado
La tabla estado almacena todos los posibles estados que pueden presentar la
mayoría de los componentes de la base de datos.
Id_est: Valor que identifica el estado.
Nom_est: Nombre con que se identifica el estado.
Desc_esta: Descripción detallada de cada estado.
6.1.7. ListaPrecios
Esta tabla almacena la información de las listas de precios asignadas para cada
tipo de cliente, según sea el caso requerido.
Id_lista: Identificador de la lista de precios.
Nom_lista: Nombre de la lista de precios.
6.1.8. Pedido
La tabla Pedido almacena la información resumida de los pedidos solicitados por
cada cliente, con base en la tabla “detcanasto” que se describió con anterioridad.
108
Id_pedido: Número autoincrementable con el que se identifica cada
pedido.
Id_detalle: Identificador del detalle del pedido que referencia la tabla
“detcanasto”.
Id_cliente: Identificador del cliente que hace referencia a la tabla “cliente”
Nom_cliente: Almacena nombres y apellidos del cliente en un solo campo.
Dir_ped: Almacena la dirección seleccionada y registrada por el usuario
al momento de efectuar el pedido.
Fechora_ped: Almacena la fecha y la hora en que el cliente guarda el
pedido en el sistema.
Valor_ped: Guarda el valor total del pedido que debe ser cancelado
posteriormente por el cliente.
Id_est: Identificador del estado del pedido.
Id_user: Identificador del usuario que gestiona el pedido.
Nom_user: Nombre del usuario que gestiona el pedido.
Observ_ped: Comentarios adicionales del pedido, en caso que el usuario lo
considere necesario.
6.1.9. Prod_Lista
Prod_Lista es una tabla compuesta que está referenciada por las tablas “Producto”
y “ListaPrecios”. En esta tabla se almacenan los productos relacionados a las
listas de precios, con sus respectivos valores según sea el caso.
109
Id_prod: Identificador del producto.
Id_lista: Identificador de la lista de precios.
Precio_prod: Precio del producto según la lista asignada.
6.1.10. Producto
La tabla producto almacena la información principal de cada producto, la cual es
administrada por el usuario controlador del sistema por medio de la interfaz web
adaptada para el prototipo.
Id_prod: Llave principal de la tabla que identifica el producto.
Nom_prod: Nombre corto del producto.
Desc_prod: Descripción detallada del producto.
Img_prod: Almacena la ruta donde queda grabada la imagen del
producto.
Id_cat: Identificador de la categoría del producto.
Id_est: Identificador del estado del producto.
6.1.11. TipoCliente
La tabla almacena los valores asignados por el administrador del prototipo para
clasificar los clientes registrados en el sistema.
Id_tipcli: Identificador asignado por el sistema para el tipo de cliente.
Nom_tipcli: Nombre del tipo de cliente asignado para el tipo de cliente.
Desc_tipcli: Descripción para el tipo de cliente en caso de requerirse.
110
6.1.12. Usuario
La Tabla Usuario almacena la información de los usuarios que van a administrar el
prototipo desde la interfaz web.
Id_user: Identificador del usuario, para este caso el número de cédula.
Nom_user: Nombres del usuario.
Ape_user: Apellidos del usuario
Pwd_user: Clave del usuario para ingresar a la interfaz web.
Id_est: Identificador del estado del usuario.
6.2. MODELO RELACIONAL DE LA BASE DE DATOS
El modelo relacional de la Base de Datos muestra la estructura de la información
almacenada por medio de un conjunto de elementos que se relacionan entre si
para facilitar el flujo de los datos, las consultas y la rápida visualización de los
pedidos, los productos y los clientes.
El modelo está representado en forma de tablas, en las cuales se registran de
manera ordenada los datos asignados según el funcionamiento de la base de
datos y según el diseño generado en la etapa de análisis y diseño. Las tablas
fueron diseñadas según los objetos principales del prototipo (Cliente, Producto,
Pedido), y en torno a éstos se encuentran otras relaciones que proporcionan
soporte adicional para el manejo de los datos (categoría, lista de precios,
dirección).
112
6.3. DICCIONARIO DE DATOS
6.3.1. Categoría
TABLA 40 - CATEGORÍA - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_cat Varchar(10) No Identificador de la tabla categoría
nom_cat Varchar(50) No Nombre asignado a la categoría
desc_cat Varchar(200) No Descripción asignada a la categoría
FUENTE: LOS AUTORES
6.3.2. Ciudad
TABLA 41- CIUDAD - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_ciudad Varchar(10) No Identificador de la tabla Ciudad
nom_ciudad Varchar(200) No Nombre asignado a la Ciudad
FUENTE: LOS AUTORES
113
6.3.3. Cliente
TABLA 42 - CLIENTE - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
id_tipcli Varchar(10) No Identificador de la tabla Tipo_cliente (Llave Foránea)
nom_cliente Varchar(100) No Nombres registrados por el cliente
ape_cliente Varchar(100) No Apellidos registrados por el cliente
nomcial_cliente Varchar(500) No Nombre comercial del cliente, en caso que requiera
cel_cliete Varchar(50) No Número teléfono celular registrado por el cliente
tel_cliete Varchar(50) No Número teléfono fijo registrado por el cliente
mail_cliente Varchar(200) No Correo electrónico registrado por el cliente
pwd_cliente Varchar(100) No Password de ingreso registrada por el cliente
id_est Char(1) No Identificador de la tabla estado para Cliente
id_lista Varchar(10) No Identificador de la tabla ListaPrecios
FUENTE: LOS AUTORES
6.3.4. DetCanasto
TABLA 43 - DETCANASTO - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_detalle Int(11) No identificador del canasto autoincrementable
id_prod Varchar(10) No Identificador de la tabla productos
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
nom_cliente Varchar(200) No Nombres y Apellidos cliente
nom_prod Varchar(100) No Nombre asignado al producto
cant_prod Float No Cantidad de unidades resgistradas por el cliente
precio_prod Float No Precio asignado al producto
subt_prod Float No Cantidad de producto por el precio asignado
id_est Char(1) No Identificador de la tabla estado para detcanasto
FUENTE: LOS AUTORES
114
6.3.5. Dirección
TABLA 44 - DIRECCIÓN - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_dir Int(11) No identificador de tabla, autoincrementable
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
dir_cliente Varchar(500) No Dirección asignada por el cliente
id_ciudad Varchar(10) No Identificador de la tabla Ciudad
id_est Char(1) No Identificador de la tabla estado para Dirección
FUENTE: LOS AUTORES
6.3.6. Estado
TABLA 45 - ESTADO - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_est Char(1) No Identificador de la tabla Estado
nom_est Varchar(50) No Nombre asignado para el estado
desc_est Varchar(200) No Descripción asignada al Estado
FUENTE: LOS AUTORES
6.3.7. ListaPrecios
TABLA 46 - LISTAPRECIOS - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_lista Varchar(50) No Identificador de la Lista de Precios
nom_lista Varchar(100) No Nombre asignado para la Lista de Precios
FUENTE: LOS AUTORES
115
6.3.8. Pedido
TABLA 47 - PEDIDO - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_ped Int(11) No identificador de tabla, autoincrementable
id_detalle Int(11) No identificador del canasto autoincrementable
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
nom_cliente Varchar(200) No Nombres y Apellidos cliente
dir_ped Varchar(500) No Dirección asignada por el cliente
fechora_ped Datetime No Fecha y Hora en que se registró el pedido
valor_ped Float No Valor total del Pedido
id_est Char(1) No Identificador de la tabla estado para Pedido
id_user Varchar(50) No Identificador del Usuario que administra el Pedido
nom_user Varchar(200) No Nombre del Usuario que administra el Pedido
observ_ped Varchar(300) No Observación adicional sobre el pedido
FUENTE: LOS AUTORES
6.3.9. Prod_Lista
TABLA 48 - PROD_LISTA - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_prod Varchar(10) No Identificador de la tabla productos
id_lista Varchar(50) No Identificador de la Lista de Precios
precio_prod Float No Valor asignado al producto según la Lista Precios
FUENTE: LOS AUTORES
116
6.3.10. Producto
TABLA 49 - PRODUCTO - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_prod Varchar(10) No Identificador asignado a cada producto
nom_prod Varchar(100) No Nombre asignado a cada producto
desc_prod Varchar(300) No Descripción mas detallada acerca del Porducto
img_prod Varchar(300) No Describe la ruta de ubicación de la imagen
id_cat Varchar(10) No Identificador de la categoría del Producto
id_est Char(1) No Identificador del estado del Producto
FUENTE: LOS AUTORES
6.3.11. TipoCliente
TABLA 50 - TIPOCLIENTE - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_tipcli Varchar(10) No Identificador asignado para el tipo de cliente
nom_tipcli Varchar(100) No Nombre asignado al tipo de cliente
FUENTE: LOS AUTORES
6.3.12. Usuario
TABLA 51 - USUARIO - DICCIONARIO DE DATOS
Campo Tipo Nulo Comentarios
id_user Varchar(20) No Identificador asignado al usuario - Cédula
nom_user Varchar(100) No Nombre registrado por el usuario
ape_user Varchar(100) No Apellido registrado por el usuario
pwd_user Varchar(100) No Password de ingreso registrado por el Usuario
id_est Char(1) No Identificador del estado para el Usuario
FUENTE: LOS AUTORES
117
6.4. CODIGO SQL DE LAS TABLAS
El código SQL de las tablas comprende una serie de instrucciones que se ejecutan
para crear la estructura de la base de datos, la cual se ha denominado
internamente como “ESTANQUILLO”. Dichas instrucciones son escritas bajo un
código estándar SQL y funciona cómodamente dentro del Sistema Gestor de Base
de Datos usado para el prototipo y con el manejador MySql versión 5.6.16.
6.4.1. Estado
CREATE TABLE IF NOT EXISTS `estanquillo`.`estado` (
`id_est` CHAR NOT NULL,
`nom_est` VARCHAR(50) NOT NULL,
`desc_est` VARCHAR(200) NOT NULL DEFAULT '.',
PRIMARY KEY (`id_est`))
ENGINE = InnoDB;
6.4.2. Usuario
CREATE TABLE IF NOT EXISTS `estanquillo`.`usuario` (
`id_user` VARCHAR(20) NOT NULL,
`nom_user` VARCHAR(100) NOT NULL,
`ape_user` VARCHAR(100) NOT NULL,
`pwd_user` VARCHAR(100) NOT NULL,
118
`id_est` CHAR NOT NULL,
PRIMARY KEY (`id_user`),
INDEX `fk_usuario_estado_idx` (`id_est` ASC),
CONSTRAINT `fk_usuario_estado`
FOREIGN KEY (`id_est`)
REFERENCES `estanquillo`.`estado` (`id_est`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
6.4.3. ListaPrecios
CREATE TABLE IF NOT EXISTS `estanquillo`.`listaprecios` (
`id_lista` VARCHAR(10) NOT NULL,
`nom_lista` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id_lista`))
ENGINE = InnoDB;
119
6.4.4. TipoCliente
CREATE TABLE IF NOT EXISTS `estanquillo`.`tipocliente` (
`id_tipcli` VARCHAR(10) NOT NULL,
`nom_tipcli` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id_tipcli`))
ENGINE = InnoDB;
6.4.5. Cliente
CREATE TABLE IF NOT EXISTS `estanquillo`.`cliente` (
`id_cliente` VARCHAR(50) NOT NULL,
`id_tipcli` VARCHAR(10) NOT NULL,
`nom_cliente` VARCHAR(100) NOT NULL,
`ape_cliente` VARCHAR(100) NOT NULL,
`nomcial_cliente` VARCHAR(500) NOT NULL,
`cel_cliente` VARCHAR(50) NOT NULL,
`tel_cliente` VARCHAR(50) NOT NULL,
`mail_cliente` VARCHAR(200) NOT NULL,
`pwd_cliente` VARCHAR(100) NOT NULL,
`id_est` CHAR NOT NULL,
`id_lista` VARCHAR(10) NOT NULL,
PRIMARY KEY (`id_cliente`),
120
INDEX `fk_cliente_estado1_idx` (`id_est` ASC),
INDEX `fk_cliente_listaprecios1_idx` (`id_lista` ASC),
INDEX `fk_cliente_tipocliente1_idx` (`id_tipcli` ASC),
CONSTRAINT `fk_cliente_estado1`
FOREIGN KEY (`id_est`)
REFERENCES `estanquillo`.`estado` (`id_est`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_cliente_listaprecios1`
FOREIGN KEY (`id_lista`)
REFERENCES `estanquillo`.`listaprecios` (`id_lista`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_cliente_tipocliente1`
FOREIGN KEY (`id_tipcli`)
REFERENCES `estanquillo`.`tipocliente` (`id_tipcli`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
121
6.4.6. Ciudad
CREATE TABLE IF NOT EXISTS `estanquillo`.`ciudad` (
`id_ciudad` VARCHAR(10) NOT NULL,
`nom_ciudad` VARCHAR(200) NOT NULL,
PRIMARY KEY (`id_ciudad`))
ENGINE = InnoDB;
6.4.7. Dirección
CREATE TABLE IF NOT EXISTS `estanquillo`.`direccion` (
`id_dir` INT NOT NULL AUTO_INCREMENT,
`id_cliente` VARCHAR(50) NOT NULL,
`dir_cliente` VARCHAR(500) NOT NULL,
`id_ciudad` VARCHAR(10) NOT NULL,
`id_est` CHAR NOT NULL,
PRIMARY KEY (`id_dir`),
INDEX `fk_direccion_cliente1_idx` (`id_cliente` ASC),
INDEX `fk_direccion_ciudad1_idx` (`id_ciudad` ASC),
INDEX `fk_direccion_estado1_idx` (`id_est` ASC),
CONSTRAINT `fk_direccion_cliente1`
FOREIGN KEY (`id_cliente`)
REFERENCES `estanquillo`.`cliente` (`id_cliente`)
122
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_direccion_ciudad1`
FOREIGN KEY (`id_ciudad`)
REFERENCES `estanquillo`.`ciudad` (`id_ciudad`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_direccion_estado1`
FOREIGN KEY (`id_est`)
REFERENCES `estanquillo`.`estado` (`id_est`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
6.4.8. Categoría
CREATE TABLE IF NOT EXISTS `estanquillo`.`categoria` (
`id_cat` VARCHAR(10) NOT NULL,
`nom_cat` VARCHAR(50) NOT NULL,
`desc_cat` VARCHAR(200) NOT NULL DEFAULT '.',
PRIMARY KEY (`id_cat`))
ENGINE = InnoDB;
123
6.4.9. Producto
CREATE TABLE IF NOT EXISTS `estanquillo`.`producto` (
`id_prod` VARCHAR(10) NOT NULL,
`nom_prod` VARCHAR(100) NOT NULL,
`desc_prod` VARCHAR(300) NOT NULL,
`img_prod` VARCHAR(300) NOT NULL,
`id_cat` VARCHAR(10) NOT NULL,
`id_est` CHAR NOT NULL,
PRIMARY KEY (`id_prod`),
INDEX `fk_producto_estado1_idx` (`id_est` ASC),
INDEX `fk_producto_categoria1_idx` (`id_cat` ASC),
CONSTRAINT `fk_producto_estado1`
FOREIGN KEY (`id_est`)
REFERENCES `estanquillo`.`estado` (`id_est`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_producto_categoria1`
FOREIGN KEY (`id_cat`)
REFERENCES `estanquillo`.`categoria` (`id_cat`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
124
6.4.10. DetCanasto
CREATE TABLE IF NOT EXISTS `estanquillo`.`detcanasto` (
`id_detalle` INT NOT NULL AUTO_INCREMENT,
`id_prod` VARCHAR(10) NOT NULL,
`id_cliente` VARCHAR(50) NOT NULL,
`nom_cliente` VARCHAR(200) NOT NULL,
`nom_prod` VARCHAR(100) NOT NULL,
`cant_prod` FLOAT NOT NULL,
`precio_prod` FLOAT NOT NULL,
`subt_prod` FLOAT NOT NULL,
`id_est` CHAR NOT NULL,
PRIMARY KEY (`id_detalle`),
INDEX `fk_detcanasto_producto1_idx` (`id_prod` ASC),
INDEX `fk_detcanasto_estado1_idx` (`id_est` ASC),
INDEX `fk_detcanasto_cliente1_idx` (`id_cliente` ASC),
CONSTRAINT `fk_detcanasto_producto1`
FOREIGN KEY (`id_prod`)
REFERENCES `estanquillo`.`producto` (`id_prod`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
125
CONSTRAINT `fk_detcanasto_estado1`
FOREIGN KEY (`id_est`)
REFERENCES `estanquillo`.`estado` (`id_est`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_detcanasto_cliente1`
FOREIGN KEY (`id_cliente`)
REFERENCES `estanquillo`.`cliente` (`id_cliente`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
6.4.11. Pedido
CREATE TABLE IF NOT EXISTS `estanquillo`.`pedido` (
`id_ped` INT NOT NULL AUTO_INCREMENT,
`id_detalle` INT NOT NULL,
`id_cliente` VARCHAR(50) NOT NULL,
`nom_cliente` VARCHAR(200) NOT NULL,
`dir_ped` VARCHAR(500) NOT NULL,
`fechora_ped` DATETIME NOT NULL,
`valor_ped` FLOAT NOT NULL,
`id_est` CHAR NOT NULL,
126
`id_user` VARCHAR(50) NOT NULL,
`nom_user` VARCHAR(200) NOT NULL,
`observ_ped` VARCHAR(300) NOT NULL DEFAULT '.',
PRIMARY KEY (`id_ped`),
INDEX `fk_pedido_estado1_idx` (`id_est` ASC),
INDEX `fk_pedido_cliente1_idx` (`id_cliente` ASC),
INDEX `fk_pedido_usuario1_idx` (`id_user` ASC),
INDEX `fk_pedido_detcanasto1_idx` (`id_detalle` ASC),
CONSTRAINT `fk_pedido_estado1`
FOREIGN KEY (`id_est`)
REFERENCES `estanquillo`.`estado` (`id_est`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_pedido_cliente1`
FOREIGN KEY (`id_cliente`)
REFERENCES `estanquillo`.`cliente` (`id_cliente`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_pedido_usuario1`
FOREIGN KEY (`id_user`)
REFERENCES `estanquillo`.`usuario` (`id_user`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
127
CONSTRAINT `fk_pedido_detcanasto1`
FOREIGN KEY (`id_detalle`)
REFERENCES `estanquillo`.`detcanasto` (`id_detalle`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
6.4.12. Prod_Lista
CREATE TABLE IF NOT EXISTS `estanquillo`.`prod_lista` (
`id_prod` VARCHAR(10) NOT NULL,
`id_lista` VARCHAR(10) NOT NULL,
`precio_prod` FLOAT NOT NULL,
PRIMARY KEY (`id_prod`, `id_lista`),
INDEX `fk_producto_has_listaprecios_listaprecios1_idx` (`id_lista` ASC),
INDEX `fk_producto_has_listaprecios_producto1_idx` (`id_prod` ASC),
CONSTRAINT `fk_producto_has_listaprecios_producto1`
FOREIGN KEY (`id_prod`)
REFERENCES `estanquillo`.`producto` (`id_prod`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_producto_has_listaprecios_listaprecios1`
FOREIGN KEY (`id_lista`)
128
REFERENCES `estanquillo`.`listaprecios` (`id_lista`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
131
6.7. DISEÑO ARQUITECTONICO
La selección de la arquitectura consiste en un sistema Multiusuario tipo Web,
donde pueden estar conectados mínimo 1000 clientes (usuarios) desde sus
Smartphones de manera simultánea. Tanto la plataforma móvil como la plataforma
web desarrollada en PHP, presentan una arquitectura desarrollada en tres capas
conocidas como MVC (Modelo – Vista – Controlador).
ILUSTRACIÓN 37 - DISEÑO MVC
FUENTE LOS AUTORES
132
6.7.1. Capa de Modelo
En la capa de Modelo se han incorporado todos los archivos PHP relacionados
con la manipulación de la información almacenada en la base de datos, los cuales
están organizados en clases tipo PHP que están estructuradas en torno al archivo
gestor de conexiones llamado “ClaseGestordb.php”. Esta clase se encarga de
generar los métodos y los atributos responsables de crear las conexiones y las
consultas genéricas cuando el controlador las solicite.
ILUSTRACIÓN 38- CAPA DEL MODELO - CLASEGESTOR.PHP
FUENTE LOS AUTORES
La Capa de Modelo incluye las Clases tipo PHP que definen los objetos mas
importantes del prototipo, tales como “ClaseCliente.php”, “ClaseProducto.php” y
133
“ClasePedido.php”, todas ellas a su vez requieren la participación de la clase que
gestiona la conexión con la base de datos. Cada una de estas clases se encargan
de gestionar los datos, atributos y métodos
ILUSTRACIÓN 39 – CAPA DEL MODELO - CLASEPRODUCTO.PHP
FUENTE LOS AUTORES
134
6.7.2. Capa de Controlador
Para la capa Controlador se generó una cadena de archivos que contienen pocas
líneas de código según sea la funcionalidad requerida en el momento. Estos
segmentos de código se encargan de manipular y controlar las variables, las
sesiones de usuario, los traspasos de información y la validación de algunos
datos. Cuando el cliente en la aplicación móvil efectúa una solicitud por medio de
un formulario, dicha solicitud es enviada al controlador del sistema, el cual se
encarga de verificar los datos, traspasarlos a variables y realizar la transacción a
la capa Modelo. También ha sido apropiado el uso del controlador para definir las
sintaxis de algunas consultas de acuerdo a las solicitudes enviadas por el usuario,
es decir, almacenar en variables las cadenas de SQL a utilizar en la capa del
modelo y de esta manera evitar la realización de código redundante o repetitivo.
En algunos casos se han efectuado combinaciones entre la capa de Modelo y la
capa de Controlador, así mismo, se ha incorporado la Capa de Vista en algunos
segmentos de la capa Controlador. Estas combinaciones fueron requeridas y
necesarias en los módulos de Pedido y DetallePedido ya que por la complejidad
de las transacciones era indispensable manipular las tres capas en un solo
archivo.
135
ILUSTRACIÓN 40 – CAPA DEL CONTROLADOR - LOGIN.PHP
Fuente Los Autores
ILUSTRACIÓN 41 - CAPA DE CONTROLADOR – BUSCARPRODUCTO.PHP
FUENTE LOS AUTORES
136
6.7.3. Capa de Vista
La Capa de Vista tiene muchas variaciones entre la interfaz móvil y la interfaz
Web. Para la interfaz móvil se implementó el framework de jQuery Mobile, el cual
trae incorporado los estilos y los script sobre los cuales se ha basado la
codificación de los formularios y de las distintas interfaces, que van desde el
ingreso del cliente hasta la toma de pedidos.
ILUSTRACIÓN 42 - CAPA DE VISTA - FRMINGRESO.PHP
FUENTE LOS AUTORES
137
Las hojas de estilo de jQuery Mobile permiten que los pluging utilizados dentro de
la implementación tengan características de visualización homogéneas y
agradables para el usuario. Los componentes de jQuery Mobile son similares a los
usados en HTML5, pero adquieren valores agregados gracias a las hojas de estilo
que se incrustan han realizado en el prototipo móvil.
ILUSTRACIÓN 43 - CAPA DE VISTA - HOJA DE ESTILO CSS
FUENTE LOS AUTORES
138
Dentro de la interfaz Web del prototipo se utilizaron varios componentes que
permitieron una óptima visualización para el administrador del sistema. La Capa
de Vista gira en torno a una estructura conocida como jQgrid, la cual ha facilitado
la visualización de los datos al administrador ya que funciona en forma de tablas
desplegables enlazadas directamente con la base de datos.
ILUSTRACIÓN 44 - CAPA DE VISTA - JQGRID PRODUCTOS
FUENTE LOS AUTORES
139
6.8. SEGURIDAD DEL APLICATIVO
En la implementación del Prototipo se han desarrollado las directivas de seguridad
básicas para una aplicación Web, las cuales están definidas por la administración
de las características del servidor web que se está utilizando: XAMPP. Algunos
otros componentes están implementados desde la interfaz gráfica elaborada en
HTML5, en la codificación de líneas en PHP y en los script de la base de datos.
6.8.1. Validación
Para el ingreso de datos por parte del usuario (cliente) se han usados los
formularios convencionales, pero adoptando las nuevas cartas de validación de
HTML5, como son los nuevos tipos de campos (email, password, number) que
evitan el ingreso de datos no deseados y no permiten que se continúe con la
secuencia del sistema. De esta manera se evitan comportamientos no esperados,
se evita que se acceda a la aplicación a usuarios no autorizados y que se sufran
rupturas de manera malintencionada. Todos los campos son requeridos:
ILUSTRACIÓN 45 - VALIDACIÓN FORMULARIOS
FUENTE LOS AUTORES
140
6.8.2. Escapado
El escapado fue usado en la capa de Modelo para disminuir los ingresos de textos
basura a la base de datos.
ILUSTRACIÓN 46 - ESCAPADO - SEGURIDAD
FUENTE LOS AUTORES
La gran mayoría de los aspectos de seguridad se configuraron en el servidor web
que se utilizó para el desarrollo de la aplicación. Dichos aspectos son
especificados en el Manual Técnico.
141
7. IMPLEMENTACION DE LOS MODULOS
7.1. ESPECIFICACIÓN DE LOS MODULOS
La creación de un software prototipo basado en una estructura modular facilita el
desarrollo, la implementación y mejora las características de seguridad. La
implementación en forma de módulos permite mejorar las buenas prácticas de
desarrollo y las posteriores intervenciones o modificaciones en el nivel de prueba y
de mantenimiento. También se prohíbe el acceso libre a los datos del prototipo
gracias a la creación de métodos que contienen validaciones de seguridad que
permiten cumplir con las políticas y las reglas mínimas de cualquier negocio.
7.2. MODULO DE REGISTRO Y AUTENTICACION DE CLIENTES
Este módulo permite la creación de los clientes en la base de datos, la validación
de los datos del cliente para ingresar a la interfaz principal del prototipo y la
modificación de los datos del cliente en caso que lo requiera. La información es
ingresada y manipulada directamente por el cliente desde el momento en que
descarga la aplicación a su teléfono móvil. La implementación de este módulo está
codificada en una Clase llamada “ClaseCliente.php” donde están incluidos los
atributos principales de la tabla “cliente” de la base de datos, efectuando una
integración con los recursos del sistema gestor de la base de datos y el entorno de
desarrollo creado para la visualización del usuario.
142
7.2.1. Vista del Método Registro de Cliente
ILUSTRACIÓN 47 - VISTA MÉTODO REGISTRAR CLIENTE
FUENTE: LOS AUTORES
143
7.2.2. Vista del Método Logueo de Cliente
ILUSTRACIÓN 48 - VISTA MÉTODO LOGUEO CLIENTE
FUENTE: LOS AUTORES
145
7.3. MODULO DE PRODUCTOS Y CATEGORIAS
El Módulo de Productos permite la gestión de los datos concernientes a los
productos tanto para el ambiente móvil de usuario, como para el ambiente web de
administrador. En el ambiente móvil se permite la visualización de todos los
productos desde varias vistas establecidas según las políticas comerciales del
negocio, que están dadas por la búsqueda de productos, opciones de compra y
las categorías pre-establecidas para éstos. Para el ambiente web, el administrador
del negocio manipula los datos de los productos, ya sea para el ingreso de nuevos
registros o la modificación de los ya existentes.
Este módulo consta de una Interfaz principal donde se visualizan los componentes
más importantes del prototipo, y además es la base sobre la cual se visualizan las
imágenes de todos los productos, con los nombres y los precios extraídos de la
base de datos. Desde esta interfaz es posible que el cliente manipule todos los
recursos de la aplicación en su teléfono móvil, es decir, puede visualizar otras
ventanas, abrir otros módulos, pero siempre obligado a volver ubicarse en esta
vista, donde además es posible iniciar un pedido y verificar su estado hasta su
confirmación.
146
7.3.1. Vista de la Interfaz Principal
ILUSTRACIÓN 50 - VISTA INTERFAZ PRINCIPAL
FUENTE: LOS AUTORES
148
7.3.3. Vista Método Opciones de Compra
ILUSTRACIÓN 52 - VISTA MÉTODO OPCIONES DE COMPRA
FUENTE: LOS AUTORES
150
7.4. MODULO DE CANASTO
La implementación de este módulo tiene como objetivo principal permitir al cliente
la administración de modo temporal del pedido antes de confirmarlo, es decir, le
permite adicionar y restar productos y/o cantidades con tal de poder ajustar el
valor a pagar a sus necesidades. Este módulo está basado en la clase PHP del
mismo nombre e interactúa de modo permanente con el módulo Productos, se
puede visualizar e ingresar a él desde la Interfaz Principal para efectuar las
respectivas modificaciones, o simplemente descartar el pedido o dejarlo para otra
oportunidad.
El modulo Canasto efectúa las operaciones básicas entre los precios y las
cantidades solicitadas, la suma de todos los subtotales y la visualización resumida
de todos los productos que se van almacenando en el canasto. Por medio de este
módulo se almacenan de forma detallada los pre-pedidos de cada cliente, para
que posteriormente sean tomados como base para la confirmación del pedido. El
canasto procesa la información en la tabla “detcanasto” de la base de datos por
medio la clase PHP anteriormente mencionada, registrando la información de los
productos, cantidades y el valor total de las mercancías solicitadas por el cliente.
152
7.5. MODULO DE PEDIDOS
El Módulo de Pedidos es la fase final del proceso de una solicitud del cliente. Este
módulo reúne todos los datos recolectados en los módulos descritos con
anterioridad. La funcionalidad está basada en la case de PHP llamada
“Pedidos.php”, la cual se integra directamente con las tablas “cliente”,
“detcanasto”, “producto” y “pedido”, además se encarga de validar los datos
ingresados por el cliente para que el administrador del negocio pueda efectuar la
entrega del pedido sin complicaciones.
La funcionalidad de este módulo consiste inicialmente en confirmar el pedido
mediante la opción “Pedir” ubicado en la Interfaz Principal. Seguidamente se
visualiza para el cliente el valor total del pedido y se le da la opción de cambiar o
agregar una nueva dirección de entrega. Por último, registra la fecha y hora exacta
del pedido, con un tiempo estimado de entrega y se confirma el despacho de los
productos con el “OK” que lo lleva nuevamente a la interfaz principal, elimina los
datos del canasto y se inicializan las variables utilizadas en el proceso.
154
8. RECURSOS DISPONIBLES
TABLA 52 - RECURSOS DISPONIBLES
Valor ($)
Papeleria - Impresiones 90.000$
Internet 160.000$
Estudiante Leonardo Cubides 300.000$
Estudiante Javier Gómez 300.000$
850.000$
Descripción
Materiales y Suministros
Recurso Humano
Total
FUENTE: LOS AUTORES
TABLA 53- RECURSOS INFORMÁTICOS
Cantidad
Servidor Web para pruebas 1
Computadores Personales para Desarrollo 2
Iphone para Pruebas 1
Samsung Galaxy para pruebas 1
Descripción
FUENTE: LOS AUTORES
155
9. CONCLUSIONES
Al realizar el levantamiento de la información fue de vital importancia el
factor de observación, las encuestas a usuarios y las entrevistas realizadas
a los administradores de los negocios que se dedican a la venta de licores y
productos relacionados. Estas actividades permitieron que los
requerimientos estuvieran acordes con las necesidades del prototipo y se
pudiera efectuar un análisis provechoso en la metodología establecida.
Con la ayuda de los elementos y las herramientas que se usaron para la
diagramación y el análisis de la información fue posible que la organización
y el diseño del prototipo. Con el diseño de los casos de uso y de los
diagramas de secuencia fue posible comprender el detalle funcional del
prototipo.
Al diseñar el Modelo de datos se debe tener en cuenta la forma como van a
interactuar los datos para el entorno móvil y para el entorno web, ya que se
parte de la misma base de datos para las dos interfaces. El Modelo de
datos desarrollado permitió la buena integración del modelo de clases la
implementación de los módulos creados en la etapa de codificación.
156
Al diseñar e implementar el entorno web fue necesario el uso de
herramientas que permitieran la facilidad de uso para el administrador del
negocio, que no se sobrecargaran los datos de la página y que la
actualización de la misma se efectuara de manera automática cada cierto
periodo de tiempo con el fin de poder visualizar las nuevas solicitudes de
clientes.
A través de la implementación del entorno móvil fue posible conocer y usar
componentes y herramientas que facilitan la codificación y la integración de
los datos. El framework utilizado conocido como JQuery Mobile posee
varias características similares al lenguaje HTML, lo cual representó una
ventaja a la hora de crear las distintas vistas obtenidas.
La implementación de un sistema basado en módulos para este tipo de
aplicaciones es adecuado ya que al final se obtiene un diseño organizado y
un desarrollo eficiente sin que se generen costes adicionales al momento
de efectuar consultas a la base de datos. Además este tipo de diseños
facilitan el entendimiento, la codificación y si es el caso, las modificaciones
que se puedan hacer más adelante.
157
10. RECOMENDACIONES
10.1. PRUEBAS DEL APLICATIVO
Para las pruebas del aplicativo tanto móvil como web es recomendable el uso de
una herramienta que brinde resultados comprensibles, que permita correlacionar
diferentes indicadores y sobre todo que el proceso sea en su mayor parte
automático.
En esta caso, se recomienda el uso de una herramienta basada en testeo de
carga, pruebas de rendimiento o estrés, pruebas de base de datos y que realice
diagnósticos del comportamiento de la aplicación en condiciones de producción.
10.1.1. Jmeter
Jmeter es una herramienta Java dentro del proyecto Jakarta, que permite realizar
Pruebas de Rendimiento y Pruebas Funcionales sobre Aplicaciones Web. Jmeter
permite realizar pruebas de carga de un servidor web o alojamiento web, está
desarrollada 100% en Java y es Open Source. El objetivo es grabar un escenario
de pruebas para posteriormente configurarlo con los parámetros de una posible
situación real (por ejemplo, indicar el número de usuarios concurrentes).
158
JMeter se basa en el concepto de “Elemento” (Element) y en una estructura en
“Árbol” (Tree). Cualquier parte o rama del árbol puede ser guardada de forma
independiente, para ser reutilizada en otras pruebas.
Los “elementos” permiten configurar y definir el plan de pruebas.
Elementos jerárquicos:
Listeners (elementos en escucha)
Config Elements (elementos de configuración)
Post-processors (post-procesadores)
Pre-processors (pre-procesadores)
Assertions (afirmaciones)
Timers (cronómetros)
Elementos ordenados:
Controllers (controladores)
Samplers (agentes de pruebas)
Esta herramienta es de fácil uso y obtención, y es recomendable para el testeo de
la aplicación ya que cubre todos los ciclos efectuados en la metodología.
159
BIBLIOGRAFIA Y WEBGRAFIA
Romeo Alfredo y García Juantomás. Cómo seleccionar una plataforma
de desarrollo para un proyecto web. Recuperado Noviembre 3 de 2013.
http://lapastillaroja.net/2013/10/como-seleccionar-plataforma-tecnologica/
García Sorey. Consideraciones para el Desarrollo de Aplicaciones
Móviles. Recuperado Marzo de 2009.
http://www.slideshare.net/soreygarcia/consideraciones-basicas-para-el-desarrollo-
de-aplicaciones-mviles
Olazsrud Thor. Las 10 mejores plataformas de desarrollo de apps
móviles. Agosto 21 de 2012.
http://www.computerworldmexico.mx/Articulos/24813.htm
Rodríguez Txema. ¿Cómo está el panorama de desarrollo de aplicativos
móviles actual? Junio 28 de 2012.
http://www.genbetadev.com/trabajar-como-desarrollador/como-esta-el-panorama-
de-desarrollo-de-aplicaciones-moviles-actual-el-informe-developer-economics-2012-
nos-da-algunas-pistas
Brechot Philippe. Gerente General William Grant & Sons. ¿Colombia es
un mercado de Licores? Noviembre 5 de 2013.
http://m.portafolio.co/economia/%25E2%2580%2598colombia-es-un-mercado-
licores-exigente%25E2%2580%2599
160
Trujillo Renán José Renán. Estudio de Cervezas, Licores, Vinos,
Aperitivos, y Similares. Bogotá, Agosto de 2007. Superintendencia
nacional de Salud.
161
ANEXOS
Anexo 1. Entrevista Número 1
Entrevista
Código 1 Analista Javier Gómez Trejos
Cliente Licores la Cosa Nostra Fecha 11/05/2014
Tipo Recolección de Información Duración 45 minutos
Fuente de Información Cesar Ramírez
¿Cuál es el nombre del establecimiento o negocio?
R/ Licores La cosa Nostra
¿Cuál es la actividad comercial del establecimiento?
R/ Estanquillo
¿Cuáles son los productos o servicios que ofrece el establecimiento?
R/ El estanquillo se centra más en la venta y distribución de licores en el área de la circunvalar
¿Hace cuánto está en funcionamiento el establecimiento?
R/ 8 años
¿Cuántas personas trabajan en el establecimiento y cuáles son sus funciones?
R/ Solo trabaja el propietario y en casos en que necesite salir a realizar alguna diligencia contrata a alguien por turno
¿Cuál es la cobertura Geográfica para la entrega de domicilios?
R/ Solo se cubriría la circunvalar, pinares, álamos y sectores hasta la 35 con 30 de agosto
¿Posee algún mecanismo automatizado para la toma de pedidos?
R/ NO. Todo se realiza por medio telefónico
¿Por favor explicar el proceso detallado de la venta a domicilio?
El establecimiento ya tiene clientes concurrentes que son a los que más se les despacha, llaman y realizan la solicitud vía telefónica y se registra en un Excel y por último se hace el despacho. En cuanto al tema de pedidos en el momento no es el fuerte del establecimiento pero no quiere decir que no se pueda brindar
OBSERVACIONES
Estamos interesados en implementar el app que nos mencionan para hacer que en el estanquillo la parte de domicilios crezca un poco más ya que es una zona de mucho movimiento. El establecimiento ha cambiado de dueño. El dueño actual lleva 8 años con el.
Fuente Analista Revisor
Cesar Ramírez Javier Gómez Javier Gómez
162
Anexo 2. Entrevista Número 2
Entrevista
Código 2 Analista Javier Gómez Trejos
Cliente Licores la cosa Nostra Fecha 11/05/2014
Tipo Recolección de Información Duración 1-2 horas
Fuente de Información Cesar
¿Aproximadamente cuantos domicilios se despachan a diario?
R/ Esto solo se da del miércoles en adelante y solo con clientes concurrentes
¿Cuál es el tiempo estimado para la entrega de domicilios? El cliente lo sabe?
R/ El cliente solicita para que la entrega se realice en el trascurso del día
¿Tienen delimitado un área de cobertura para la entrega de domicilios? Cuál es?
R/ circunvalar y sus alrededores
¿Tienen una persona encargada para la entrega de domicilios
R/ no
¿Cuál es el medio de transporte utilizado para la entrega de pedidos?
R/ Carro
¿El medio de transporte es propiedad del establecimiento o del empleado?
R/ Propiedad
¿Tiene algún monto mínimo de venta para la entrega de pedidos a domicilio?
R/ que superen los $ 50.000 pesos
¿Es recurrente la pérdida de entregas por saturación de pedido? ¿Qué hacen cuando esto sucede?
R/ Como se manejan clientes recurrentes estos inconvenientes no se ven.
¿La entrega de pedidos a domicilio tiene un valor adicional al valor del pedido? Cuánto?
R/ En el momento no cobramos por el domicilio porque los pedidos son realizados a grandes cantidades
¿Qué medio de pago utilizan para la cancelación de los pedidos por parte del cliente?
R/ Efectivo, en consignación y crédito
¿Tiene algún tipo de promoción o descuento para la entrega rápida de domicilios?
R/ No manejamos estos tipo
¿Posee alguna herramienta para el manejo de la información de los clientes? Por favor explicar el manejo de dicha herramienta en caso de poseerla
R/ En el momento todo se realiza a través de Excel y allí quedo todo registrado
¿Maneja crédito para los clientes a los que se les entrega a domicilio?
R/ SI
¿Cuál es el horario de atención para la entrega de domicilios?
R/ Entre las 4 de la tarde y las 8 de la mañana
¿Qué otras restricciones tienen o aplican para la NO entrega de pedidos?
R/ Que el cliente este en mora con el establecimiento. Esto se da cuando son clientes con crédito
163
¿Cuál es el día de la semana que presenta más frecuencia de pedidos a domicilio?
R/ los días miércoles y jueves
¿Cuál es el rango de edad de los clientes que más realizan pedidos?
R/ entre los 30 y 50
¿Por favor comente las principales causas de devolución de pedidos por parte de los clientes?
R/ esto solo se da con clientes que manejan consignación de licores. Porque devuelve el sobrante
¿De qué manera confirman la existencia de mercancía cuando el cliente realiza el pedido?
R/ Se realiza manual o recurrimos a un archivo donde almacenamos el inventario
¿Cómo manejan o controlan el inventario de mercancías del negocio? Explique
R/ Esto se maneja a través de un Excel, donde manejamos toda la información para luego poder de allí sacar reportes contables.
¿Cómo cree usted que se mejorarían las ventas de su negocio por medio de las entregas a domicilio?
R/ promocionando y empleando herramientas tecnológicas que ayuden al cliente hacer este proceso
¿Conoce alguna herramienta sistematizada y personalizada que le permita manejar y controlar los pedidos de los clientes con entregas a domicilio?
R/ Para el área de licores no
¿Conoce o utiliza aplicaciones para celulares que realicen operaciones para algún tipo de transacción comercial o financiera? Que opción le merecen?
R/ NO
¿Cree usted que una aplicación de estas ayudaría a la entrega de domicilios? ¿Cómo la visualiza para su negocio?
R/ Si, primero porque toda persona podría acceder a la aplicación y el negocio se daría mucho más a conocer en el sector donde yo me encuentro ubicado. Segundo me podría ayudar a competir con otros estanquillos del sector que brindan este servicio.
OBSERVACIONES
Estamos interesados en implementar el app que nos mencionan para hacer que en el estanquillo la parte de domicilios crezca un poco más ya que es una zona de mucho movimiento. El establecimiento ha cambiado de dueño. El dueño actual lleva 8 años con el.
Fuente Analista Revisor
Cesar Javier Gómez Javier Gómez
164
Anexo 3. Entrevista Número 3.
Entrevista 3
Código 3 Analista Javier Gómez Trejos
Cliente Licores Marge Fecha 11/06/2014
Tipo Recolección de Información Duración 45 minutos
Fuente de Información Margarita Obando
¿Cuál es el nombre del establecimiento o negocio?
R/ Licores Marge
¿Cuál es la actividad comercial del establecimiento?
R/ Estanquillo
¿Cuáles son los productos o servicios que ofrece el establecimiento?
R/ El estanquillo se centra más en la venta y distribución de licores en el área del centro de la ciudad
¿Hace cuánto está en funcionamiento el establecimiento?
R/ 2 años
¿Cuántas personas trabajan en el establecimiento y cuáles son sus funciones?
R/ Solo trabaja el propietario y en empleado encargado de los domicilios en el sector
¿Cuál es la cobertura Geográfica para la entrega de domicilios?
R/ Solo se cubre el centro de la ciudad
¿Posee algún mecanismo automatizado para la toma de pedidos?
R/ NO. Todo se realiza por medio telefónico
¿Por favor explicar el proceso detallado de la venta a domicilio?
El establecimiento recibe la llamada telefónica, este pedido se anota en un cuaderno donde se anotan todos los domicilios solicitados. En ocasiones dependiendo de la cantidad solicitada se envía de inmediatamente o se espera que al menos haya dos pedidos cercanos en el sector para enviar a la persona de los domicilios.
OBSERVACIONES
Estamos interesados en la implementación de la app que nos mencionan para hacer que en el estanquillo en la parte de domicilios crezca un poco más en el sector donde brindamos el servicio.
Fuente Analista Revisor
Margarita Obando Javier Gómez Leonardo Cubides
165
Anexo 4. Entrevista Número 4.
Entrevista 4
Código 4 Analista Javier Gómez Trejos
Cliente Licores Marge Fecha 11/06/2014
Tipo Recolección de Información Duración 1-2 horas
Fuente de Información Margarita Obando
¿Aproximadamente cuantos domicilios se despachan a diario?
R/ Esto depende del día de la semana, pueden oscilar entre 3 a 15
¿Cuál es el tiempo estimado para la entrega de domicilios? El cliente lo sabe?
R/ Al cliente se le informa que el pedido será entregado en el trascurso de 30 minutos
¿Tienen delimitado un área de cobertura para la entrega de domicilios? Cuál es?
R/ centro de la ciudad
¿Tienen una persona encargada para la entrega de domicilios
R/ si
¿Cuál es el medio de transporte utilizado para la entrega de pedidos?
R/ moto o a pie
¿El medio de transporte es propiedad del establecimiento o del empleado?
R/ Propietario
¿Tiene algún monto mínimo de venta para la entrega de pedidos a domicilio?
R/ que superen los $ 20.000 pesos
¿Es recurrente la pérdida de entregas por saturación de pedido? ¿Qué hacen cuando esto sucede?
R/ No, Cuando hay demasiados pedidos se organizan por rutas y se envian
¿La entrega de pedidos a domicilio tiene un valor adicional al valor del pedido? Cuánto?
R/ No tiene valor adicional
¿Qué medio de pago utilizan para la cancelación de los pedidos por parte del cliente?
R/ Efectivo
¿Tiene algún tipo de promoción o descuento para la entrega rápida de domicilios?
R/ No manejamos
¿Posee alguna herramienta para el manejo de la información de los clientes? Por favor explicar el manejo de dicha herramienta en caso de poseerla
R/ En el momento todo queda anotado en un cuaderno contable
¿Maneja crédito para los clientes a los que se les entrega a domicilio?
R/ No
¿Cuál es el horario de atención para la entrega de domicilios?
R/ Entre las 4 de la tarde y las 6 de la mañana
166
¿Qué otras restricciones tienen o aplican para la NO entrega de pedidos?
R/ La única restricción es cuando el pedido es inferior a 20.000 mil pesos, no se envía
¿Cuál es el día de la semana que presenta más frecuencia de pedidos a domicilio?
R/ los días miércoles y jueves, viernes y sábado
¿Cuál es el rango de edad de los clientes que más realizan pedidos?
R/ entre los 20 y 50
¿Por favor comente las principales causas de devolución de pedidos por parte de los clientes?
R/ No hemos experimentado este caso, los domicilios siempre son efectivos y de acuerdo a lo solicitado por el cliente
¿De qué manera confirman la existencia de mercancía cuando el cliente realiza el pedido?
R/ Se mira en el stand si hay el producto solicitado y se informa al cliente via telefónica
¿Cómo manejan o controlan el inventario de mercancías del negocio? Explique
R/ Todo producto vendido esta anotado en un cuaderno contable y a fin de mes se revisan los recibos de caja para hacer un balance
¿Cómo cree usted que se mejorarían las ventas de su negocio por medio de las entregas a domicilio?
R/ promocionando y empleando herramientas tecnológicas que ayuden al cliente hacer este proceso, así agilizaría más la solicitud de pedidos.
¿Conoce alguna herramienta sistematizada y personalizada que le permita manejar y controlar los pedidos de los clientes con entregas a domicilio?
R/ Para el área de licores no
¿Conoce o utiliza aplicaciones para celulares que realicen operaciones para algún tipo de transacción comercial o financiera? Que opción le merecen?
R/ NO
¿Cree usted que una aplicación de estas ayudaría a la entrega de domicilios? ¿Cómo la visualiza para su negocio?
R/ Si, porque ya todo el mundo tiene un Smartphone en sus manos y es más cómodo para que realicen sus pedidos desde el lugar donde estén ubicados.
OBSERVACIONES
Tener en cuenta que la aplicación debe ser de fácil manejo
Fuente Analista Revisor
Margarita Obando Javier Gómez Leonardo Cubides
167
Anexo 5. Encuesta
¿En qué parte realiza la compra de Licores y productos relacionados para sus
fiestas o para su negocio? *
o Supermercado
o Estanquillo
o Distribuidora
o Tienda
o Otros:
¿Cuándo compra Licores o productos similares, la entrega es a domicilio? *
o Nunca
o Siempre
o A veces
¿De qué forma adquiere o compra Licores para sus fiestas, o para su negocio? *
o Telefónica
o Página Web
o Aplicación Móvil
o Directa
¿Cuál cree que es el tiempo adecuado para la entrega de un pedido a domicilio? *
o Dos Horas
o Una Hora
o Media Hora
o Cuarto de Hora
¿Considera que si el tiempo de entrega es mínimo se debe cobrar por el domicilio? *
o Si
168
o No
¿Con qué frecuencia usted compra Licores para sus fiestas personales o para su negocio? *
o Una vez al mes
o Una vez por semana
o Dos veces por semana
o Tres veces por semana
o A Diario
¿Conoce alguna aplicación para teléfonos celulares que le permita comprar licores y/o productos de estanquillo a domicilio en su ciudad? *
o Si
o No
¿Utiliza alguna aplicación (App) para la compra de Licores a domicilio para sus fiestas personales o para su negocio? *
o Si
o No
¿Qué Sistema Operativo usa en su celular? *
o Iphone (IOS)
o BlackBerry
o Android
o Windows Phone
o Otro
¿Le gustaría adquirir una aplicación en su celular que le permita comprar Licores a domicilio igual que en su punto de venta preferido? *
o Si
o No
169
Adicional a las compras, ¿Qué otros servicios le gustaría que le brindara dicha aplicación? *
o Registro de sus datos personales
o Estado de sus pedidos
o Consulta de sus compras
o Visualización de Portafolio de productos
o Visualización de Ofertas y/o Descuentos
o Pagos on-line
o Otros:
Indique que otro servicio le gustaría que le brindara esta aplicación. *
174
TABLA DE CONTENIDO
CONTROL DE VERSIONES ...................... ¡ERROR! MARCADOR NO DEFINIDO.
1. ACUERDO DE CONFIDENCIALIDAD .......................................................... 176
2. OBJETIVO ........................................... ¡ERROR! MARCADOR NO DEFINIDO.
3. REGISTRO ................................................................................................... 178
4. LOGIN ........................................................................................................... 179
5. PÁGINA PRINCIPAL .................................................................................... 180
6. BÚSQUEDA .................................................................................................. 181
7. CATEGORÍAS .............................................................................................. 182
8. BOTÓN OPCIONES ..................................................................................... 183
9. PRODUCTOS ............................................................................................... 184
10. CANASTO .................................................................................................... 185
11. CONFIRMACIÓN .......................................................................................... 186
12. PERFIL ......................................................................................................... 188
175
Control de Versiones
Fecha (Año/mes/día)
Autor(es) Descripción Revisado por Versión
2014-11-11 Oscar Javier
Gómez T. Creación del Manual de
USUARIO Leonardo Cubides.
1.0
176
Acuerdo de confidencialidad
El receptor de este documento debe leer detenidamente este capítulo y determinar si está de acuerdo con lo escrito, de no estarlo debe eliminar de manera inmediata este documento, el medio electrónico o físico que lo contenga.
Este documento es entregado con la certeza de que el tenedor tiene y asume la responsabilidad de guardar el secreto y la confidencialidad de todos los datos recogidos en él, así como las ideas y planteamientos producto de las reuniones con el objeto de hacer seguimiento a la ejecución del proyecto. Igualmente tiene y asume su correcta y diligente custodia en orden a evitar que trascienda total o parcialmente a cualquier persona o entidad que no se encuentre involucrada en el proyecto. La mera tenencia de este documento significa que el tenedor acepta su responsabilidad. Aun así, podrá ser responsable de todos los daños y perjuicios que para el autor del documento se deriven como consecuencia del incumplimiento doloso o culposo de dicho deber de custodia, privacidad y confidencialidad.
177
Objetivo
El principal objetivo de este manual es brindar un apoyo a los usuarios en el manejo y uso de la aplicación móvil dentro de su negocio.
178
Registro
Este documento puede contener información técnica, por lo tanto, se recomienda
que para un mayor entendimiento sea leído por una persona con conocimientos
previos en sistemas.
El módulo de registro es el que permite a cualquier usuario que desee utilizar la
aplicación móvil inscribirse en el sistema para poder realizar pedidos
posteriormente.
Nombre y apellido con el
que se va registrar
Indica si es una persona natural o
jurídica. Esto se solicita para identificar el
tipo de cliente que se está registrando
Numero de celular de contacto
Número fijo de contacto
Correo electrónico el cual se utilizara
como dato para el momento del logueo
Ingreso del password con el que se va
acceder a la aplicación al momento del
logueo
Dirección con la cual se registra en
nuestro sistema para el envió de sus
pedidos
Botón que aplica el registro en el
sistema
179
Login
La opción de login permite a todo cliente registrado dentro de la aplicación poder
ingresar y efectuar pedidos.
Correo electrónico que registro al
momento de registrarse
Password o clave de acceso que
ingreso en el registro
180
Página Principal
La página principal de la aplicación móvil es donde se muestran los productos y
opciones que la aplicación brinda al usuario para su navegación.
Nota: Las opciones se detallan en este mismo manual más abajo
Opción que permite realizar búsqueda de
productos personalizada.
Opción Que permite visualizar todas las
categorías en una sola pantalla
Opciones permite visualizar algunas
estrategias comerciales ofrecidas dentro de
la aplicación
Sección de productos donde el cliente
podrá ir visualizándolos solo deslizando su
dedo sobre la pantalla de lado a lado
Información del valor del pedido o
productos seleccionados
“Nosotros” es una opción donde el
proveedor puede mostrar al usuario una
reseña de quien es o cuál es su misión visión
del negocio.
“perfil” es una opción que da acceso a los
datos personales del usuario
“Pedidos” da acceso al módulo de pedidos
donde se podrá observar la información
detallada de los pedidos
181
Búsqueda
La opción de búsqueda permite al usuario realizar búsquedas personalizadas. Por
ejemplo si ya tiene identificado el producto que desea consultar puede ingresar el
nombre en este cuadro y el sistema mostrara los resultados obtenidos.
.
Dentro de este cuadro es donde el usuario
ingresa la palabra del producto que desea
buscar específicamente.
182
Categorías
La opción de categorías permite al usuario seleccionar una, donde podrá ir a
visualizar la información de la categoría seleccionada. Esta es una forma en que el
usuario puede navegar dentro de la aplicación y buscar el producto de su interés.
Las siguientes imágenes muestran que la opción tiene un listado de categorías y
al seleccionar una se mostrara en pantalla la seleccionada.
183
Botón Opciones
Este botón permite al proveedor mostrar al usuario promociones, combos u ofertas
que se ofrecen dentro de la aplicación móvil.
Cuando el usuario de click en esta opción el sistema va mostrar una ventana para
que el cliente escoja uno de los ítems que más se adapten a su búsqueda. La
siguiente imagen muestra lo mencionado anteriormente
184
Productos
Acá se muestra toda la información detallada de un producto seleccionado
después de una búsqueda realizada a través de la aplicación.
Información detallada del producto
Imagen del producto
Este slide permite al usuario seleccionar la
cantidad que desea adquirir de un producto.
Solo debe arrastrar el slide de izquierda a
derecha
185
Canasto
El canasto es la opción dentro de la aplicación móvil donde los clientes que se
encuentren registrados podrán visualizar los detalles de los pedidos que han
realizado a través de la app.
Cuando el cliente consulta el canasto puede visualizar el detalle de lo que va
solicitar por medio de la app, puede ver los precios, el producto y la cantidad.
También puede quitar de la lista, añadir más productos o limpiar el canasto
definitivamente.
Detalle de los productos seleccionados
durante la búsqueda
Al dar clic pueden quitar de la lista un
producto
Limpia todo el canasto
Guarda lo que hay en el canasto para
posterior realizar el pedido
186
Confirmación
La confirmación es el proceso antes del pedido donde el usuario confirma la
dirección donde va ser entregado su pedido.
Dentro del sistema el usuario puede registrar en su perfil las direcciones que el
más utilice más frecuentemente para poder utilizarlas al momento de realizar un
pedido. Obsérvese la siguiente imagen de cómo se verían varias direcciones
registradas en el perfil de un usuario.
Acá se debe confirmar la dirección de
entrega del pedido.
Cuando todo está confirmado realizamos el
pedido dando clic acá
188
Perfil
El perfil del usuario se diseñó para que el usuario pueda acceder a sus datos
personales y también pueda agregar direcciones concurrentes para ser utilizadas
de manera dinámica a la hora de realizar un pedido
En este campo el usuario puede registrar las
direcciones que él más utiliza al momento
de realizar pedidos a través de la aplicación
móvil
190
CONTROL DE VERSIONES
Fecha
(Año/mes/día) Autor(es) Descripción Revisado por Versión
2014-11-28 Oscar Javier
Gómez T.
Creación técnico de
APLIACIÓN MOVIL
Leonardo
Cubides. 1.0
191
Acuerdo de confidencialidad
El receptor de este documento debe leer detenidamente este capítulo y determinar
si está de acuerdo con lo escrito, de no estarlo debe eliminar de manera inmediata
este documento, el medio electrónico o físico que lo contenga.
Este documento es entregado con la certeza de que el tenedor tiene y asume la
responsabilidad de guardar el secreto y la confidencialidad de todos los datos
recogidos en él, así como las ideas y planteamientos producto de las reuniones
con el objeto de hacer seguimiento a la ejecución del proyecto. Igualmente tiene y
asume su correcta y diligente custodia en orden a evitar que trascienda total o
parcialmente a cualquier persona o entidad que no se encuentre involucrada en el
proyecto. La mera tenencia de este documento significa que el tenedor acepta su
responsabilidad. Aun así, podrá ser responsable de todos los daños y perjuicios
que para el autor del documento se deriven como consecuencia del
incumplimiento doloso o culposo de dicho deber de custodia, privacidad y
confidencialidad.
192
INTRODUCCIÓN
La finalidad de este manual técnico es la de proporcionar al lector la lógica con la
que se ha desarrollado la aplicación, la cual se sabe que es propia de cada
programador; por lo que se considera necesario ser documentada.
Aclarando que este manual no pretende ser un curso de aprendizaje de cada una
de las herramientas empleadas para el desarrollo de la aplicación, sino
documentar su aplicación en el desarrollo móvil.
La implementación de un prototipo para la venta de licores a domicilio en
ambientes móviles se basa en una adaptación para teléfonos móviles ya que se
ha comprobado que conforme avanza la tecnología estos dispositivos cada vez
adquieren mejor funcionamiento y mejor adaptabilidad a las diferentes tecnologías
en este caso la móvil, por ello muchas personas han preferido este tipo de
dispositivos ya que son más prácticos y fácil de llevar debido a su tamaño y peso.
La aplicación móvil busca facilitar la comercialización y adquisición de productos
de estanquillo a través de tecnologías móviles como son los Smartphone.
Dispositivo que se ha ido convirtiendo actualmente en la herramienta preferida por
los usuarios.
193
Aspectos del análisis
Herramientas tecnológicas
Estas nuevas tecnologías involucran nuevos paradigmas de programación,
modelado de contenidos, herramientas multimedia, herramientas de conectividad
a bases de datos, herramientas de seguridad y hardware.
El prototipo se puede utilizar en cualquier sistema operativo móvil, sea Android,
IOS, Windows pone, porque la aplicación está desarrollada en jQuery Mobile que
es un framework desarrollado por JQuery que combina HTML5 y jQuery para la
creación de portales web móviles. Nos permite generar aplicaciones cuya
apariencia será siempre la misma independientemente del dispositivo desde el
que acceda un usuario, siempre y cuando el dispositivo acepte HTML5. Una de
las ventajas que se presentan en este tipo de tecnología es que tiene mayor
portabilidad y por eso muchos usuarios la utilizan.
El administrador web que es el que permite administrar el contenido que aparece
dentro del prototipo móvil puede ser visualizado desde cualquier explorador ya que
está desarrollado bajo PHP, JavaScript, Css3 y HTML5 los cuales cualquier
navegador actual soporta.
194
Especificaciones Técnicas
Sistema operativo: No importa ya que es un prototipo desarrollado para que
opere en cualquier sistema operativo móvil que soporte HTML5
Manejador de base de datos: MySql
Lenguajes de Programación utilizados para el desarrollo móvil y web:
PHP, HTML5, Css3, JavaScript, Framework de JQuery Mobile
Servidor de aplicaciones: Servidor que permita ejecutar un Servidor web
apache 2.1
Navegador Web: el administrador web puede ser ejecutado en cualquier
explorador
Teléfono celular: Cualquier Smartphone que soporte HTML5 y tenga acceso app
Store para poder descargar la aplicación móvil.
195
Diccionario de Datos
Las tablas a utilizar se manejaran en las tablas ya existentes de la base de datos
de la aplicación móvil las cuales son categoría, ciudad, cliente, DetCanasto,
dirección, Estado, ListaPrecios, Pedido, Prod_lista, Producto, TipoCliente, Usuario.
Tabla 1 - Categoría
Campo Tipo Nulo Comentarios
id_cat Varchar(10) No Identificador de la tabla categoría
nom_cat Varchar(50) No Nombre asignado a la categoría
desc_cat Varchar(200) No Descripción asignada a la categoría
Tabla 2- Ciudad
Campo Tipo Nulo Comentarios
id_ciudad Varchar(10) No Identificador de la tabla Ciudad
nom_ciudad Varchar(200) No Nombre asignado a la Ciudad
Tabla 3 - Cliente
Campo Tipo Nulo Comentarios
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
id_tipcli Varchar(10) No Identificador de la tabla Tipo_cliente (Llave Foránea)
nom_cliente Varchar(100) No Nombres registrados por el cliente
ape_cliente Varchar(100) No Apellidos registrados por el cliente
nomcial_cliente Varchar(500) No Nombre comercial del cliente, en caso que requiera
cel_cliete Varchar(50) No Número teléfono celular registrado por el cliente
tel_cliete Varchar(50) No Número teléfono fijo registrado por el cliente
mail_cliente Varchar(200) No Correo electrónico registrado por el cliente
pwd_cliente Varchar(100) No Password de ingreso registrada por el cliente
id_est Char(1) No Identificador de la tabla estado para Cliente
id_lista Varchar(10) No Identificador de la tabla ListaPrecios
196
Tabla 54 - DetCanasto
Campo Tipo Nulo Comentarios
id_detalle Int(11) No identificador del canasto autoincrementable
id_prod Varchar(10) No Identificador de la tabla productos
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
nom_cliente Varchar(200) No Nombres y Apellidos cliente
nom_prod Varchar(100) No Nombre asignado al producto
cant_prod Float No Cantidad de unidades resgistradas por el cliente
precio_prod Float No Precio asignado al producto
subt_prod Float No Cantidad de producto por el precio asignado
id_est Char(1) No Identificador de la tabla estado para detcanasto
Tabla 5 - Dirección
Campo Tipo Nulo Comentarios
id_dir Int(11) No identificador de tabla, autoincrementable
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
dir_cliente Varchar(500) No Dirección asignada por el cliente
id_ciudad Varchar(10) No Identificador de la tabla Ciudad
id_est Char(1) No Identificador de la tabla estado para Dirección
Tabla 6 - Estado
Campo Tipo Nulo Comentarios
id_est Char(1) No Identificador de la tabla Estado
nom_est Varchar(50) No Nombre asignado para el estado
desc_est Varchar(200) No Descripción asignada al Estado
Tabla 7 - ListaPrecios
197
Campo Tipo Nulo Comentarios
id_lista Varchar(50) No Identificador de la Lista de Precios
nom_lista Varchar(100) No Nombre asignado para la Lista de Precios
Tabla 8 - Pedido
Campo Tipo Nulo Comentarios
id_ped Int(11) No identificador de tabla, autoincrementable
id_detalle Int(11) No identificador del canasto autoincrementable
id_cliente Varchar(50) No Identificador del ciente - Cédula Ciudadanía
nom_cliente Varchar(200) No Nombres y Apellidos cliente
dir_ped Varchar(500) No Dirección asignada por el cliente
fechora_ped Datetime No Fecha y Hora en que se registró el pedido
valor_ped Float No Valor total del Pedido
id_est Char(1) No Identificador de la tabla estado para Pedido
id_user Varchar(50) No Identificador del Usuario que administra el Pedido
nom_user Varchar(200) No Nombre del Usuario que administra el Pedido
observ_ped Varchar(300) No Observación adicional sobre el pedido
Tabla 9 - Prod_Lista
Campo Tipo Nulo Comentarios
id_prod Varchar(10) No Identificador de la tabla productos
id_lista Varchar(50) No Identificador de la Lista de Precios
precio_prod Float No Valor asignado al producto según la Lista Precios
Tabla 10 - Producto
198
Campo Tipo Nulo Comentarios
id_prod Varchar(10) No Identificador asignado a cada producto
nom_prod Varchar(100) No Nombre asignado a cada producto
desc_prod Varchar(300) No Descripción mas detallada acerca del Porducto
img_prod Varchar(300) No Describe la ruta de ubicación de la imagen
id_cat Varchar(10) No Identificador de la categoría del Producto
id_est Char(1) No Identificador del estado del Producto
Tabla 11 - TipoCliente
Campo Tipo Nulo Comentarios
id_tipcli Varchar(10) No Identificador asignado para el tipo de cliente
nom_tipcli Varchar(100) No Nombre asignado al tipo de cliente
Tabla 12 - Usuario
Campo Tipo Nulo Comentarios
id_user Varchar(20) No Identificador asignado al usuario - Cédula
nom_user Varchar(100) No Nombre registrado por el usuario
ape_user Varchar(100) No Apellido registrado por el usuario
pwd_user Varchar(100) No Password de ingreso registrado por el Usuario
id_est Char(1) No Identificador del estado para el Usuario
199
A continuación se muestra el diagrama de clases para que el lector del manual
pueda tener una imagen global de la estructura utilizada.
200
Instalación de aplicaciones
Para la instalación del administrador web se debe instalar un servidor apache. Se
utiliza el Xampp ya que permite instalar varios servicios necesarios a la vez y
administrarlos a través de su panel de control.
Instalación app en Smartphone
Para la instalación de la aplicación móvil en un Smartphone, solo se debe ingresar
a Play Store, buscar la aplicación con el nombre que se haya publicado y
descargar la app en el móvil. La app se instalara automáticamente en el
dispositivo.
Instalación Xampp
Se debe descargar Xampp 1.8.3 desde la página del proveedor preferiblemente.
Se recomienda descargarlo desde la siguiente Url www.apachefriends.org.
Cuando ya se haya descargado el instalador procedemos a colocar en marcha el
instalador el cual nos mostrara dos avisos.
El primero pregunta que si tenemos corriendo un antivirus corriendo en el servidor
es mejor inactivarlo durante la instalación.
201
El segundo aparece si está activado el control de cuentas de usuario y recuerda
que algunos directorios tienen permisos restringidos.
A continuación se inicia el asistente de instalación.
202
Los componentes mínimos que instala xampp son el servidor apache y el lenguaje
PHP, pero Xampp también instala otros elementos. En la pantalla de selección de
componentes se puede elegir cuales son los que necesitamos. En este caso
MySql, PhpMyAdmin.
207
Por ultimo se nos pide finalizar la instalación y si queremos abrir el panel de
control dejamos la casilla activa.
208
El panel de control de Xampp se puede acceder mediante el menú inicio-todos los
programas-Xampp-Xampp control panel.
Cuando abrimos el panel de control debemos iniciar los servicios que vamos a
necesitar para poder acceder sin problemas a la aplicación web.
Iniciamos Apache y MySql
209
Después de haber inicializado los servicios, se abre el explorador y se coloca en la
barra Localhost/Xampp. Y escogemos el idioma con que deseamos trabajar.
210
Una vez elegido el idioma Xampp nos mostrara el panel de administración web
Dentro de este panel web podremos administrar la base de datos utilizada para el
funcionamiento de la aplicación móvil y del administrador web.
211
Funcionamiento de la aplicación en ambientes Móviles
A continuación se mostrara cada uno de los módulos que se visualizan dentro del
prototipo de aplicación móvil. También se nombrara el archivo que contiene el
código que hace posible su funcionamiento.
Especificación de los módulos
Vista del método registro de cliente
212
ARCHIVO INGRESO.php
<?php
include("ClaseCliente.php");
$Id=$_POST["TxtId"];
$Nom=$_POST['TxtNom'];
$Ape=$_POST['TxtApe'];
$NCial=$_POST['TxtNCial'];
$Cel=$_POST['TxtCel'];
$Tel=$_POST['TxtTel'];
$Mail=$_POST['TxtMail'];
$Pwd=$_POST['TxtPwd'];
$Dir=$_POST['TxtDir'];
$Tip="TP1";
$Est="1";
$List="L1";
$Cli = new Cliente();
$Cli-
>ConstructorCliente($Id,$Tip,$Nom,$Ape,$NCial,$Cel,$Tel,$Mail,$Pwd,$Est,$
List);
$Res=$Cli->RegistrarCliente();
$Cli->RegistrarDireccion($Id,$Dir);
if($Res==0)
213
header('Location: FrmIngreso.php');
else
header('Location: Principal.php');
?>
Vista del método de Logueo de cliente
214
Para el logue de cliente se debe validar en la base de datos que el usuario se
encuentre registrado en el sistema.
ARCHIVO Login.php
<?php
session_start();
include_once("ClaseCliente.php");
$User=$_POST['TxtId'];
$Pwd=$_POST['TxtPwd'];
$Cli = new Cliente();
$Res=$Cli->LoguearCliente($User,$Pwd);
$CadSql="SELECT * FROM producto P, prod_lista L
WHERE P.id_prod=L.id_prod and L.id_lista='L1'";
if($Res==1)
{
$_SESSION['id_cliente'] = $User;
$_SESSION['CadSql'] = $CadSql;
header('Location: Principal.php');
}
else
header('Location: index.php');
?>
215
Vista del método modificar cliente
Modificar cliente utiliza una función que permite realizar actualizaciones en la base
de datos cuando el usuario realizar cambios en sus datos personales o datos
ingresados al momento de registrarse.
216
ARCHIVO claseCLiente.php
public function ModificarDatosCliente()
{
$Db = new DbGestor();
$Db->Abrir();
$SqlConsulta = "UPDATE cliente SET nom_cliente='$this-
>nom_cliente', ape_cliente='$this->ape_cliente', nomcial_cliente='$this-
>nomcial_cliente',
cel_cliente='$this->cel_cliente',
tel_cliente='$this->tel_cliente', mail_cliente='$this->mail_cliente',
pwd_cliente='$this->pwd_cliente'
WHERE id_cliente='$this->id_cliente'";
$Db->Sql($SqlConsulta);
$Db->Cerrar();
}
217
Vista de la interfaz Principal
<?php
session_start();
include("ClaseProducto.php");
include("ClaseCliente.php");
$Prod = new Producto();
$CadSql=$_SESSION['CadSql'];
218
$Id=$_SESSION['id_cliente'];
$ArrP=array();
$ArrP=$Prod->MostrarProductos($CadSql);
$Cant=count($ArrP);
?>
<html>
<head>
<title>Principal</title>
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=no">
<link rel="stylesheet" type="text/css" href="Jquery/jquery.mobile-
1.4.2.css"/>
<link rel="stylesheet" type="text/css"
href="Jquery/jquery.mobile.structure-1.4.2.css"/>
<link rel="stylesheet" type="text/css"
href="Jquery/jquery.mobile.theme-1.4.2.css"/>
<script type="text/javascript" src="Jquery/jquery-
1.11.0.min.js"></script>
<script type="text/javascript" src="Jquery/jquery.mobile-
1.4.2.min.js"></script>
</head>
<body>
<div data-role="page" id="PrincipalPedidos">
<div data-role="header" data-theme="a" data-position="fixed">
<div data-role="navbar" data-theme="a">
<ul>
<li><a href="Buscar.php" class="ui-btn-active" data-
transition="flip" data-icon="help" data-rel="dialog">Buscar</a></li>
219
<li><a href="Categorias.php" data-transition="flip" data-
iconpos="right" data-icon="grid" data-rel="dialog">Categoria</a></li>
<li><a href="Opciones.php" data-transition="flip" data-
iconpos="right" data-icon="star" data-rel="dialog">Opciones</a></li>
</ul>
</div>
</div>
<!-- ********** Cuerpo de la Pagina ************* -->
<div data-role="main" class="ui-content">
<div class='ui-grid-b' align='center'>
<?php
for($i=0;$i<$Cant;$i++)
{
echo "<div class='ui-block-b'><a
href='SeleccionarProd.php' data-rel='dialog'><img style='width: 55px;
height: 85px;' alt='' src='Imagenes/".$ArrP[$i]['img_prod'].".jpg'></a>";
$_SESSION['SelProd'] = $ArrP[$i]['id_prod'];
echo "<div style='font-weight: bold; font-
family: Arial; color: black;'
class='imgCaption'><small><small><small>".$ArrP[$i]['nom_prod']."
$".$ArrP[$i]['precio_prod']."</small></small></small></div></div>";
}
?>
</div>
</div>
<!-- *********************** -->
<div data-role="footer" data-position="fixed" class="ui-bar" data-
position="fixed">
220
<hr>
<div data-theme="a">
<fieldset class="ui-grid-a" align="center" data-theme="a">
<div class="ui-block-a"><a href="Canasto.php" data-
rel="dialog"><img style="width: 35px; height: 50px;" alt=""
src="Imagenes/Carro_de_Licores.jpg"></a>
<div style="font-weight: bold; font-family: Arial;
color: red;" class="imgCaption">
<small><small>Valor Pedido: $
111.500</small></small></div></div><br>
<div class="ui-block-b"><a href="Pedido.php" data-
role="button" data-theme="b" data-rel="dialog">Pedir</a>
<center><small><small><small>Prohibase el
expendio de bebidas embriagantes a menores de
edad</small></small></small></center>
</div>
</fieldset>
</div>
<hr>
<div data-role="navbar" data-theme="c">
<ul>
<li><a href="Nosotros.php" class="ui-btn-active" data-
transition="flip" data-iconpos="right" data-
rel="dialog">Nosotros</a></li>
<li><a href="FrmModPerfil.php" data-transition="flip"
data-iconpos="right" data-rel="dialog">Perfil</a></li>
<li><a href="MisPedidos.php" data-transition="flip" data-
iconpos="right" data-rel="dialog">Pedidos</a></li>
</ul>
</div>
</div>
</div>
221
Vista Método Buscar
El método Buscar permite realizar una búsqueda especifica dentro de la aplicación
móvil. El archivo que permite realizar este proceso es Buscar.php y
BuscarProducto.php
222
Vista método opciones de compra
La opción de compra es un módulo donde se pueden cargar combos, descuento u
ofertas que el proveedor quiera promocionar a través de la aplicación al usuario
final dándole así otra idea de compra o permitiéndole acceder a promociones que
lo beneficien
223
Archivo BuscarOpcion.php
<?php
session_start();
$Opc=$_POST["Opciones"];
$CadSql="SELECT * FROM producto P, prod_lista L
WHERE P.id_prod=L.id_prod and L.id_lista='$Opc'";
$_SESSION['CadSql'] = $CadSql;
header('Location: Principal.php');
?>
Vista Método Categorías
224
Categorías es una funcionalidad dentro de la aplicación móvil que permite al
usuario ver de otra forma los productos ofrecidos a través del sistema.
ARCHIVO Categorias.php
<?php
include("ClaseProducto.php");
session_start();
$Pro = new Producto();
$ArrCat=array();
$ArrCat=$Pro->CargarCategorias();
$cant=count($ArrCat);
?>
<html>
<head>
<title>Categorias</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div data-role="page" id="Buscar">
<div data-role="header" data-theme="b">
<h1>Categorias</h1>
</div>
<div data-role="content" data-theme="a">
<form action="BuscarCategoria.php" method="post" >
<select id="Categorias" name="Categorias" data-native-menu="false"
data-theme="b">
<option>Lista de Categorias</option>
<?php
225
header("Content-Type: text/html;charset=utf-8");
for ($i=0; $i<$cant; $i++)
{
echo "<option
value=".$ArrCat[$i]['id_cat'].">".$ArrCat[$i]['nom_cat']."</option>";
}
?>
</select>
<input type="submit" name="Categoria" value="Ok" data-theme="a" data-
icon="check" data-iconpos="right" data-inline="true"></b>
</form>
</div>
226
Módulo de canasto
El canasto es el modulo donde el usuario puede visualizar los productos que ha
seleccionado y que desea adquirir. Puede ver el precio, la descripción, seleccionar
la cantidad que va solicitar, puede agregar y quitar de la lista.
En el archivo Canasto.php se encuentra el código que hace posible visualizar los
productos agregados al canasto.
227
Vista Método Pedir
Esta opción permite al cliente confirmar sus datos para el envió de su pedido.