Story Transcript
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA
PROYECTO FIN DE CARRERA
APLICACIÓN WEB PARA LA GESTIÓN DE LA CARTERA DE CLIENTES
AUTOR:
JAVIER JAIME ELIZAGARAY LÓPEZ MADRID, Septiembre 2006
Quiero agradecer la ayuda que he recibido por parte de mi familia tanto en el proyecto como en mi vida, porque sin ellos no habría llegado hasta donde estoy.
Aplicación web para la gestión de una cartera de clientes
III
RESUMEN DEL PROYECTO
Es una aplicación web que trata de gestionar toda la información a la que un comercial debe tener acceso para realizar las distintas tareas. Se intenta dar un acceso a esta información de una manera cómoda y directa, pretendiendo obtener el mayor rendimiento a la gestión de la información. Ésta se actualizará de forma automática pudiendo cada usuario, dependiendo de sus privilegios, acceder a la información y en ningún caso pudiendo quedar obsoleta.
Cada usuario, que puede ser comercial, directivo o administrador, se conectará a la aplicación y tendrá acceso a la información que su perfil le permita.
Dependiendo de cada perfil tendrán unos accesos u otros:
Comercial: tendrá acceso a los clientes que tiene asignados y a las ventas que realice.
Directivo: tiene acceso a toda la información de los clientes, comerciales, ventas, informes, planes de cuenta.
Administrador: es el encargado de gestionar los usuarios, altas, bajas y modificaciones.
Común para todos habrá un servicio de mensajería, cada uno tiene la posibilidad de enviar mensajes al resto de los usuarios.
Aplicación web para la gestión de una cartera de clientes
IV
En la parte de informes, se puede tener acceso a información más especifica del negocio, como puede ser:
Planes de Cuenta.
Informes jerárquicos.
Informes de cada producto.
Informes de cada cliente.
Informes de cada comercial.
Los informes jerárquicos, cliente, producto y comercial, proporcionan resultados según las ventas que se han ido generando, indicando mediante gráficos y tablas, las ventas totales, semanales, mensuales y trimestrales que se realizan en la empresa. De esta forma, el directivo, tiene acceso a una información de una forma directa y sintetizada, gracias a la cual puede ver el estado de la empresa, lo que va a facturar, el rendimiento de sus comerciales, de sus productos, etc.
Es una aplicación segura ya que sólo pueden tener acceso los trabajadores de la empresa, para ello es necesario ponerse en contacto con el administrador. El administrador podrá, desde la aplicación, dar acceso a las personas autorizadas.
Aplicación web para la gestión de una cartera de clientes
V
ABSTRACT
It is a web application that consists on managing all the information to which a sales force person must have access to develop his different duties. The purpouse is to provide with access to this information in an easy and straight way. And therefore to gain the best performance of the knowledge management. This information will be automaticatlly updated and each user, depending on their priviledges, will have access to the information that in any case will not be obsolete.
Each user, who could be sales person, executive or administrator, will contact to the application and will have access to the information that his/her profiles afford him.
Depending on each user profile, the kind of supplied information will be different.
Sales force people: The application will provide them with information about allocated clients and the sales figure.
Executives: The application will provide them with information about clients, sales force people, reports, account plans, etc.
Administrators: is the person in charge of the management of the user, discharges, leaves,etc.
Aplicación web para la gestión de una cartera de clientes
VI
All this staff will be supported by a shared courier service, within each member has the possibility of sending messages and information to the rest of the users. On the behalf of the reports, we can have access to the more specific information:
Account Plans.
Hierarchical report.
Reports of each product.
Reports of each client.
Reports from each member of the sales force staff.
The hierarchical reports, client, product and sales force people, provide with results according to the sales figures that have been created and appoint through graphs and tables the weekly, monthly and quarterly whole sales that have been achieved by the company. Therefore, the executive has access to the information in a straight and synthesized way and it affords him to know what is the company situation, predict the sales figures, evaluate sales force staff and products performance, etc.
This is a safe application because the only peole who are allowed to have access to it are the company workers, and to have this permission is necessary to contact with the administrator. This person, through the application, will provide with access to the authorized people.
Aplicación web para la gestión de una cartera de clientes
VII
ÍNDICE 1.
2.
3.
IDENTIFICACIÓN DE NECESIDADES ..................................................... 2
Objetivos del sistema. ............................................................................ 3
Alcance del sistema................................................................................ 4
Tipología de los usuarios finales. ........................................................... 4
Restricciones.......................................................................................... 6
Organización y funciones empresariales................................................ 6
Antecedentes. ........................................................................................ 7
ANÁLISIS DE REQUISITOS ..................................................................... 9
Requisitos del sistema.......................................................................... 12
Modelo lógico ....................................................................................... 36
ESTUDIO DE ARQUITECTURA ............................................................. 38 PHP – MYSQL – APACHE................................................................... 42
4.
5.
PHP.................................................................................................. 42
MySQL 4: ......................................................................................... 45
APACHE .......................................................................................... 47 Estructura hardware y software............................................................ 49
DISEÑO EXTERNO................................................................................. 56
Entorno operativo del sistema .............................................................. 57
Interfaz de usuario................................................................................ 61
DISEÑO INTERNO .................................................................................. 67
Tabla Clientes. ..................................................................................... 69
Tabla Comerciales................................................................................ 71
Tabla Mensajes. ................................................................................... 72
Aplicación web para la gestión de una cartera de clientes
VIII
6.
7.
Tabla Planes. ....................................................................................... 73
Tabla Productos. .................................................................................. 78
Tabla Usuarios. .................................................................................... 78
Tabla Ventas ........................................................................................ 79
PROGRAMACIÓN................................................................................... 81
Estructura general de la aplicación. ..................................................... 82
Clientes. ............................................................................................... 83
Comerciales. ........................................................................................ 83
Ventas. ................................................................................................. 84
Usuarios. .............................................................................................. 84
Informes. .............................................................................................. 85
Mensajes. ............................................................................................. 85
MANUAL DE USUARIO.......................................................................... 86 INSTALACIÓN DE CADA COMPONENTE .......................................... 87
Instalación de Apache ...................................................................................... 87
Instalación de PHP ............................................................................................ 88
Instalación de MySQL....................................................................................... 92
Instalación de PHPMyAdmin .......................................................................... 93
Instalación EASYPHP....................................................................................... 95
Instalación biblioteca Jpgraph ....................................................................... 96
CONFIGURAR BD APLICACIÓN......................................................... 98
MANUAL ............................................................................................ 100
8.
MANTENIMIENTO................................................................................. 150
9.
VALORACIÓN ECONÓMICA................................................................ 153
Aplicación web para la gestión de una cartera de clientes
IX
10. PLANIFICACIÓN REAL ........................................................................ 157 11. PRUEBAS DEL SISTEMA .................................................................... 159 12. BIBLIOGRAFÍA ..................................................................................... 162 13. CONCLUSIONES .................................................................................. 165 ANEXO I.PLAN DE CUENTA ........................................................................ 167
Aplicación web para la gestión de una cartera de clientes
X
INTRODUCCIÓN
Este proyecto, trata de utilizar y dirigir, todos los conocimientos informáticos a la gestión de la cartera de clientes de un comercial.
Gracias a esta herramienta se puede organizar la información de forma ordenada para obtener el máximo rendimiento; será posible administrar la información de clientes, comerciales, usuarios y, además, con posibilidad de generar informes útiles para la dirección de la empresa, observando de esta forma el transcurso y la finalización de las ventas de una empresa.
Para el desarrollo de este proyecto se irán abordando una serie de etapas bien diferenciadas, tanto en características como en volumen de recursos a utilizar, este conjunto es conocido como ciclo de vida del sistema. El conjunto de etapas, se puede desagregar en tres tipos: etapas de Especificación, etapas de Diseño y etapas de Implantación. La utilización de todas las etapas es necesaria para poder llegar al objetivo final, la creación de un software de calidad y su puesta en marcha.
A continuación, se explicará cada una de las etapas.
1.
IDENTIFICACIÓN DE NECESIDADES
Esta etapa es el punto de partida en el desarrollo de un sistema, se identifican las necesidades que tiene el cliente, determinando así los puntos que debe cubrir el proyecto. El cliente utiliza esta fase para explicar de forma general lo que necesita. Cuanto más detallada sea la información proporcionada por el cliente, más sencillo será el desarrollo del proyecto.
Aplicación web para la gestión de una cartera de clientes
2
IDENTIFICACIÓN DE NECESIDADES
Objetivos del sistema. El objetivo de esta aplicación, como se ha dicho anteriormente, es el de organizar toda la información de una empresa. El fin de esta aplicación es poder tener una visión de la empresa en tiempo real y poder así optimizar sus esfuerzos.
A esta aplicación tienen acceso no sólo comerciales, sino también los directivos, estos podrán obtener informes con los resultados de la empresa (facturación por cliente, comercial, grupo de trabajo) con acceso a los resultados para períodos de tiempo a determinar: semanal, trimestral, semestral y totales.
Con estos informes el directivo puede ver el estado de su empresa, y así tomar las decisiones oportunas, con los que ver cuál es el comercial que más factura y el que menos; los puntos débiles y fuertes de cada uno; cuáles son sus clientes importantes; que tal salida tiene cada producto, etc.
Se aplicarán siempre metodologías formales al proceso de ventas. Se dará la posibilidad de generar planes de cuenta para poder así dirigir mejor los esfuerzos para conseguir las ventas.
Aplicación web para la gestión de una cartera de clientes
3
Alcance del sistema. En este sistema las funciones que se encuentran son:
Gestión automatizada de las BBDD: agregar, modificar, borrar, buscar, lista.
Control de acceso: para conectarse a la aplicación es necesaria la identificación del usuario, necesitará un nombre y una contraseña. Dependiendo de su cuenta, el usuario tendrá un determinado perfil: podrá tener acceso a una determinada información, ya que por motivos de seguridad, no toda ella debe estar al alcance de todos.
Gestión de Planes de Cuenta: el usuario podrá generarlos y consultarlos.
Servicio de mensajería: un servicio de mensajería interna entre todos los usuarios.
Imprimir resultados: posibilidad de imprimir listas de usuarios, comerciales, clientes, así como resultados de cada comercial, cliente, producto, planes de cuenta.
Tipología de los usuarios finales. Esta aplicación va dirigida exclusivamente a trabajadores de la empresa, no está permitido el acceso a personas de fuera, para ello es necesario tener creada una cuenta de usuario que tendrá que ser dada de alta por el administrador. Ningún usuario puede darse por si mismo de alta, es necesario ponerse en contacto con el administrador. Esta medida está tomada por
Aplicación web para la gestión de una cartera de clientes
4
seguridad, hay información que no debe ser accesible a personas que estén fuera de la empresa.
Los usuarios se dividen en 3 tipos:
Comerciales: tendrán acceso a toda la gestión de los clientes, ellos serán los encargados de ponerse en contacto con los clientes que les hayan sido asignados. La BD de ventas, estará administrada por los comerciales, insertando en ella las ventas que vayan realizando. Cada comercial sólo tendrá acceso a sus ventas, no es recomendable que otro comercial vea el resto de ventas de la empresa o de los otros comerciales, es necesario que esté restringido este tipo de información. El comercial podrá generar planes de cuenta.
Directivo: este perfil se le da a todos los que no son comerciales y pueden tener acceso a los resultados de la empresa. Este perfil podrá gestionar la BD de los comerciales y clientes. En la BD de ventas, el directivo tendrá acceso a todas las ventas de la empresa. Acceso también a todos los resultados de la empresa clasificados por: clientes, comerciales, productos, grupos de trabajo, dando, todos, siempre previsiones de facturación: semanales, trimestrales, semestrales y totales.
Administrador: es el encargado de dar permiso a los usuarios que tienen autorización para poder conectarse a la aplicación. El administrador, según el perfil de cada usuario, le dará unos privilegios u otros.
Aplicación web para la gestión de una cartera de clientes
5
Cada vez que hay una alta nueva, tiene que añadir también una nueva entrada en la BD del comercial si es que el nuevo usuario lo es. Por motivos de seguridad, siempre que haya algún cambio en la cuenta personal de cada usuario, será necesario contactar con el administrador.
Restricciones
Es necesario haber incorporado en la BD de comerciales a cada uno de ellos antes de realizar alguna venta.
Para grupos de trabajo, primero debe estar incluido en la BD el comercial jefe, después los subordinados.
Es necesario tener conocimiento de los productos que vende para incorporarlos a la BD de productos y así poder elegir de forma automática los productos con sus respectivos precios.
Organización y funciones empresariales. Los roles que puede desempeñar cada usuario dentro de esta aplicación están muy claros: comercial, directivo o administrador. El directivo es el rol más importante y por ello está por encima de cualquier comercial, tiene acceso a toda la información de la empresa. Para los comerciales el acceso es más restringido. El administrador es el encargado de dar acceso a todos los usuarios. Como no depende de nadie, no se ha incluido en el organigrama.
Se puede ver en el organigrama a los comerciales que trabajan fuera de un grupo de trabajo, y comerciales que trabajan a las ordenes de otros
Aplicación web para la gestión de una cartera de clientes
6
comerciales, llamados jefe de grupo. Estos grupos trabajan en conjunto para determinados fines, estudiando su rentabilidad por grupo.
Organización de Usuarios. Directivo
Comercial 1
Jefe 1
Jefe N
Comercial 2
Comercial 1
Comercial 1
Comercial N
Comercial N
Comercial N
Grupo 1
Grupo N
Antecedentes. La aplicación se realiza en función de las necesidades del cliente. Su objetivo es la organización de la cartera de clientes que tiene la empresa distribuida entre los distintos comerciales. Se piensa en desarrollar una aplicación web para que cualquier trabajador de la empresa pueda tener acceso a la información sea cual sea el lugar en donde se encuentre, para dar así un servicio mejor y facilitar la productividad de los viajes que realicen los comerciales.
Aplicación web para la gestión de una cartera de clientes
7
Es necesario cubrir la parte de informes con información actualizada, por ello se desarrolla esta aplicación en donde toda la información se trabaja en la misma BD.
Aplicación web para la gestión de una cartera de clientes
8
2.
ANÁLISIS DE REQUISITOS
En esta etapa se busca tener un concepto claro de las necesidades, problemas y requisitos del usuario. Es necesario tener un conocimiento claro acerca del sistema para poder profundizar y proponer una solución de la mejor forma posible.
Aplicación web para la gestión de una cartera de clientes
9
ANÁLISIS DE REQUISITOS
Aquí se detallan los requisitos que tiene que tener el sistema para cubrir las necesidades del negocio y los requisitos del usuario. Para ello ha sido necesario establecer diferentes entrevistas con el director para saber así cuáles son los procesos que deben ser mecanizados.
Esta aplicación debe estar preparada para ser utilizada por el departamento de ventas y todos los comerciales tendrán acceso a ella. No obstante, el director también tiene acceso para ver los resultados de la empresa.
Esta aplicación se desarrolla, como se ha dicho antes, no sólo para gestionar toda la información que un departamento de ventas necesita, sino también, para unificar toda esa información y así resolver problemas como: incoherencias, desactualizaciones, inseguridades, etc., aparte de recopilar en un instante toda la información que sea necesaria de la empresa sin tener que estar accediendo a distintas áreas.
Esta aplicación automatiza una serie de procesos como son:
Gestión de toda la información de los clientes.
Gestión de toda la información de los comerciales.
Gestión de toda la información de las ventas.
Creación de Informes.
Creación de Planes de Cuenta.
Aplicación web para la gestión de una cartera de clientes
10
La lista de requisitos que tiene que tener esta aplicación, se confecciona con base en los diferentes encuentros, entrevistas que se han tenido con el director.
Los requisitos se clasifican en diferentes tipos: 1. Funcionales: Especifican la funcionalidad o servicios que la aplicación debe proporcionar. 2. Operativos: Atienden al modo en que operará el sistema. 3. Prestaciones: Características adicionales o funciones de menor prioridad. 4. Seguridad: Control del acceso a la aplicación. 5. Fiabilidad: Atienden a la integridad y veracidad de la información.
Aplicación web para la gestión de una cartera de clientes
11
Requisitos del sistema IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Tiempos de gestión y de consulta pequeños. Identificador: R01 Fuente: Departamento de Ventas Categoría: Funcional. Descripción: El acceso a las BBDD para la gestión y consulta debe de ser en un tiempo pequeño.
MEDICIÓN
Controlar que el acceso a las BBDD sea pequeño siendo grande o pequeña la carga de información. BENEFICIOS
Conseguir un intercambio de información ágil y como consecuencia, la realización del trabajo de los usuarios más rápido y menos cansado.
Aplicación web para la gestión de una cartera de clientes
12
COMENTARIOS / SOLUCIONES SUGERIDAS
La aplicación será una aplicación Web que tendrá acceso directo a las BBDD.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
13
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado
Prioridad: Alta
Título: Generar informes de Comerciales Identificador: R02. Fuente: Departamento de Ventas. Categoría: Funcional. Descripción: Generar informes a partir de la información que existe en la BD. MEDICIÓN
Introducir los datos del comercial, generar ventas, y después, generar un informe de este comercial para ver si los resultados son acordes con la información introducida. BENEFICIOS
La posibilidad de obtener rápidamente resultados de un comercial y así, tener un seguimiento de su trabajo de forma sencilla.
Aplicación web para la gestión de una cartera de clientes
14
COMENTARIOS / SOLUCIONES SUGERIDAS
Para generar el informe, se tendrá acceso a la BD y a partir de ahí, se tomarán los datos necesarios para generar el informe.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
15
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Validación de datos. Identificador: R03 Fuente: Departamento de Ventas Categoría: Funcional. Descripción: Definición y tratamiento correcto de los datos.
MEDICIÓN
Los datos deben estar definidos de forma correcta ya que, a partir de la información que se va incorporando en las BBDD, se obtendrán resultados, estadísticas y gráficos que necesitan que el formato de los datos sea el adecuado. Cuando hay un campo vacío o un campo en el que el formato no es el correcto, la aplicación avisa al usuario que el dato introducido es incorrecto.
Aplicación web para la gestión de una cartera de clientes
16
BENEFICIOS
Asegurar que los datos introducidos tienen el formato correcto y los resultados, cálculos y gráficos van a ser correctos.
COMENTARIOS / SOLUCIONES SUGERIDAS
La aplicación avisará cuando se introduce un nuevo registro si hay algún campo incorrecto.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
17
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Información específica para cada comercial. Identificador: R04 Fuente: Departamento de Ventas Categoría: Funcional. Descripción: Cada comercial sólo podrá tener acceso a la información que le corresponda, por ejemplo, no podrá tener acceso a los clientes, ventas de otro comercial. MEDICIÓN
Se comprobarán con diferentes comerciales, diferentes cuentas, que la información a la que pueden acceder es la correcta. BENEFICIOS
Es necesario que la información correspondiente entre comerciales quede aislada entre ellos, por ejemplo es muy común en empresas que los
Aplicación web para la gestión de una cartera de clientes
18
comerciales se pisen clientes, y eso se puede evitar con esta medida. COMENTARIOS / SOLUCIONES SUGERIDAS
La creación de cuentas de usuario a cada comercial con el perfil correspondiente, e ir proporcionándole en la aplicación aquella información que tengan permiso.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Control de acceso – R09. Definición de perfiles – R10.
Aplicación web para la gestión de una cartera de clientes
19
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Generar Planes de Cuenta. Identificador: R05 Fuente: Departamento de Ventas Categoría: Funcional. Descripción: Realizar con la aplicación Planes de Cuenta para un cliente concreto.
MEDICIÓN
Una vez definido el formulario para rellenar el Plan de Cuenta, hacer pruebas para ver que el tratamiento de la información es correcto. BENEFICIOS
Se intenta de esta forma ayudar a la empresa a conocer mejor a su cliente y así, tener más posibilidades de establecer negocios con él.
Aplicación web para la gestión de una cartera de clientes
20
COMENTARIOS / SOLUCIONES SUGERIDAS
Para introducir la información en la BD, será necesario realizar un formulario.
DOCUMENTOS RELACIONADOS
Planes de Cuenta – Anexo I.
REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
21
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Generar informes jerárquicos. Identificador: R06 Fuente: Departamento de Ventas Categoría: Funcional. Descripción: En la aplicación se pueden definir grupos de trabajo, el objetivo es poder generar informes de este grupo.
MEDICIÓN
Añadir a un grupo de trabajo diferentes comerciales y después, generar informes para ver si está todo correcto. BENEFICIOS
Se podrá obtener información, resultados, gráficas y tablas de un grupo de trabajo en un sólo informe y de forma directa.
Aplicación web para la gestión de una cartera de clientes
22
COMENTARIOS / SOLUCIONES SUGERIDAS
Guardar la información de cada comercial perteneciente al grupo y luego, tratarla para dar unos resultados que sean útiles en este tipo de informes.
DOCUMENTOS RELACIONADOS
Ninguno. REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
23
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Generar informes de clientes. Identificador: R07 Fuente: Departamento de Ventas. Categoría: Funcional. Descripción: Crear informes de los distintos clientes a partir de la información que se dispone en la BD.
MEDICIÓN
Introducir la información de un cliente, sus compras, y luego, generar un informe y comprobar que los resultados son acordes a la información introducida.
Aplicación web para la gestión de una cartera de clientes
24
BENEFICIOS
Disponer en una sola acción de la información de un cliente, y además, obtener resultados útiles de esa información introducida anteriormente.
COMENTARIOS / SOLUCIONES SUGERIDAS
Tener acceso a la BD donde se encuentra la información del cliente, y luego, generar tablas, gráficos y resultados según la información obtenida.
DOCUMENTOS RELACIONADOS
Ninguno. REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
25
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado
Prioridad: Alta
Título: Entorno fácil de uso. Identificador: R08 Fuente: Departamento de Ventas Categoría: Prestaciones. Descripción: Diseño de un interfaz cómodo y fácil de uso para todos los usuarios. MEDICIÓN
Mientras se realiza el diseño y una vez terminado se va consultando al director si el interfaz se acerca a lo que se pide. BENEFICIOS
Tener un interfaz agradable, fácil de uso y claro facilita el trabajo al usuario y como consecuencia, rentabiliza ese trabajo al máximo, eliminando tiempos adicionales por un mal diseño de la aplicación.
Aplicación web para la gestión de una cartera de clientes
26
COMENTARIOS / SOLUCIONES SUGERIDAS
Se sugiere hacer una aplicación con un menú en el margen izquierdo con las funciones claves de cada usuario dependiendo de cada perfil, y a partir de ahí, en la zona central aparecerá la opción elegida acompañada de una barra con pestañas con distintas opciones.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
27
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06 Versión: 0.1 Estado: Aceptado
Prioridad: Alta
Título: Control de acceso. Identificador: R09 Fuente: Departamento de Ventas Categoría: Seguridad. Descripción: Control del acceso de la aplicación sólo por usuarios autorizados.
MEDICIÓN
Simulación de conexión por parte de usuarios autorizados y por parte de usuarios no autorizados. BENEFICIOS
Controlar el acceso a la aplicación, dando acceso sólo a las personas autorizadas. La información será utilizada por personal de la empresa y
Aplicación web para la gestión de una cartera de clientes
28
evitando infiltraciones de personas ajenas. COMENTARIOS / SOLUCIONES SUGERIDAS
Creación de una base de datos de usuarios donde habrá una entrada por cada uno de los usuarios autorizados. En cada una se guardará además el tipo de perfil que tiene cada usuario.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Definición de perfiles – R10.
Aplicación web para la gestión de una cartera de clientes
29
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Definición de perfiles. Identificador: R10 Fuente: Departamento de Ventas Categoría: Seguridad Descripción: Definición de los diferentes tipos de perfil que hay en la aplicación: comercial, directivo y administrador.
MEDICIÓN
Simular la conexión de cada perfil y ver que las opciones que tiene activadas corresponden con sus permisos anteriormente estipulados.
BENEFICIOS
Proporcionar la información que necesita cada usuario dependiendo de sus necesidades, siendo la búsqueda de esta mucho más fácil y pudiendo
Aplicación web para la gestión de una cartera de clientes
30
restringir también el acceso a información que algunos usuarios no puedan ver.
COMENTARIOS / SOLUCIONES SUGERIDAS
Definir tantos perfiles como tipos de usuarios tengan acceso a esta aplicación.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Control de acceso - R09
Aplicación web para la gestión de una cartera de clientes
31
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado
Prioridad: Alta
Título: Aplicación tipo Web. Identificador: R11 Fuente: Departamento de Ventas Categoría: Operativo. Descripción: La arquitectura de la aplicación tiene que ser de tipo Web para su funcionamiento.
MEDICIÓN
La aplicación es de tipo Web, y para acceder a ella es necesario disponer de conexión a la red. La red debe de cumplir requisitos de: velocidad, seguridad, capacidad, para ello se medirá cada una de estas exigencias para un correcto funcionamiento de la aplicación.
Aplicación web para la gestión de una cartera de clientes
32
BENEFICIOS
Posibilidad de acceder a toda la información de la empresa desde cualquier lugar.
COMENTARIOS / SOLUCIONES SUGERIDAS
Implantar las BBDD en un servidor Apache y programar la aplicación en el lenguaje PHP. Para el tratamiento correcto de las BBDD se utilizará MySql. Estas tres herramientas se comunican sin dificultad.
DOCUMENTOS RELACIONADOS
Ninguno.
REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
33
IDENTIFICACIÓN
Proyecto: Gestión de la cartera de clientes de un comercial. Jefe de proyecto: Javier Jaime Elizagaray López.
REQUISITO
Fecha: 03/08/06
Versión: 0.1
Estado: Aceptado Prioridad: Alta
Título: Historial de las Ventas, Clientes, Comerciales. Identificador: R12 Fuente: Departamento de Ventas Categoría: Fiabilidad. Descripción: Almacenar toda la información de las ventas, clientes y comerciales en un historial para futuros estudios.
MEDICIÓN
Comprobando que no se elimina la información que se va introduciendo en las BBDD.
BENEFICIOS
Al disponer de este historial se pueden generar estadísticas, cálculos, informes, gráficas del estado de la empresa, estudios de mercado, etc.
Aplicación web para la gestión de una cartera de clientes
34
COMENTARIOS / SOLUCIONES SUGERIDAS
Guardar toda la información eliminando sólo aquella que sea errónea.
DOCUMENTOS RELACIONADOS
Ninguno. REQUISITOS RELACIONADOS
Ninguno.
Aplicación web para la gestión de una cartera de clientes
35
Modelo lógico
Los requisitos son incorporados al modelo lógico actual, lo que provocará la incorporación, eliminación y modificación de objetos en el modelo. Para ello se desarrolla a continuación el modelo lógico, contextual y conceptual.
Diagrama Contextual.
Operaciones Resultado
Usuario / PC
Usuario / Contraseña
Datos
Aplicación Gestión Clientes
Autorización
Servidor Gestión
Usuario / Contraseña: el usuario introduce su nombre de usuario y contraseña para comprobar si tiene acceso.
Autorización: indica al usuario si tiene acceso a la aplicación.
Operaciones: las distintas operaciones que realiza el usuario en la aplicación.
Gestión: todo tipo de operación que necesita acceso a la BD para obtener un resultado.
Datos: se proporcionan los datos de la BD que se piden.
Resultado: se obtiene en función de las operaciones realizadas por el usuario.
Aplicación web para la gestión de una cartera de clientes
36
De esta forma se ve la interacción que tiene la aplicación con el exterior. El diagrama
conceptual,
que
se
expone
a
continuación,
detalla
más
explícitamente la forma en que se comunican los procesos.
Diagrama Conceptual. Operación Ventas
Operación Comerciales Operación Clientes
Comerciales
Ventas
Clientes
Datos
Gestion Datos
Gestión
Datos
Gestión
Datos
Datos
Datos
Clientes
Comerciales
Usuarios
Planes de Cuenta
Ventas
Mensajes
Datos
Datos Mensajes
Gestión
Datos
Productos
Gestión
Datos
Datos
Gestión Datos
Usuarios
Operación Usuarios
Informes
Operación Informes
Aplicación web para la gestión de una cartera de clientes
37
3. ESTUDIO DE ARQUITECTURA
En esta etapa se definen las distintas arquitecturas posibles para desarrollar este proyecto. Para ello, se explicará a fondo la estructura de la arquitectura elegida y las herramientas que se van a utilizar.
Aplicación web para la gestión de una cartera de clientes
38
ESTUDIO DE ARQUITECTURA
Para desarrollar este proyecto se eligió la arquitectura Web utilizando el paquete PHP- MySQL – APACHE. Se optó por una arquitectura Web ya que es necesario que cualquier usuario pueda acceder a la información de la aplicación desde cualquier lugar, dando flexibilidad a los trabajadores. El usuario se conectará a internet y se conectará a la aplicación a través del protocolo http. El servidor le mostrará la página web en formato html. La arquitectura es muy simple, esta formada por un cliente ligero, lo único que necesita es conexión a internet y un browser, y un servidor con las diferentes funciones. Este servidor web lo que debe permitir es el almacenamiento y el acceso a la página web.
La arquitectura que se va a utilizar será una arquitecta Web. Se fundamenta en la utilización del protocolo http. Se utilizará esta aplicación con un servidor. Este servidor permitirá el almacenamiento y el acceso a la información.
Características de la arquitectura web:
Escalabilidad La característica principal de las aplicaciones Web es el posible incremento vertiginoso del número de usuarios. Es importante el correcto dimensionamiento de la aplicación y la adaptabilidad del sistema ante el incremento de la demanda.
Aplicación web para la gestión de una cartera de clientes
39
Separación de responsabilidades 1. Separación de capas. 2. Distintas responsabilidades no deben ser delegadas en la misma clase (separación de incumbencias). 3. Tendencia actual en aplicaciones WEB:
Arquitectura n-capas.
4. El modelo más básico es el de tres capas:
Capa de presentación: navegabilidad del sistema, validación de datos de entrada, formateo de los datos de salida, internacionalización, renderizado de presentación, etc.
Capa de negocio: comprende las responsabilidades de lógica de negocio (o dominio) del sistema, la capa de negocio ha de ser independiente de la capa de presentación y viceversa (en la medida de lo posible).
Capa de persistencia: comprende las responsabilidades de lógica de persistencia de las entidades que maneja el sistema
en
desarrollo
(inserción,
eliminación,
actualizaciones, búsquedas, etc.), no tiene porqué tratarse necesariamente de una base de datos relacional. 5. Independencia de capas.
Portabilidad 1. Una aplicación web debe poder adaptarse a las distintas arquitecturas físicas posibles en el despliegue. 2. Las tareas de adaptación a un nuevo entorno deben limitarse al ámbito de la configuración, no del desarrollo.
Aplicación web para la gestión de una cartera de clientes
40
Componentización de los servicios de infraestructura 1. Servicio de infraestructura: componentes independientes del dominio. 2. Rompen aparentemente la separación vertical de capas. 3. Dan lugar a la capa de infraestructura. Ej. :
Servicio de Log.
Sistema de configuración.
Gestor de permisos de acceso.
Gestión de la sesión del usuario, cacheado de entidades 1. Aspecto muy delicado del sistema. 2. Cacheado de entidades en:
Sesión de usuario.
Contexto de la aplicación.
3. Caducidad de la información. 4. Refresco de datos. 5. Rendimiento del sistema. Consumo de recursos del sistema.
Aplicación de patrones de diseño. 1. Definición de patrón de diseño. 2. Además de una solución válida para problemas habituales, son un medio de entendimiento que facilita la comunicación entre analista y desarrollador. 3. Aceleran el desarrollo de Software. 4. Facilitan el mantenimiento. 5. En proceso de integración en las herramientas CASE.
Aplicación web para la gestión de una cartera de clientes
41
PHP – MYSQL – APACHE PHP Es un lenguaje de programación usado generalmente para la creación de contenido para sitios web. El nombre es el acrónimo recursivo de "PHP: Hypertext Preprocessor", y se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores o creación de contenido dinámico para sitios web. Últimamente también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica usando la librería GTK+.
Los principales usos del PHP son los siguientes:
Programación de páginas web dinámicas, habitualmente en combinación con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión.
Programación en consola, al estilo de PERL o Shell scripting.
Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y GTK (GIMP Tool Kit), lo que permite desarrollar aplicaciones de escritorio en los sistemas operativos en los que está soportado.
Aplicación web para la gestión de una cartera de clientes
42
PHP tiene una serie de ventajas que es necesario conocer:
Es un lenguaje multiplataforma.
Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad.
Leer y manipular datos desde diversas fuentes, incluyendo datos que pueden ingresar los usuarios desde formularios HTML.
Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones).
Posee una amplia documentación en su página oficial.
La comprobación de que los parámetros son válidos se hace en el servidor y no en el cliente (como se hace con javascript) de forma que se puede evitar chequear si se reciben solicitudes adulteradas. Además PHP viene equipado con un conjunto de funciones de seguridad que previenen la inserción de órdenes dentro de una solicitud de datos.
Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
Permite las técnicas de Programación Orientada a Objetos.
Como todo programa, también tiene inconvenientes su uso, como son:
Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más ineficiente a medida que las solicitudes aumenten de número.
Aplicación web para la gestión de una cartera de clientes
43
La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.
La orientación a objetos es aún muy deficiente para aplicaciones grandes.
La decisión de utilizar PHP como lenguaje para programar la aplicación Web también se debió a:
PHP no soporta directamente punteros, como el C, de forma que no existen los problemas de depuración provocados por estos.
Se pueden hacer grandes cosas con pocas líneas de código. Lo que hace interesante su aprendizaje.
El código PHP es mucho más legible que el PERL, todo el que haya programado PERL podrá corroborar esta afirmación.
Viene acompañado por una excelente biblioteca de funciones que permite realizar cualquier labor como: acceso a base de datos, encriptación, envió de correo, gestión de un e-comercio, XML, creación de PDF, etc.
Al poderse encapsular dentro de código HTML se puede recoger el trabajo
del
diseñador
gráfico
e
incrustar
el
código
PHP
posteriormente.
Esta siendo utilizado con éxito en varios millones de sitios web.
Hay multitud de aplicaciones PHP para resolver problemas concretos (weblogs, tiendas virtuales, periódicos, etc.) listas para usar.
Aplicación web para la gestión de una cartera de clientes
44
Es multiplataforma, funciona en todas las plataformas que soporten apache.
Es software libre. Se puede obtener en la web y su código está disponible bajo la licencia GPL.
MySQL 4: Es un sistema de gestión de base de datos, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desarrolla MySQL como software libre bajo licencia GNU, pero, mediante licencia dual, también proporcionan MySQL bajo la licencia tradicional de software propietario para los casos en los que su uso sea incompatible con la licencia GPL.
MySQL
es
muy
utilizado
en
aplicaciones
web,
en
plataformas
(Linux/Windows-Apache-MySQL-PHP/PERL/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.
Aplicación web para la gestión de una cartera de clientes
45
MySQL es un sistema de administración relacional de bases de datos. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido. MySQL es software de fuente abierta. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. MySQL usa el GPL (GNU General Public License) para definir que puede hacer y que no puede hacer con el software en diferentes situaciones.
Entre las características disponibles en las últimas versiones se puede destacar:
Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente.
Disponibilidad en gran cantidad de plataformas y sistemas.
Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o mayor número de operaciones disponibles.
Transacciones y claves foráneas.
Conectividad segura.
Replicación.
Búsqueda e indexación de campos de texto.
Aplicación web para la gestión de una cartera de clientes
46
APACHE El servidor HTTP Apache es un servidor HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows y otras, que implementa el protocolo HTTP/1.1 (RFC 2616) y la noción de sitio virtual. El servidor Apache se desarrolla dentro del proyecto HTTP Server de la Apache Software Foundation. Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido. Apache tiene amplia aceptación en la red: en el 2005, Apache fue el servidor HTTP más usado, siendo el servidor HTTP del 70% de los sitios web en el mundo y creciendo aún su cuota de mercado.
Características de Apache:
Funcionalidad en múltiples plataformas.
Elaborado indicie de directorios.
Apache trabaja con gran cantidad de PERL, PHP y otros lenguajes de script. PERL destaca en el mundo del script y Apache utiliza su parte del pastel de PERL tanto con soporte CGI como con soporte mod PERL. También trabaja con Java y páginas JSP. Teniendo todo el soporte que se necesita para tener páginas dinámicas.
Sencilla administración basada en la configuración de un único archivo.
Soporte para CGI (Common Gatewav Interface) y FastCGI.
Aplicación web para la gestión de una cartera de clientes
47
Apache es una tecnología gratuita de código fuente abierto. El hecho de ser gratuita es importante pero no tanto como que se trate de código fuente abierto. Esto le da una transparencia a este software de manera que si se quiere ver que es lo que se está instalando como servidor, se podrá saber, sin ningún secreto.
Apoyo fuerte para proveedores de Servicios de Internet (ISP's).
No existe uniformidad para conectarse a bases de datos, cada programador puede utilizar diferentes módulos o modificaciones para conectarse con una base de datos.
Apache es un servidor altamente configurable de diseño modular. Es muy sencillo ampliar las capacidades del servidor Web Apache. Actualmente existen muchos módulos para Apache que son adaptables a este, y están ahí para que ser instalados cuando se necesiten. Otra cosa importante es que cualquiera que posea una experiencia suficiente en la programación de C o PERL puede escribir un modulo para realizar una función determinada.
Amplias librerías disponibles, especialmente en PERL y PHP.
Apache permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor. Es posible configurar Apache para que ejecute un determinado script cuando ocurra un error en concreto.
Una gran gama de lenguajes y debido a esto cada programador difiere de las funciones que utiliza (ya que muy pocas funciones fueron construidas internamente al servidor).
Aplicación web para la gestión de una cartera de clientes
48
Corre en una multitud de Sistemas Operativos, lo que lo hace prácticamente universal.
Tiene una alta configurabilidad en la creación y gestión de logs. Apache permite la creación de archivos log según las necesidades del administrador, de este modo se puede tener un mayor control sobre lo que sucede en el servidor.
Estructura hardware y software Como se ha indicado antes para el desarrollo de este proyecto se ha empleado una arquitectura Web utilizando: PHP, MySql y Apache. Para emplear estas herramientas con garantía deben conocerse unos requisitos que ahora se indican.
Requisitos PHP A continuación se relacionan los requisitos mínimos para trabajar utilizando PHP sin problemas:
Requisitos mínimos Procesador
Procesador Pentium II a 450 MHz, se recomienda Pentium III a 600 MHz
Sistema
•
Windows Server 2003.
operativo
•
Windows XP Professional
•
Windows XP Home Edition
Aplicación web para la gestión de una cartera de clientes
49
•
Windows 2000 Professional
•
Windows 2000 Server
Las aplicaciones se pueden implementar en los siguientes sistemas: •
Windows Server 2003
•
Windows XP Professional
•
Windows XP Home Edition
•
Windows 2000 (se recomienda Service Pack 2)
•
Windows Millennium Edition (Windows Me)
•
Windows 98
•
Microsoft Windows NT® 4.0 (se precisa Service Pack 6a)
Memoria
•
Windows Server 2003: 160 MB de memoria RAM
•
Windows XP Professional: 160 MB de memoria RAM
•
Windows XP Home Edition: 96 MB de memoria RAM
•
Windows 2000 Professional: 96 MB de memoria RAM
•
Windows 2000 Server: 192 MB de memoria RAM
Aplicación web para la gestión de una cartera de clientes
50
Disco duro
•
500 MB de espacio disponible en la unidad del sistema; 1,5 GB de espacio disponible en la unidad de instalación
Requisitos Apache Para que funcione sobre Windows Apache, es necesario
Espacio en disco. Deben estar disponibles al menos 50 MB de espacio libre en disco. Después de la instalación, Apache ocupa aproximadamente 10 MB. No obstante, la necesidad real de espacio en disco varía considerablemente en función de las opciones de configuración que se elija y de los módulos externos que se usen.
Compilador ANSI-C y Build System. Debe comprobarse que está instalado un compilador de ANSI-C. Se recomienda el Compilador GNU C (GCC) de la Free Software Foundation (FSF) (con la versión 2.7.2 es suficiente). Si no tiene instalado el GCC, entonces compruebe que el compilador que va a utilizar cumple con los estándares ANSI. Además, su variable de entorno PATH debe contener la ubicación en la que se encuentran las herramientas básicas para compilar.
Ajuste exacto del reloj del sistema. Los elementos del protocolo HTTP están expresados según la hora del día. Por eso, si quiere puede investigar como instalar alguna utilidad para sincronizar la hora de su sistema. Para esto, normalmente, se usan los
Aplicación web para la gestión de una cartera de clientes
51
programas ntpdate o xntpd, que están basados en el protocolo Network Time Protocol (NTP).
PERL (OPCIONAL). Para algunos de los scripts de soporte como apxs o dbmmanage (que están escritos en PERL) es necesario el intérprete de PERL 5 (las versiones 5.003 o posteriores son suficientes).
Requisitos MySQL
Para ejecutar MySQL para Windows, se necesita lo siguiente:
Un sistema operativo Windows de 32 bits, tal como 9x, Me, NT, 2000, XP, o Windows Server 2003.
Se recomienda fuertemente el uso de un sistema operativo Windows basado en NT (NT, 2000, XP, 2003).
Soporte para protocolo TCP/IP.
Nota: Si se descarga la distribución a través de FTP, se recomienda el uso de un cliente FTP adecuado que posea la característica de reanudación (resume) para evitar la corrupción de archivos durante el proceso de descarga.
Una herramienta capaz de leer archivos .zip, para descomprimir el archivo de distribución.
Suficiente espacio en disco rígido para descomprimir, instalar, y crear las bases de datos de acuerdo con sus requisitos. Generalmente se recomienda un mínimo de 200 MB.
Aplicación web para la gestión de una cartera de clientes
52
También podrían necesitarse los siguientes ítems opcionales:
Si se plantea conectar al servidor MySQL a través de ODBC, se deberá contar con un driver Connector/ODBC.
Si se necesitan tablas con un tamaño superior a 4GB, debe instalarse MySQL en un sistema de archivos NTFS o posterior. Al crear las tablas no debe olvidarse el uso de MAX_ROWS y AVG_ROW_LENGTH.
Para utilizar el servidor Apache y MySQL de forma correcta, es necesario disponer de un equipo con las siguientes especificaciones técnicas:
Requisito
Valor Mínimo
Valor Recomendado
Procesador
Pentium III o AMD a 2000MHz
Pentium IV o AMD a 3200MHz
Sistema Operativo
Windows 98, Windows 2000
Windows XP
Memoria RAM
128Mb
512Mb
CD-Rom
No
Sí
Conexión a Internet
Módem Analógico o RDSI
ADSL
Monitor
15" a 800x600
17" a 1024x768
Espacio Libre en Disco Duro
200Mb
1Gb
Si se va a alojar la aplicación en un servidor, el servidor donde se aloje la aplicación y con el que trabaje el programa deberá tener las siguientes especificaciones técnicas:
Aplicación web para la gestión de una cartera de clientes
53
Detalle
Valor Recomendado
Sistema Operativo Servidor
Linux, Windows 2000 ó 2003
Servidor Web
Apache
PHP
Versión 4.0.3 o posterior
MySQL
4.0 o posterior
Zend Optimizer
Instalado
Soporte XML en PHP
Instalado
Soporte ZLib en PHP
Instalado
Permiso de Escritura
En carpeta y Subcarpetas por el usuario de PHP.
Aquí se puede ver de forma gráfica como trabaja este paquete:
En este dibujo se aprecia como un usuario se conecta al servidor a través de la red. El servidor Web, en este caso el servidor Apache, utiliza el motor de PHP para traducir las peticiones del usuario. A continuación, se pone en contacto con el gestor de BBDD MySQL y realiza las consultas pertinentes. Después, vuelve a pasar por el motor de PHP, para pasar luego por el servidor Apache y Aplicación web para la gestión de una cartera de clientes
54
mandar la información al usuario en formato html. Al final, el usuario tiene su consulta en su ordenador.
Aplicación web para la gestión de una cartera de clientes
55
4.
DISEÑO EXTERNO
En esta fase se establece el diseño del sistema que más conviene a esta aplicación, es necesario encontrar un diseño que sea adecuado a todos los factores que le rodean. Esta etapa abarca el método y las técnicas a utilizar para encontrar la mejor solución.
Aplicación web para la gestión de una cartera de clientes
56
DISEÑO EXTERNO
Entorno operativo del sistema Para el desarrollo de la aplicación es necesario concretar algunos aspectos que a continuación se detallan:
Entrada, salida y recogida de datos
Transacciones en el interfaz del sistema. Gestión Comerciales, Usuarios, Clientes, Mensajes.
Consultas Comerciales, Usuarios, Clientes, Mensajes. Usuario
Sistema Gestión Informes, Plan de Cuentas
Consulta Informes, Plan de Cuentas
Cuando se habla de gestión se refiere a la alta, baja y modificación de las diferentes tablas que forman la BD. De izquierda a derecha, del usuario al sistema, son todas las operaciones que hace el usuario tratando la información del sistema, en cambio, en el otro sentido, de derecha a izquierda, es la información que necesita el usuario del sistema.
Aplicación web para la gestión de una cartera de clientes
57
A la hora de gestionar los datos, altas, bajas y modificaciones, en la aplicación se dispone de diferentes pantallas para poder realizar estas operaciones. Aparte, el sistema tiene la opción de buscar dentro de la BD los clientes, comerciales y usuarios, pensado para poder facilitar la información necesaria en menor tiempo.
Seguridad del sistema, para poder tener acceso a todas estas operaciones el usuario debe estar registrado anteriormente y según sus privilegios podrá acceder a una determinada información.
En esta aplicación, para el mantenimiento de los archivos, al ser una BD con diferentes tablas no tiene mucha dificultad. La actualización de estas tablas se hará según se vayan incorporando entradas a ellas realizadas por el usuario correspondiente. Cada usuario es responsable de la incorporación de la información que le corresponde, ya que por ejemplo, cada usuario tiene unos determinados clientes dependiendo de su perfil, él es el encargado de que esa información sea la correcta y esté actualizada.
Al ser una aplicación Web, está pensada para que sea cual sea el número de usuarios puedan trabajar todos sin problema ninguno, esta es una de las facilidades de la arquitectura Web: la escalabilidad.
Aplicación web para la gestión de una cartera de clientes
58
Configuración hardware / software
De acuerdo con la arquitectura que se ha elegido, la arquitectura Web, se puede observar el siguiente gráfico que muestra de una manera básica de que partes hardware consta este proyecto.
Como se puede observar, en la parte central del dibujo está el servidor Web Apache, en él estará almacenada la aplicación y la información de la aplicación. Para el tratamiento de la información se cuenta con el gestor de base de datos MySQL con los beneficios de perfecta sincronización entre el servidor Apache y MySQL.
En el gráfico, se puede ver alrededor del servidor distintos ordenadores, representan a los usuarios que acceden a la aplicación. Además de los usuarios como comerciales y directivos, está el usuario encargado de mantener la aplicación, en el dibujo se ve como software Manager. Es el encargado a
Aplicación web para la gestión de una cartera de clientes
59
través de la aplicación de gestionar las altas y bajas de los usuarios, así como de resolver los problemas que surjan en la aplicación.
Como elementos software, se utilizarán, como se ha dicho, el paquete PHP, MySQL y Apache. Para utilizar estos programas en conjunto se utilizará EasyPHP, que es una herramienta que une estas tres en perfecta sincronización, sin tener que instalar cada una por separado.
La versión 1.7 de EasyPHP incluye:
MySQL v4.1.9.
Apache v1.3.33.
PHP v4.3.10.
PHPMyAdmin v2.6.1.
Hasta ahora no se había hablado de esta ultima herramienta, PHPMyAdmin, se trata de una utilidad que sirve para interactuar con una base de datos de forma muy sencilla y desde una interfaz web. Sirve, por ejemplo, para crear bases de datos, tablas, borrar o modificar datos, añadir registros, hacer copias de seguridad, etc. Es una aplicación tan útil que casi todos los hosting con MySQL disponen de ella. Además, se usa para crear los usuarios MySQL para utilizar las bases de datos de forma segura. Al ser una aplicación escrita en PHP, necesita de Apache y MySQL para funcionar.
Aplicación web para la gestión de una cartera de clientes
60
Interfaz de usuario Se van a detallar los distintos elementos de entrada al sistema, como pantallas o ventanas, páginas html, formularios, especificando sus características y validaciones.
Se intentará desde un principio guardar el mismo diseño, navegando a través del menú de la izquierda y dependiendo de la opción elegida, en la zona central aparecerán distintas opciones en una serie de pestañas. Para que el diseño sea homogéneo, se establece como base de ventana la siguiente expuesta, así se consigue un estándar de operación y diseño de ventanas.
La primera página de la aplicación es la de validación: Página Identificación
Imagen 1.
Aplicación web para la gestión de una cartera de clientes
61
Hay un par de textbox, uno para el usuario y otro para la contraseña, en el último está activada la opción password para que no aparezcan caracteres. Para enviar estos datos, como formularios que se verán más adelante, se utilizará la utilidad pero con el método POST, a diferencia del método GET los datos enviados no se ven en la barra del navegador. Para recogerlos se usará Request.Form.
Aquí se muestra la estructura de las páginas de la aplicación.
Página Home
Imagen 2.
Aplicación web para la gestión de una cartera de clientes
62
Esta irá cambiando según el perfil que tenga cada usuario, pero siempre será común la estructura.
La pantalla se divide en: 1. Cabecera: en la parte superior de la pantalla, se indica el usuario que esta conectado, la hora, el número de mensajes en el buzón y para desconectarse de la aplicación.
2. Menú: el menú a la izquierda con las distintas opciones que tiene activado según el perfil del usuario conectado.
3. Cuerpo central: aquí irán apareciendo cada una de las opciones que se seleccionen en el menú. Una vez pulsada una opción del menú, la navegación será a partir de una serie de pestañas que aparecerán. Por ejemplo: Aplicación web para la gestión de una cartera de clientes
63
En esta aplicación hay varios formularios que deben ser utilizados para introducir la información dentro de la empresa.
Fomulario
Imagen 3.
Esta estructura será la utilizada para introducir información dentro de la base de datos, esta formado por TextBox con un tamaño estándar de 20 y 30 como longitud máxima de la cadena de caracteres. En casi todos los formularios, la mayoría son sólo TextBox, en este ejemplo se encuentra un Select Option el cual, proporciona de forma automática una lista Aplicación web para la gestión de una cartera de clientes
64
con todos los comerciales recogidos en la base de datos. Una vez terminado de explicar el interfaz de usuario, es necesario destacar, ya que forman parte del diseño de la aplicación, una serie de puntos:
Uno de los objetivos que se ha intentado cumplir mientras se diseñaba la aplicación es que, en todo momento el acceso a la información sea fácil, para ello se han facilitado accesos directos a información que cualquier usuario que utilice la aplicación necesite consultar, por ejemplo, en todas las tablas de comerciales, clientes o ventas, existe siempre la posibilidad de acceder a la información de este comercial, cliente, venta. Un ejemplo: Se está viendo un informe de uno de los productos de la empresa con el correspondiente comercial que ha realizado la venta, se puede acceder a la información del comercial directamente pinchando sobre su nombre sin necesidad de tener que ir a comerciales y buscar dicho comercial. Con esto se trata de explicar que la información esté siempre accesible cuando el usuario pueda necesitarla. Es uno de los objetivos
de
esta
aplicación
facilitar
el
trabajo
al
usuario,
y
fundamentalmente hacer su trabajo más fructífero, lo que se traducirá en beneficio para la empresa.
Los Informes son uno de los objetivos de este proyecto, por eso se pueden obtener resultados de todo lo que pueda ser interesante para un directivo. Los informes empresariales cada vez son más demandados y que se realicen de forma automática.
Dentro de estos informes aparte de tener datos numéricos, es necesario también disponer de gráficos que muchas veces dan una visión más clara y rápida de todo el conjunto. Se estudian las previsiones de ventas,
Aplicación web para la gestión de una cartera de clientes
65
dividiéndolas tanto en ventas totales para ese año, para el semestre, trimestre y semana. Una empresa tiene que saber siempre qué dinero va a facturar en cualquiera de estos intervalos de tiempo. Gracias a estos datos, se pueden sacar muchas conclusiones. Basándose en ventas totales, semestrales, trimestrales, semanales, se consiguen datos que pueden servir para determinar: qué producto está más fuerte, qué producto se vende más, cuál aporta más beneficio, en qué momento del año es más factible la venta de determinados productos, etc. Con toda esta información, la dirección puede plantearse acciones a realizar, como por ejemplo si en una época del año un producto se vende más o menos, aumentar la producción o disminuirla.
Otro de los objetivos es el de imprimir informes: se ofrece la posibilidad de imprimir todos los informes, habiéndose añadido la posibilidad de imprimir las listas de clientes, comerciales, etc.
Aplicación web para la gestión de una cartera de clientes
66
5.
DISEÑO INTERNO
En esta etapa, se diseñan los diversos componentes software del sistema, describiendo detalladamente sus especificaciones técnicas. Se explicará toda la estructura de la base de datos del sistema.
Aplicación web para la gestión de una cartera de clientes
67
DISEÑO INTERNO
El sistema está compuesto por una base de datos. En ella se pueden encontrar varias tablas que estarán relacionadas entre sí.
Para definir las distintas tablas y ver su estructura se utiliza la herramienta PHPMyAdmin.
PHPMyAdmin
Tabla 1.
Aplicación web para la gestión de una cartera de clientes
68
Desde aquí se puede crear, modificar, borrar tanto bases de datos como las tablas que la forman. Se puede ver en la imagen anterior que la BD del sistema está compuesta por 7 tablas:
1.
Tabla de Clientes.
2.
Tabla de Comerciales.
3.
Tabla de Mensajes.
4.
Tabla de Planes.
5.
Tabla de Productos.
6.
Tabla de Usuarios.
7.
Tablas de Ventas.
Tabla Clientes.
En esta como su nombre indica, se guarda toda la información de los clientes que resulta interesante para la empresa.
Tabla Clientes.
Tabla 2. Aplicación web para la gestión de una cartera de clientes
69
Utilizando la herramienta PHPMyAdmin se tendrá de forma clara la estructura de cualquier tabla. Se puede ver que todos los campos son Null menos el del DNI del cliente, ya que es la clave de la tabla. Esto es debido a que si al añadir la información de un cliente no se dispone de toda ella en ese momento, se pueda introducir en otro momento e incluso más tarde modificarla.
Casi todos los campos son de tipo varchar, esto es debido a que en PHP, la diferencia en usar entero o cadena de caracteres, el tratamiento es el mismo, por ello se decidió, salvo en determinados casos, siempre usar varchar. El campo descripción es de tipo text, ahí se almacenará texto y, así, guardar la descripción de un cliente, datos que no han quedado recogidos en los otros campos.
Sentencia SQL: CREATE TABLE Clientes( DNI int(8) not null, primary key(DNI), Nombre varchar (20), Apellidos varchar (20), TelefonoC varchar (20), Email varchar(30), DomicilioC varchar(20), ProvinciaC varchar(20), Empresa varchar (20),
Aplicación web para la gestión de una cartera de clientes
70
TelefonoE varchar (20), DireccionE varchar (20), ProvinciaE varchar(20), Descripcion text, DniComercial varchar(20))
Tabla Comerciales.
Se recoge toda la información de los comerciales. Aquí se muestra la estructura detallada de la tabla.
Tabla Comerciales.
Tabla 3.
El campo clave es el DNI, todos son de tipo varchar de tamaño 20, menos el DNI que es entero y la descripción de tipo text.
Sentencia SQL: CREATE TABLE Comerciales( Aplicación web para la gestión de una cartera de clientes
71
DNI int(8) not null, primary key(DNI), Nombre varchar (20), Apellidos varchar (20), TelefonoC varchar (20), Email varchar(30), DomicilioC varchar(20), ProvinciaC varchar(20), Departamento varchar (20), TelefonoE varchar (20), Prevision varchar (20), Subordinado varchar (20), Descripcion text )
Tabla Mensajes.
La tabla utilizada para almacenar los mensajes que se envían los usuarios de la aplicación, es la que se detalla.
Tabla Mensajes.
Tabla 4.
Aplicación web para la gestión de una cartera de clientes
72
Se tiene el campo número que es la clave que se genera automáticamente, por eso el extra auto_increment. En esta tabla, todos los campos tienen que ser rellenados, no puede haber ninguno nulo.
Sentencia SQL: CREATE TABLE Mensajes( Numero int(8) not null auto_increment, primary key(Numero), UsuarioOrigen varchar(20) not null, UsuarioDestino varchar (20), Mensaje text, Fecha varchar(15))
Tabla Planes.
En esta tabla se recoge toda la información necesaria para poder realizar un plan de cuentas completo. Se dispone de toda la información necesaria para afrontar con garantías la venta a un cliente.
Aplicación web para la gestión de una cartera de clientes
73
Tabla Planes.
Aplicación web para la gestión de una cartera de clientes
74
Tabla 5.
La clave en esta tabla es el nombre o identificador, por el cual se accede a cada uno de estos planes. Como en otras tablas, el único campo que es necesario rellenar es la clave, es posible que en el momento de almacenarlo no se disponga de toda la información.
Sentencia SQL: CREATE TABLE Planes( Nombre varchar (20) not null, primary key(Nombre), Responsable varchar (20), Participante1 varchar (20), Telefono1 varchar (20), Email1 varchar (20), Participante2 varchar (20), Telefono2 varchar (20), Email2 varchar (20),
Aplicación web para la gestión de una cartera de clientes
75
Participante3 varchar (20), Telefono3 varchar (20), Email3 varchar (20), FechaFin varchar (20), Periodo varchar (20), FechaRev varchar (20), ResponsableRev varchar (20), FechaProxRev varchar (20), Acciones varchar (20), Sumario text, Archivo varchar(20), SumarioObjetivo text, Desarrollo text, Ingresos text, ClientesCruzados text, Accion1 varchar(30), Recurso1 varchar(30), Fecha1 varchar(30), Responsable1 varchar(30), Accion2 varchar(30), Recurso2 varchar(30), Fecha2 varchar(30), Responsable2 varchar(30), Accion3 varchar(30), Recurso3 varchar(30),
Aplicación web para la gestión de una cartera de clientes
76
Fecha3 varchar(30), Responsable3 varchar(30), Accion4 varchar(30), Recurso4 varchar(30), Fecha4 varchar(30), Responsable4 varchar(30), ValorP varchar(30), UnidadP varchar(30), UnidadP2 varchar(30), CatRec1 varchar(30), Requisito1 varchar(30), Tiempo1 varchar(30), CatRec2 varchar(30), Requisito2 varchar(30), Tiempo2 varchar(30), CatRec3 varchar(30), Requisito3 varchar(30), Tiempo3 varchar(30), CatRec4 varchar(30), Requisito4 varchar(30), Tiempo4 varchar(30), Critico text )
Aplicación web para la gestión de una cartera de clientes
77
Tabla Productos.
Esta tabla es muy pequeña, se ha creado solamente para saber que productos tiene la empresa y su precio.
Tabla Productos.
Tabla 6.
La clave de esta tabla es el nombre del producto, es tipo varchar y el precio de tipo entero.
Sentencia SQL: CREATE TABLE Productos( Nombre varchar (20) not null, primary key(Nombre), Precio int(10))
Tabla Usuarios.
En esta tabla se almacena toda la información de los usuarios.
Tabla Usuarios.
Tabla 7. Aplicación web para la gestión de una cartera de clientes
78
La clave es el nombre del usuario. Todos los campos son de tipo varchar de tamaño 20.
Tabla Ventas
Toda la información de las ventas queda reflejada en esta tabla.
Tabla Ventas.
Tabla 8.
La clave esta compuesta por: DniComercial y Referencia, el campo referencia se introduce de forma automática, gracias a la característica auto_increment. Todos los campos son NULL menos la clave, el DNI del cliente y el NIF de la empresa. Esto es así, para que si no se dispone de toda la información se pueda generar aún así la entrada en la tabla.
Aplicación web para la gestión de una cartera de clientes
79
La mayoría de los campos son varchar de tamaño 20, variando en los campos día, mes y año de la venta y cobro. Se añade el campo descripción de tipo text que recoge más información de la venta.
Sentencia SQL: CREATE TABLE Ventas( DniComercial varchar(20) not null, Referencia int(20) not null auto_increment, primary key(DniComercial,Referencia), DniCliente varchar(20) not null, NifEmpresa varchar(20) not null, ObjetoVenta varchar(20), Cantidad varchar(20), Pago varchar(20), VentaDia varchar(2), VentaMes varchar(10), VentaAño varchar(4), CobroDia varchar(2), CobroMes varchar(10), CobroAño varchar(4), TipoPago varchar(15), Descripcion text, Grafico varchar(1))
Aplicación web para la gestión de una cartera de clientes
80
6.
PROGRAMACIÓN.
El objetivo de esta etapa es alcanzar la transformación del sistema en un conjunto de programas que puedan ser ejecutados correctamente, bajo criterios de calidad.
Aplicación web para la gestión de una cartera de clientes
81
PROGRAMACIÓN
El lenguaje de programación usado es PHP. Es una herramienta sencilla en la parte de definiciones, no se definen ni datos, ni clases, ni estructuras, es un lenguaje para el que no hace falta tener nada definido. Por ejemplo, en otros lenguajes como en Java, se crean clases con diferentes métodos, uno para cada operación que sea necesario realizar. En cambio en PHP, cuando es necesario realizar una operación, por ejemplo insertar en la BD, se llama a otra página independiente de la anterior donde se realiza la operación.
Para explicar esta lógica de llamadas a las distintas páginas que forman la aplicación, se ha desarrollado un gráfico por cada función de la aplicación.
Estructura general de la aplicación.
Aplicación
clientes.php
comerciales.php
ventas.php
usuarios.php
informes.php
mensajes.php
Imagen 4. Aplicación.
Aplicación web para la gestión de una cartera de clientes
82
Clientes.
Clientes/ AgregarCliente.php
BorrarClientes.php
verificarBorrar.php
ClientesModificar.php
ClientesModificarVeri ficar.php
BuscarClientes.php
BusquedaVerificada. php
listaClientes.php
MisClientes.php
Imagen 5. Clientes.
Comerciales.
Comerciales/
ComercialesAgregar. php ComercialesBorrar.p hp
ComercialBorrarVerifi car.php
ComercialesModificar .php
ComercialModificarV erificar.php
ComercialModificado. php
ComercialesLista.php
BuscarComerciales.p hp
BusquedaVerificadaC omercial.php
Imagen 6. Comerciales.
Aplicación web para la gestión de una cartera de clientes
83
Ventas.
Ventas
NuevaVenta.php
VentaIntermedio.php
borrarVenta.php
MisVentas.php
VisualizarVenta.php
ListaVentas.php
Imagen 7. Ventas.
Usuarios.
Usuarios AgregarUsuario.php
ModificarUsuario.php
UsuarioModificarVerif icar.php
BorrarUsuario.php
verificarBorrar.php
BuscarUsuario.php
BusquedaVerificada. php
ListaUsuarios.php
Imagen 8. Usuarios.
Aplicación web para la gestión de una cartera de clientes
84
Informes.
Informes PlanCuenta.php
PlanCuentaNuevo.ph p
PlanResumen.php
Informes.php
InformeJefe.php
Productos.php
ProductoInforme.php
Comerciales.php
ComercialResultados .php
Clientes.php
ClientesInforme.php
visualizarCliente.php
Imagen 9. Informes.
Mensajes.
Mensajes enviarMensaje.php
enviarMensajeComer ciales.php
borrarMensaje.php
enviarMensajeTodos. php
leerMensajes.php
Imagen 10. Mensajes.
Aplicación web para la gestión de una cartera de clientes
85
7.
MANUAL DE USUARIO
El manual de usuario es un manual de las instrucciones de operación del sistema.
Aplicación web para la gestión de una cartera de clientes
86
MANUAL DE USUARIO
INSTALACIÓN DE CADA COMPONENTE
Contendrá la explicación necesaria para instalar por separado cada uno de los componentes que forman el paquete PHP, MySQL, Apache, PHPMyAdmin.
Instalación de Apache - Web oficial: http://www.apache.org
Se debe descargar el Apache en su versión para windows. Para ello se accede con la siguiente URL: http://httpd.apache.org/download.cgi En cualquier caso, se pueden encontrar archivos necesarios en la carpeta httpd/binaries/win32 del servidor que use para la descarga.
Si se decide utilizar la versión 1.3.X, se buscará la última versión de este tipo.
Una vez descargado, se ejecuta el instalador y se recorre las pantallas hasta que se pide los siguientes datos: •
Network Domain: 127.0.0.1
•
Server Name: 127.0.0.1
•
Administrator's Email Address.
•
Run when started manually, only for me. Seleccionar esta opción.
Aplicación web para la gestión de una cartera de clientes
87
La IP 127.0.0.1 es la dirección IP asociada al ordenador que se está utilizando, es decir el host local o Localhost. Es importante decir que a la hora de probar los scripts en modo local, se podrá poner 127.0.0.1 o localhost. Finalmente, recordar que el Apache se instala por defecto en la carpeta: C:/Archivos de programa/ApacheGroup/Apache/. Ahora se instalará el PHP. Se asegurará tener cerrado el Apache.
Instalación de PHP - Web oficial: http://www.PHP.net
Se descarga el PHP para Windows. El archivo está localizado en la sección Downloads, apartado Windows Binaries, y es el Zip Package (no el installer, aunque éste ocupe menos, no servirá). Para la versión 4.3.10 es: PHP 4.3.10 zip package [7,405Kb].
Una vez descargado todo el ZIP, se crea una carpeta en el sitio donde se quieren instalar los archivos del servidor (PHP, MySQL, etc.), por ejemplo en la raíz del disco duro la carpeta: C:/Servidor/. Ahora se extraen los archivos del Aplicación web para la gestión de una cartera de clientes
88
ZIP de PHP dentro de esa carpeta. En este caso se crea la carpeta C:/Servidor/PHP-4.3.10-Win32/. Se puede renombrar como C:/Servidor/PHP/. A continuación el archivo PHP4ts.dll (localizado en C:/Servidor/PHP/PHP4ts.dll )
se
copia
al
directorio
System
(en
Windows
9x)
o
System32
(NT,2000,XP,2003) de la carpeta del Windows. Si hay otro archivo en System o System32 se sobrescribe. Igualmente los archivos que están en la carpeta C:/Servidor/PHP/dlls/ se copian en la carpeta System o System32 igual que se hizo con el archivo PHP4ts.dll.
El siguiente paso es configurar el PHP.ini. Se renombra o copia el archivo C:/Servidor/PHP/PHP.ini-dist con el nombre PHP.ini A continuación se edita con el bloc de notas. Si es necesario (léase antes la explicación), se edita la línea register_globals = Off a la que se da el valor: register_globals = On. Activar Register_globals ON / OFF permite asumir que las variables son globales y pueden llegar por cualquier método (POST, GET, COOKIE, SERVER, etc.). Así, por ejemplo, si se utiliza una variable global de sesión o cookie se puede suplantar fácilmente mediante una variable por URL, con lo cual el script no es seguro.
A continuación se indicará a PHP dónde se guardan las extensiones. Dentro del PHP.ini se busca la extension_dir y se le pone la carpeta que contiene los archivos PHP_xxx.dll, que por defecto es la carpeta extensions dentro de PHP.
;Directory in which the loadable extensions (modules) reside.
Aplicación web para la gestión de una cartera de clientes
89
extension_dir = "C:/Servidor/PHP/extensions/"
Además se pueden activar las extensiones que se deseen o se necesiten, para lo cual se buscará Windows Extensions y para cargar las extensiones se quita el ; de delante. Por ejemplo, si se quiere cargar la extensión gd2.dll (para manejar
las
funciones
PHP
relativas
a
imágenes)
se
cambiará
;extension=PHP_gd2.dll por extension=PHP_gd2.dll Se puede conocer para qué sirve cada extensión en el manual oficial de PHP. Como nota adicional, resaltar que hay algunas extensiones que requieren de librerías extra que no vienen en el paquete completo de PHP, y para hacerlas funcionar habrá que buscar dichas librerías. No deben activarse todas las librerías porque luego saldrán, antes de instalar una librería, comprueba que en la carpeta de PHP tienes los archivos DLL correspondientes.
Ahora, para hacer pruebas con upload de archivos vía HTTP, se deberá indicar el directorio donde los archivos se almacenarán temporalmente. Para ello se busca upload_tmp_dir y se le da el valor de una carpeta que exista. Por ejemplo, en el directorio C:/Servidor/PHP/ se crea una carpeta uploads, por lo que quedará así:
; Temporary directory for HTTP uploaded files (will use system default if not ; specified). upload_tmp_dir = "C:/Servidor/PHP/uploads/"
Aplicación web para la gestión de una cartera de clientes
90
Para cambiar el tamaño máximo de los archivos que pueden subirse vía HTTP, se buscará upload_max_filesize y se cambiará el valor por defecto 2M (2 MB), por el que se desee. No se recomienda poner un valor alto.
; Maximum allowed size for uploaded files. upload_max_filesize = 2M
Para trabajar con sesiones, se especificará un directorio donde se guarden los archivos temporales. Al igual que dos pasos antes, se buscó session.save_path y se le da el valor de un directorio que exista (o que se cree): session.save_path = "C:/Servidor/PHP/sessions/". A continuación se copia el PHP.ini a la carpeta C:/Windows/ o C:/WinNT/ según la versión de Windows.
Si se accede mediante el navegador a la dirección http://127.0.0.1/info.PHP o http://localhost/info.PHP (127.0.0.1 = localhost) con el Apache activo se debe visualizar una página de información de PHP.
Aplicación web para la gestión de una cartera de clientes
91
Instalación de MySQL - Web oficial: http://www.mysql.com
Instalación de una versión 4.1.9: en este caso se buscará la versión que corresponda en los downloads para Windows.
Existen dos tipos de archivo descargables, en ZIP y en EXE. Se recomienda el ZIP porque sólo con descomprimir está listo, y luego para actualizar la versión es más sencillo. El instalador EXE lleva un setup que, por defecto, se instala en C:/MySQL/. Se recomienda elegir otra ruta de instalación, por ejemplo C:/Servidor/MySQL/ para tener el PHP y MySQL en la misma carpeta. Una vez finalizada la instalación, sólo hay que llamar al winmysqladmin.exe que estará en C:/Servidor/MySQL/bin/ y la primera vez que se ejecute pedirá un nombre de usuario y contraseña, que se introduce sin complicación. Por ejemplo se puede poner el usuario "Pepe" y la contraseña "hola”. Aplicación web para la gestión de una cartera de clientes
92
Ahora al lado del reloj saldrá un semáforo. Si el semáforo se pone en verde, perfecto, si no, algo ha fallado.
Por defecto, MySQL crea un usuario de nombre root y sin contraseña, y éste es el usuario que se usará en los script o en las aplicaciones que lo pidan (foros, PHP Nuke, etc.).
Instalación de PHPMyAdmin - Web oficial: http://www.PHPmyadmin.net
PHPMyAdmin es una utilidad que sirve para interactuar con una base de datos de forma muy sencilla y desde una interfaz web. Sirve por ejemplo para crear bases de datos, tablas, borrar o modificar dados, añadir registros, hacer copias de seguridad, etc. Es una aplicación tan útil que casi todos los hosting con MySQL disponen de ella, por ello se analizará su instalación. Además, se emplea para crear los usuarios MySQL y así utilizar las bases de datos de forma segura. Al ser una aplicación escrita en PHP, necesita de Apache y MySQL para poder funcionar.
Aplicación web para la gestión de una cartera de clientes
93
Si se accede a la página oficial, se encuentra en la sección de downloads con una lista de links, y el que se debe elegir es el ZIP de la última versión. En este caso se utilizará la versión 2.6.1 de esta aplicación, que es la versión disponible en la fecha de actualización de este manual.
La instalación es relativamente sencilla: extraer todo el ZIP en la carpeta raíz de la web. Cuidado, en la carpeta de la web, C:/Servidor/WEB/ y no dentro de la carpeta del PHP o similares.
Ahora se realizará una pequeña configuración del PHPMyAdmin. Para ello se editará el archivo config.inc.PHP y, leyendo de arriba hacia abajo, se buscará la primera aparición de la siguiente línea:
$cfg['PmaAbsoluteUri'] = '';
Debe darse la ruta absoluta donde está el PHPMyAdmin. En este caso sería así:
$cfg['PmaAbsoluteUri'] = 'http://localhost/PHPmyadmin/';
Recuerde que se puede poner localhost o 127.0.0.1. Ahora se buscará si aparece algo como esto:
$cfg['blowfish_secret'] = '';
Se pondrá una cadena de caracteres cualquiera, que servirá de semilla para la encriptación de contraseñas al usar la autentificación con cookies:
$cfg['blowfish_secret'] = 'aquí puedes poner lo que quieras';
Aplicación web para la gestión de una cartera de clientes
94
Y se guarda el archivo, pero no se cierra. Se puede probar PHPMyAdmin para ver si funciona: http://localhost/PHPmyadmin/
Instalación EASYPHP - Web oficial: www.easyPHP.org
La otra opción es la de instalar directamente los 4 componentes anteriormente explicados utilizando esta herramienta. Es necesario descargar el archivo de la página: www.easyPHP.org, su distribución es gratuita.
EasyPHP es un completo paquete de software que te permite usar toda la potencia y flexibilidad que ofrece el dinámico lenguaje PHP y un eficiente uso de las bases de datos. El paquete incluye un servidor Apache, MySQL, completa ejecución de código PHP, así como herramientas de desarrollo para tu sitio web o tus aplicaciones.
Una vez descargado debe ejecutarse. Ejecutar EasyPHP consiste en poner en marcha el servidor Apache y MySQL. En la instalación, se crea un acceso directo en el menú de Inicio en Inicio/Programas/EasyPHP1.7. Una vez ejecutado EasyPHP, se inserta un icono en la barra de tareas. Un clic derecho sobre el icono da acceso a un menú con varias opciones: 1. Ayuda: ayuda de EasyPHP. 2. Archivos Log: mensajes de error generados por Apache, MySQL y EasyPHP. 3. Configuración: acceso a las diferentes herramientas de configuración. 4. Explorar: abre el directorio "www" en el explorador de Windows. 5. Web local: abre la web local (con los directorios que se han creado).
Aplicación web para la gestión de una cartera de clientes
95
6. Reiniciar: reinicia Apache y MySQL. 7. Iniciar / detener: inicial detiene Apache y MySQL. 8. Salir: cierra EasyPHP.
Para que las páginas PHP sean interpretadas, es obligatorio que estén dentro del directorio "www" o en un alias que se haya creado. El servidor Apache esta configurado para que abra un archivo index cuando se entra en la dirección 'http://localhost/' (Apache debe estar iniciado). Esta es la página de inicio por defecto, prueba que EasyPHP está funcionando. Para visualizar las páginas basta con abrir la "Web Local" o bien acceder a "Administración" y usar tu alias.
Instalación biblioteca Jpgraph - Web oficial: www.aditus.nu
Para poder generar gráficos en la aplicación se utilizará la herramienta JPGRAPH. Es una librería que incluye una serie de clases -código orientado a objetos- que sirven para crear imágenes con todo tipo de gráficas, dinámicamente desde páginas PHP.
El sistema está muy depurado y soporta multitud de funcionalidades, por lo que seguramente se encontrará solución a casi cualquier necesidad en el ámbito de creación de gráficas.
Algunas de las características del sistema son: •
Reducido peso en bytes de las imágenes resultado.
•
Soporte a las librerías GD1 o GD2.
Aplicación web para la gestión de una cartera de clientes
96
•
Uso de la Interpolación matemática para obtener curvas a partir de unos pocos valores.
•
Diversos tipos de gráficas 2D o 3D, como de puntos, líneas, tartas, barras, cajas, etc.
•
Escalas flexibles tanto en el eje X como el Y, que se ajustan al juego de datos que se tenga que representar.
•
Soporte para generar gráficas con varios juegos de valores a la vez.
•
Configurable con distintos tipos de colores, leyendas, tipografías, imágenes de fondo, etc.
Es una herramienta muy potente para la generación de gráficos en la página web: •
Es una librería gratuita (para uso no comercial), fácil de instalar y de fácil manejo.
•
Incluye una completa documentación.
•
Además de generar muchos tipos de gráficos, permite 'customizar' casi todo lo que se ve, resultando esto muy útil para integrar perfectamente el gráfico en el diseño de la web.
•
La forma de integrar el gráfico es muy sencilla: únicamente es necesario incluir una imagen (etiqueta ) cuyo src sea el script PHP que generará el gráfico.
Aplicación web para la gestión de una cartera de clientes
97
Configuración Jpgraph. Para usar esta librería, lo primero que hay que hacer es descargar la librería jpgraph (http://www.aditus.nu/jpgraph/jpdownload.PHP), se descomprime la librería en la carpeta donde esté la aplicación. Después, se modificarán los archivos PHP.ini. En estos documentos, habrá que eliminar el “;” que hay al principio de la línea: “;extension=PHP_gd2.dll”. Una vez eliminado el “;” funcionará correctamente.
CONFIGURAR BD APLICACIÓN.
Para empezar a trabajar con la aplicación, una vez instalado todo el software anteriormente detallado, es necesario también configurar la BD. Para trabajar con la aplicación es necesario cargar primero la BD con sus tablas, antes de realizar ninguna otra operación, se ejecutará el archivo Home.PHP. De esta forma, se cargan la BD y las tablas. Como se ha dicho antes, para tener acceso a la aplicación hay que estar registrado anteriormente. Al ejecutar el archivo Home.PHP se crea por defecto un usuario: •
Nombre usuario: administrador.
•
Contraseña: 1.
Aplicación web para la gestión de una cartera de clientes
98
Una vez ejecutado el archivo Home.PHP, se entra en la aplicación utilizando esta cuenta de usuario. Como se puede ver, este usuario tiene perfil
administrador, con lo cual, podrá dar acceso a través de la aplicación a los otros usuarios.
Aplicación web para la gestión de una cartera de clientes
99
MANUAL
Para acceder a esta aplicación es necesario introducir el nombre de usuario y la contraseña.
Pantalla de autentificación.
Imagen 11.
Se encuentran dos textbox, uno para el nombre de usuario y otro para la contraseña. El textbox de la contraseña tiene activada la característica de password, lo que quiere decir que cuando se está tecleando la contraseña salen asteriscos en vez de letras. Existen dos botones, uno de ellos para confirmar y el otro para borrar los campos si se ha producido un error.
Aplicación web para la gestión de una cartera de clientes
100
Si el usuario introduce bien los datos y está autorizado para entrar en la aplicación, se conectará (imagen 13). En cambio, si el usuario no está autorizado saldrá un mensaje de error que le permitirá volver a la página de autenticación (imagen 12).
Pantalla Error
Imagen 12.
Al ser varios perfiles, se han diseñado una serie de pantallas del perfil comercial.
Aplicación web para la gestión de una cartera de clientes
101
PERFIL COMERCIAL Pantalla de inicio
Imagen 13.
En esta imagen 3 se puede ver la pantalla de inicio para cualquier comercial, las diferentes opciones del menú son:
Home.
Clientes.
Ventas.
Informes.
Mensajes.
Aplicación web para la gestión de una cartera de clientes
102
¾ OPCION CLIENTES Una vez elegida esta opción en el menú principal, aparece otra serie de opciones relacionadas con clientes. Son las siguientes:
Agregar.
Borrar.
Modificar.
Lista.
Buscar.
Mis Clientes: en esta opción el comercial puede acceder de forma rápida y sencilla a un listado de sólo sus clientes.
Pantalla Agregar Cliente
Imagen 14.
Aplicación web para la gestión de una cartera de clientes
103
En esta pantalla se ve como se agregan los clientes a la base de datos. Hay una serie de TextBox para ir introduciendo la información del usuario: 9 DATOS CLIENTE
Nombre.
Apellidos.
Teléfono.
DNI.
Domicilio.
Provincia.
Email.
9 DATOS EMPRESA
Nombre Empresa.
Teléfono.
Dirección.
Provincia.
Descripción: se puede introducir algún dato que no haya sido incorporado en los otros campos.
Existe esta distinción entre información del cliente y la empresa para poder gestionarla y diferenciarla mejor. Si, por ejemplo, en una campaña de marketing se desea apuntar directamente al cliente, se necesita su dirección y no la de la empresa.
Aplicación web para la gestión de una cartera de clientes
104
Pantalla Borrar Cliente
Imagen 15.
En esta pantalla se puede borrar un cliente, para ello el campo clave es el DNI. Se introduce el DNI del cliente a borrar.
Aplicación web para la gestión de una cartera de clientes
105
Pantalla Modificar Cliente
Imagen 16.
Esta pantalla es parecida a la de baja de clientes. Sólo es necesario introducir el DNI del cliente a modificar. Si el DNI es correcto se pasa a la siguiente pantalla.
Aplicación web para la gestión de una cartera de clientes
106
Pantalla Modificación Verificada.
Imagen 17.
En esta pantalla, una vez verificada la existencia del cliente, aparecerán en los diferentes Textbox la información que se había introducido en su alta. Se modifican los datos incorrectos y se aceptan los cambios y la información de este cliente quedará modificada.
Aplicación web para la gestión de una cartera de clientes
107
Lista Clientes
Imagen 18.
Se tiene acceso a todos los clientes de la empresa, por lo que deberá existir una opción donde sólo se podrán ver los clientes de un comercial. Por ejemplo, en una empresa grande es interesante poder tener acceso rápido a los clientes de un determinado comercial. Observe el ejemplo siguiente.
Aplicación web para la gestión de una cartera de clientes
108
Mis Clientes.
Imagen 19
Ahora la lista de clientes ha disminuido, ya que en la lista anterior sólo hay un cliente de este comercial. Tanto en la opción Clientes como en la de Mis Clientes se tiene la opción de imprimir la lista de los clientes con sus respectivos campos.
Aplicación web para la gestión de una cartera de clientes
109
Buscar
Imagen 20.
Ésta es la pantalla de búsqueda de un cliente mediante su DNI. Si el DNI introducido es correcto se pasará a la siguiente pantalla (imagen 11), si no, saldrá una pantalla de error avisando que el DNI introducido es incorrecto.
Aplicación web para la gestión de una cartera de clientes
110
Buscar Verificado
Imagen 21.
Ésta es la página que se obtiene al introducir el DNI de un cliente. Para que salga esta información, habrá una verificación del DNI introducido y siendo correcto, proporcionaría la información que haya de ese cliente.
¾ OPCIÓN VENTAS En esta opción, en la barra de navegación compuesta por dos pestañas, se tienen: nueva venta y mis ventas.
Aplicación web para la gestión de una cartera de clientes
111
Nueva Venta
Imagen 22.
En esta pantalla se introduce la información de las ventas. La información que se guarda es:
Fecha de la Venta.
DNI del cliente.
NIF de la empresa.
Objeto de la venta: aquí se incorpora un desplegable con los distintos productos de la empresa.
Precio individual: irá en relación al producto elegido anteriormente, proporcionando de forma automática el precio de éste.
Cantidad.
Aplicación web para la gestión de una cartera de clientes
112
Precio Final: dependiendo de la cantidad elegida y el precio individual, indicará el total de la venta.
Tipo de pago: al contado, cheque, transferencia, tarjeta de crédito, etc.
Comentario: se puede incorporar algún dato que sea de interés para la venta y que no haya sido recogido en los otros campos.
Cabe destacar, que cada vez que hay una nueva entrada en la tabla ventas, tanto el campo referencia como el campo DNI del comercial se incorporan de forma automática, la propia aplicación provee de estos datos. Más adelante se verá de que campos está constituida la tabla ventas como el resto de tablas.
Se puede observar como en la imagen anterior, existe un botón importar, al pulsarlo se actualiza la base de datos de los productos con su respectivo precio. Para actualizarlo, leerá de un archivo tipo .csv donde estarán escritos los productos con sus precios. Este archivo se encuentra en la carpeta Tablas. Así la próxima vez que se pulse el botón desplegable, saldrán los nuevos productos indicados en el archivo .csv.
A continuación, Mis Ventas, se recogen exclusivamente las ventas del comercial que está conectado a la aplicación. Existe un botón al final para imprimir la lista de ventas.
Aplicación web para la gestión de una cartera de clientes
113
Mis Ventas
Imagen 26.
Cuando se utiliza la opción de ver la información del comercial o del cliente, en la venta nueva sale toda su información, entre ellas su dirección de email, si se pincha sobre ella, se abre el asistente de Gmail para enviar un email a dicho comercial o cliente.
Aplicación web para la gestión de una cartera de clientes
114
Mis Ventas Información Comercial
En esta nueva pantalla, en la de Mis Ventas, la lista es más reducida que la lista de ventas totales, esto es debido, como se ha dicho antes, a que sólo están disponibles las ventas de ese comercial, tratando de agilizar su trabajo y para que no tengan acceso otros comerciales a las ventas que realiza, impidiendo así problemas, por ejemplo, que un comercial quite a otro un cliente. Se pueden borrar las ventas que estén erróneas pulsando el último icono que hay por cada entrada en la lista de ventas.
Aplicación web para la gestión de una cartera de clientes
115
¾ INFORMES En esta opción, se tiene acceso a una única opción, la de Plan de Cuentas.
Uno de los objetivos que tiene esta aplicación es generar de forma automática distintos informes, estadísticas, cálculos y gráficos. Es necesario esta parte para poder así dar la facilidad a los directivos de poder sacar conclusiones rápidas del estado de la empresa.
En el perfil de comercial, dentro de la opción informes sólo puede acceder a la opción de Plan de Cuentas. En los otros perfiles se observa como existen otras opciones. Aquí el comercial es capaz de dar de alta un Plan de Cuenta ayudándose de la aplicación, para ello tendrá que rellenar un formulario. Esta pantalla muestra los diferentes planes de cuenta que existen en la base de datos, y con la opción de añadir otros distintos.
Aplicación web para la gestión de una cartera de clientes
116
Plan de Cuenta
Imagen 27.
Al lado de cada plan de cuentas, está la opción de borrar; al pinchar sobre ella, se eliminará.
Para añadir un Plan de Cuentas nuevo a la base de datos, es necesario pinchar sobre el botón nuevo, después aparecerá una nueva ventana para rellenar un formulario.
Aplicación web para la gestión de una cartera de clientes
117
Los campos a introducir en este formulario son: A. INFORMACIÓN GENERAL:
Nombre ID.
Responsable.
Participante1: los siguientes campos teléfono y email son del participante 1.
Telefono1.
Email1 .
Participante2 los siguientes campos teléfono y email son del participante 2.
Telefono2 .
Email2 .
Participante 3: los siguientes campos teléfono y email son del participante 3.
Telefono3 .
Email3 .
Fecha Fin Plan.
Periodo Plan.
Fecha Revisión.
Responsable Revisión.
Fecha Próxima Revisión.
Acciones.
Aplicación web para la gestión de una cartera de clientes
118
B. OBJETIVOS PARA LA CUENTA
Resumen Ejecutivo: es la parte más importante de un plan de negocios. Mucha gente solo leerá esto. Si no logra acaparar la atención y el interés de una manera rápida y entusiasta, el plan será descartado.
Resumen de los Objetivos.
Objetivos de desarrollo de negocio.
Objetivos de beneficios.
Objetivos para la cuenta.
Las acciones para conseguir el objetivo se agrupan en: acciones a realizar, los recursos que se necesitan, la fecha y el responsable que dirige esta acción. La aplicación da posibilidad de almacenar 4 acciones.
Plan de Acción. o Acción 1. o Recurso 1. o Fecha 1. o Responsable 1 . o Acción 2 . o Recurso 2 . o Fecha 2 . o Responsable 2 . o Acción 3 . o Recurso 3 . o Fecha 3 .
Aplicación web para la gestión de una cartera de clientes
119
o Responsable 3 . o Acción 4 . o Recurso 4 . o Fecha 4 . o Responsable 4 .
C. PLAN DE CUENTA - PROPOSICIÓN DE VALOR
Proposición de valor para la cuenta: aquello que ofrece la empresa y la diferencia de la competencia.
Proposición de valor para la unidad de negocio: Una unidad de negocio es una división de la empresa.
Proposición de valor para otras unidades de negocio:
Plan de acción o Categoría Recurso 1. o Requisito1. o Tiempo1. o Categoría Recurso 2. o Requisito 2. o Tiempo 2. o Categoría Recurso 3. o Requisito 3. o Tiempo 3. o Categoría Recurso 4. o Requisito 4. o Tiempo 4.
Aplicación web para la gestión de una cartera de clientes
120
Factores para el éxito: Aquello que tiene suceder para que el plan de cuenta sea un éxito a su término.
Plan de Cuenta Formulario
Aplicación web para la gestión de una cartera de clientes
121
Imagen 28.
Imagen 29.
¾ MENSAJES Cada usuario de la aplicación puede enviar mensajes a otro usuario, lo que es una forma interna de comunicarse.
Aplicación web para la gestión de una cartera de clientes
122
Enviar Mensajes.
Imagen 30.
Como se puede ver en la imagen anterior, primero hay una lista con los diferentes usuarios de la aplicación, seleccionando uno se puede enviar un mensaje individual a ese usuario. A la derecha, hay un par de botones, usuarios y comerciales, la aplicación da la facilidad de enviar a la vez un mensaje a todos los usuarios o comerciales de la empresa en un solo clic. Se crearon estos botones para cuando es necesario enviar un mensaje a todos los usuarios a la vez, por ejemplo para dar un aviso, así de esta forma, la difusión es inmediata y sencilla.
Aplicación web para la gestión de una cartera de clientes
123
Una vez elegido tanto para un solo destinatario como para varios, se abre una nueva ventana para escribir el texto del mensaje.
Escribir Mensaje.
Imagen 31.
Cada usuario tiene una cuenta de mensajes independiente, tendrá acceso a ésta pinchando en la parte de la cabecera en el número que aparece a continuación de Tienes X mensajes nuevos, donde está puesta la X es donde el usuario tendrá que pinchar para acceder a su buzón de mensajes. Aquí se puede observar la ventana del buzón de mensajes.
Aplicación web para la gestión de una cartera de clientes
124
Buzón de Mensajes.
Imagen 32.
Aquí se puede ver como hay una entrada por cada uno de los mensajes enviados al usuario, pudiendo responder y borrar el mensaje de forma sencilla.
PERFIL DIRECTIVO Lo visto en el perfil comercial, se repite en el perfil del directivo, por ello, aquello que es común para los dos, no se repetirá.
La pantalla de inicio es igual, salvo que el menú de la izquierda es distinto.
Aplicación web para la gestión de una cartera de clientes
125
Inicio
Imagen 33.
Se le añade en el menú de la izquierda la opción Comerciales y la de Informes. Se pueden ver algunas modificaciones que hay en las opciones Clientes y
Ventas para el perfil Directivo.
La opción Clientes es igual excepto que la opción de Mis Clientes no está activa.
Aplicación web para la gestión de una cartera de clientes
126
¾ VENTAS La opción Ventas tiene activada la opción Ventas en Curso, al directivo se le da la opción de poder ver todas las ventas que hay en la empresa, teniendo la opción de imprimirlas si necesitará tener un listado.
Ventas en curso.
Imagen 23.
En esta pantalla, en la pestaña de ventas en curso, se dispone de todas las ventas que hay en la empresa. En la lista están casi todos los campos, los más importantes, si es necesario consultar todos, sólo es necesario pinchar en el icono que hay a la derecha del todo.
Aplicación web para la gestión de una cartera de clientes
127
Si se pincha en uno de esos iconos sale esta nueva pantalla con toda la información de la venta.
Visualizar Venta
Imagen 24.
Como se puede ver, en esta pantalla aparece de una forma más clara la información de la venta realizada.
Aplicación web para la gestión de una cartera de clientes
128
¾ COMERCIALES Opción Comerciales, esta opción no estaba en el perfil Comercial, al seleccionarla se encuentran una serie de opciones:
Agregar.
Borrar.
Modificar.
Lista.
Buscar.
Agregar Comercial
Imagen 34.
Aplicación web para la gestión de una cartera de clientes
129
Esta pantalla es para incorporar un comercial a la base de datos. Para ello es necesario rellenar este formulario. Los campos a completar son: 9 DATOS DEL COMERCIAL
Nombre.
Apellidos.
Teléfono.
DNI.
Domicilio.
Provincia.
Email.
9 OTROS DATOS
Departamento.
Teléfono.
Previsión Ventas: en un principio lo que se espera que facture este comercial.
Subordinado de: si depende de un comercial superior.
Comentario: algún dato de interés que no queda recogido en los anteriores campos.
En la opción tanto de buscar como de borrar aparece una ventana como la siguiente, donde es necesario introducir el DNI del comercial a buscar o borrar respectivamente.
Aplicación web para la gestión de una cartera de clientes
130
Borrar Comercial
Imagen 35.
En la opción de modificar, aparece una pantalla como la anterior, una vez introducido el DNI del comercial a modificar, se pasa a esta nueva pantalla:
Aplicación web para la gestión de una cartera de clientes
131
Modificar Comercial
Imagen 36.
Cuando se utiliza esta opción, la de modificar, aparece un formulario igual que el formulario para agregar, y en cada textbox se puede encontrar la información que hay en la BD.
¾ OPCIÓN INFORMES Dentro de la opción Informes, hay acceso a 5 nuevas opciones que son:
Plan de Cuenta.
Informes.
Productos.
Comercial.
Cliente.
Aplicación web para la gestión de una cartera de clientes
132
Lista Planes de Cuenta
Imagen 37.
En esta primera opción, Plan de Cuenta, es común a la del perfil comercial, por ello no se va a volver a tratar y se pasa a la siguiente opción.
La opción Informes da la posibilidad de generar informes jerárquicos. Como se ha visto antes, cuando un comercial se introduce en la base de datos, hay una casilla que dice si es subordinado de alguien, de otro comercial, pues en esta opción de Informes Jerárquicos, da una lista de los comerciales que tienen a su cargo a otros comerciales, generando un informe por el grupo formado por el comercial jefe y sus subordinados.
Aplicación web para la gestión de una cartera de clientes
133
Lista Comerciales Jefe Informes
Imagen 38.
Si se selecciona ese comercial que aparece como comercial jefe, aparece una nueva ventana donde se detallan los comerciales que dependen de él. Con el nombre de cada comercial, se accederá de forma sencilla a su información personal con sólo pulsar sobre su nombre. En la siguiente imagen se puede ver que hay acceso a distintos informes del grupo.
Aplicación web para la gestión de una cartera de clientes
134
Lista Informes
Imagen 39.
Imagen 40. Aplicación web para la gestión de una cartera de clientes
135
Este informe detalla acerca de este grupo de trabajo: 1) Cada una de las ventas realizadas por cada uno de los comerciales.
Imagen 41. Ejemplo Ventas.
2) Incorpora un gráfico que indica por productos la cantidad vendida. (En el ejemplo se hizo vendiendo tres tipos de coches).
Imagen 42. Ejemplo Ventas.
Aplicación web para la gestión de una cartera de clientes
136
3) Ventas por comerciales.
Imagen 43. Ejemplo Ventas.
4) Ventas por semestre. 5) Ventas por trimestre. 6) Ventas por semana.
La siguiente opción a abordar, es la opción Productos. En esta pantalla sale una lista de los diferentes productos a los que se dedica la empresa y poder así estudiar su rentabilidad.
Aplicación web para la gestión de una cartera de clientes
137
Lista Productos Informe
Imagen 44.
Seleccionando sobre uno de ellos se abre una nueva ventana que explica pormenorizadamente el estado de las ventas de ese producto. Al principio se tiene una lista con los distintos informes que están disponibles, pinchando en cada uno se va directamente a él.
Aplicación web para la gestión de una cartera de clientes
138
Producto Informe
Imagen 45
Imagen 46. Aplicación web para la gestión de una cartera de clientes
139
La página para el ejemplo Audi, aporta una serie datos que se detallan a continuación: 1) Cada venta realizada del producto.
Imagen 47. Ejemplo Ventas. En esta tabla se ve como cada comercial esta subrayado, si se pincha sobre él se accede directamente a su información personal sin tener que buscarlo en la aplicación. Al final aparece un icono que al pinchar sobre él, proporciona toda la información que hay sobre esa venta. 2) Gráfico mensual de las ventas.
Imagen 48. Ejemplo Ventas.
De una forma sencilla y en un primer vistazo, se pueden comprobar las ventas que se han hecho de este producto en cada mes. Aplicación web para la gestión de una cartera de clientes
140
3) Ventas totales de todos los productos. Aquí se trata de informar y comparar el producto con el resto, pudiendo sacar conclusiones. Se incorpora un gráfico de tarta para poder ver más clara la comparación entre productos.
Imagen 49. Ejemplo Ventas.
4) Venta para esta semana. 5) Venta para este trimestre. 6) Venta para este semestre. 7) Ventas por comerciales.
En la opción de Informes por Comerciales aparece esta ventana.
Aplicación web para la gestión de una cartera de clientes
141
Lista Comerciales Informe
Imagen 50.
Si se selecciona con el ratón el icono que hay al final de cada entrada proporciona la siguiente información en relación al comercial seleccionado: 1) Ventas por productos: proporciona un listado con todos los productos que ha comprado dicho cliente, ordenándolo por tipo de producto.
Aplicación web para la gestión de una cartera de clientes
142
Imagen 51. Ejemplo Ventas.
2) Venta por meses realizadas por el comercial: un desglose de la cantidad de productos vendidos según los meses del año.
Imagen 52. Ejemplo Ventas.
3) Ventas para este semestre. 4) Ventas para este trimestre. 5) Ventas para esta semana.
Aplicación web para la gestión de una cartera de clientes
143
Ahora se tratará la ultima opción: informes por clientes.
Lista Clientes Informe
Imagen 53.
Pinchando en el icono de cualquier cliente de la base de datos aparece su informe, una lista con los diferentes informes a los que se puede ir de forma directa:
Aplicación web para la gestión de una cartera de clientes
144
Informe Cliente
Imagen 54.
La información de la que se dispone es: 1) Ventas totales: muestra todas las compras que ha realizado el cliente. Al final, se puede seleccionar por cada venta la información respecto a esta. 2) Ventas totales por productos. 3) Ventas por comercial. 4) Ventas para este semestre. 5) Ventas para este trimestre. 6) Ventas para esta semana.
Aplicación web para la gestión de una cartera de clientes
145
Como último punto del perfil de administrador, se ha añadido la creación de archivos .csv. Estos archivos se crean de forma automática cuando se eleije un producto dentro de los informes de productos. Los .csv que se crean son:
Comparación ventas de los últimos tres años: aquí se recoge la información de las ventas según los años. La nomenclatura es DatosGraficoTresAnosProducto, donde producto varía dependiendo del producto que se ha visualizado.
Ventas anuales: se recoge las ventas que se han hecho en el ultimo año. La nomenclatura es: DatosGraficoMensualProducto donde producto varía dependiendo del producto que se ha visualizado.
Estos archivos se encuentran en la carpeta Tablas.
PERFIL ADMINISTRADOR El administrador es el encargado de dar acceso a la aplicación, por ello se le facilita la opción Usuarios, para que desde aquí el administrador dé acceso a los usuarios.
Se tienen las opciones:
Agregar usuario.
Borrar usuario.
Modificar usuario.
Lista usuarios.
Buscar usuario.
Aplicación web para la gestión de una cartera de clientes
146
Agregar Usuario
Imagen 55.
En la opción agregar usuario tiene que rellenar un formulario con los siguientes campos: 1) Usuario: nombre que empleará el usuario para conectarse a la aplicación. 2) DNI. 3) Contraseña: contraseña para conectarse. 4) Repetir contraseña: comprobar que no se ha introducido mal la contraseña. Si las dos contraseñas no son las mismas, da un mensaje de error.
Aplicación web para la gestión de una cartera de clientes
147
5) Permiso: es un radiobutton para el que sólo se puede seleccionar una opción, el perfil de este usuario puede ser: comercial, directivo o administrador.
La pantalla de modificar, borrar y buscar es igual que las que se ha visto antes, con una pantalla inicial para introducir el DNI del usuario.
En la pantalla de modificar aparece la siguiente, siempre con la misma estructura que el resto, apareciendo diferentes textbox con la información introducida anteriormente para que la modificación sea más cómoda:
Modificar Usuario
Imagen 56. Aplicación web para la gestión de una cartera de clientes
148
Como última opción se podrá obtener un listado de los distintos usuarios de la aplicación, con la opción de imprimirla.
Lista Usuarios
Imagen 57.
Aplicación web para la gestión de una cartera de clientes
149
8.
MANTENIMIENTO
El ciclo de desarrollo del sistema se completa con la implantación y entrega del sistema al cliente, proporcionando una garantía de funcionamiento y un servicio técnico que realice el mantenimiento posterior de la aplicación implantada.
Aplicación web para la gestión de una cartera de clientes
150
MANTENIMIENTO
Mantenimiento es la modificación de un producto software después de su entrega al cliente o usuario para corregir defectos, para mejorar el rendimiento u otras propiedades deseables, o para adaptarlo a un cambio de entorno. El mantenimiento del software se ha convertido en la principal actividad en cuanto a recursos necesarios y costes.
Múltiples estudios señalan que el mantenimiento es la parte más costosa del ciclo de vida del software. Estadísticamente está comprobado que el coste de mantenimiento de un producto software a lo largo de toda su vida útil supone más del doble que los costes de su desarrollo.
Los tipos de mantenimiento que se diferencian son: 1. No Planificable:
Correctivo Urgente (UC): localizar y eliminar los posibles defectos de los programas que no son bloqueantes.
2. Planificable:
Correctivo No Urgente (NUC): localización y eliminación de los posibles defectos de los programas que no son bloqueantes.
Perfectivo (PER): adición al software de nuevas funcionalidades solicitadas por los usuarios.
Adaptativo (A): modificación del software para adaptarlo a cambios en el entorno de trabajo (hardware o software).
Aplicación web para la gestión de una cartera de clientes
151
Preventivo (PRE): modificación del software para mejorar sus propiedades (calidad, mantenibilidad, etc.).
Un resumen del papel que representa cada tipo de mantenimiento aparece en la figura:
Imagen Resumen Mantenimiento.
Mientras que el cambio tecnológico afecta indirectamente a los sistemas software, el entorno de trabajo y los usuarios lo hacen directamente, produciendo
demandas
de
mantenimiento
adaptativo
y
perfectivo
respectivamente.
Aplicación web para la gestión de una cartera de clientes
152
9.
VALORACIÓN ECONÓMICA
En este punto se hace una valoración económica de la puesta en funcionamiento de esta aplicación.
Aplicación web para la gestión de una cartera de clientes
153
VALORACIÓN ECONÓMICA
Para desarrollar este proyecto hay que valorar distintos puntos: 1) Personal. Para el desarrollo de esta aplicación ha sido necesario contar con:
Analista de sistemas: Persona que atiende los requerimientos o necesidades de información de los usuarios de un sistema. Es la encargada de estudiar la aplicación para comprenderla y encontrar mejores maneras de realizarla. Coste: 2.000 €.
Analista programador: El analista tiene como cometido analizar un problema y describirlo con el propósito de ser solucionado mediante un sistema de información. Coste: 2.000€.
Programador: El programador cuya función consiste en trasladar las especificaciones del analista en código ejecutable por el ordenador. Coste: 6.000 €.
Jefe de proyecto: la figura clave en la planificación, ejecución y control del proyecto y es el motor que ha de impulsar el avance del mismo mediante la toma de decisiones tendentes a la consecución de los objetivos. Coste: 5.000 € (dedicación 20%).
Aplicación web para la gestión de una cartera de clientes
154
Sumando los costes por personal, el total asciende a:
PERSONAL Analista de sistemas Analista programador Programador Jefe de proyecto Total
COSTE 2.000 € 2.000 € 6.000 € 5.000 € 15.000 €
Tabla Costes Personal. 2) Software. Para realizar esta aplicación y para su uso normal son necesarias estas herramientas que a continuación se exponen:
PHP: de distribución gratuita.
MySQL: la compra del paquete básico de MySQL, MySQL Network Basic, es de 495 € / año.
APACHE: de distribución gratuita.
JPGRAPH: el coste de esta librería es de 106.25 €.
El coste total del Software sería de:
SOFTWARE PHP MySQL Apache JPGRAPH Total
COSTE 0,00 € 495,00 € 0,00 € 106,25 € 601,25 €
Tabla Costes Software.
Aplicación web para la gestión de una cartera de clientes
155
3) Hardware. Esta aplicación tiene una arquitectura web, y es necesario un servidor donde se alojará la aplicación y donde se harán todas las operaciones de la BD.
El sistema que se ha elegido para que funcione como servidor es el siguiente:
Tabla Costes Hardware.
El total del coste tanto de personal, software y hardware sería de:
TIPO Personal Software Hardware TOTAL
COSTE 15.000,00 € 601,25 € 1.407,08 € 17.008,33 €
Tabla Costes Total.
Aplicación web para la gestión de una cartera de clientes
156
10. PLANIFICACIÓN REAL
Aplicación web para la gestión de una cartera de clientes
157
Planificación real
A continuación se encuentra un diagrama Gant detallando las diferentes partes que forman el proyecto y su duración.
oct 2005 ID FASE
INICIO
FINAL
nov 2005
dic 2005
ene2006
feb 2006
mar 2006
abr 2006
may 2006
jun2006
jul 2006
ago 2006
DURACIÓN 2/10 9/10 16/10 23/10 30/10 6/11 13/11 20/11 27/11 4/12 11/12 18/12 25/12 1/1 8/1 15/1 22/1 29/1 5/2 12/2 19/2 26/2 5/3 12/3 19/3 26/3 2/4 9/4 16/4 23/4 30/4 7/5 14/5 21/5 28/5 4/6 11/6 18/6 25/6 2/7 9/7 16/7 23/7 30/7 6/8 13/8 20/8
1 IDN
03/10/2005
31/10/2005
4,2w
2 ARQ
17/10/2005
15/11/2005
4,4w
3 EAQ
01/11/2005
30/11/2005
4,4w
4 DEX
15/11/2005
15/12/2005
4,6w
5 DIN
30/11/2005
30/12/2005
4,6w
6 PRO
02/01/2006
15/08/2006
32,4w
7 PRU
03/07/2006
25/08/2006
8w
Para el desarrollo de las primeras 5 fases se utilizaron 3 semanas, como se puede ver, una tarea empieza cuando la otra aún no ha terminado; siempre se empieza la siguiente fase cuando la anterior ha quedado prácticamente terminada, el objetivo de empezar una fase mientras la otra no se ha dado totalmente por concluida es por si fuera necesario modificar la anterior.
Aplicación web para la gestión de una cartera de clientes
158
11. PRUEBAS DEL SISTEMA
Una vez desarrollados y probados cada uno de los programas y componentes que forman el software, deben realizarse una serie de pruebas para conseguir integrar todo el sistema.
Aplicación web para la gestión de una cartera de clientes
159
PRUEBAS DEL SISTEMA
En esta fase, se someterá a una serie de verificaciones encaminadas a garantizar un nivel de fiabilidad aceptables. Esta fase es crítica y debe ser por tanto planificada, diseñada y realizada con el mismo rigor y control que se desarrolla el sistema.
Para ello, se realiza un ciclo de pruebas: 1) Pruebas
de
funcionamiento
Encadenamiento: de
cada
verifican
componente
el
software.
correcto Se
han
comprobado unitariamente tanto el programa cliente como los servicios a los que llama. 2) Pruebas de Integración: verifican la integración de todos los componentes de la aplicación: base de datos, archivos, ventanas, programas, etc. Según se integra una función con sus interfaces de entrada, salida y externos, se le somete a comprobación su funcionalidad respecto a los requisitos marcados. 3) Pruebas de Explotación: verifican la facilidad que ofrece el sistema para su explotación. Verifican la correcta operación del sistema. 4) Pruebas de Seguridad: verifican los mecanismos de seguridad en cuanto a la accesibilidad al sistema y las funciones permitidas de acuerdo con los perfiles de usuario. Se ha definido información confidencial que sólo puede ser accedida por un grupo de usuarios.
Aplicación web para la gestión de una cartera de clientes
160
5) Pruebas de Sobrecarga: verifican que se ha definido la aplicación para poder soportar estados de estrés en los que se puede ver envuelta. 6) Pruebas de Recuperación: verifican la capacidad del sistema para recuperar la información. 7) Pruebas de Regresión: verifican el correcto comportamiento del sistema ante la modificación de alguno de sus componentes. 8) Pruebas de Aceptación de Usuario: certifican por parte del usuario, la funcionalidad y el rendimiento del sistema, de acuerdo con los requisitos establecidos. 9) Pruebas de Usabilidad: verifican la facilidad de uso del sistema, diseño del interfaz de usuario y Manual de Usuario.
Aplicación web para la gestión de una cartera de clientes
161
12. BIBLIOGRAFÍA
Aplicación web para la gestión de una cartera de clientes
162
BIBLIOGRAFÍA
[BARR01]
Jesús Barranco. Metodología del análisis estructurado de sistemas. Universidad Pontificia Comillas 2001.
[RIVE02]
Enrique Rivero. Luis Martínez. Luis Reina. Juan Benavides. Juan Mª Olaizola. Introducción al SQL para Usuarios y Progamadores. Thomson 2004.
[GLAS04]
Michael K. Glass, Yann Le Scouarnec, Elizabeth Naramore, Gary Mailer, Jeremy Stolz. Beginning PHP, Apache and Mysql Web Development. WROX. 2004.
[ULLM03]
Larry Ullman. PHP for the World Wide Web. Paperback 2003.
[PHP06]
PHP Hypertext Preprocessor – www.PHP.net.
[APAC06]
Apache. The Apache Software Foundation – www.apache.org.
[MYSQ06]
Mysql – www.mysql.com.
[JPGR06]
JpGraph - PHP Graph Creating Library http://www.aditus.nu/jpgraph/about.PHP.
Aplicación web para la gestión de una cartera de clientes
163
[GING95]
Michel Ginguay. Diccionario de Informática y tecnologías afines. Masson.1995.
Aplicación web para la gestión de una cartera de clientes
164
13. CONCLUSIONES
Aplicación web para la gestión de una cartera de clientes
165
CONCLUSIONES
En este apartado se detallarán las conclusiones que se pueden extraer del desarrollo de la aplicación.
Se ha observado que los conocimientos adquiridos durante los cinco años de carrera han sido suficientes para desarrollar esta aplicación. La elección del lenguaje PHP se debe al interés de conocer un lenguaje que no se había utilizado hasta ahora. Este lenguaje ha resultado de fácil uso e intuitivo, y dispone de las funciones necesarias para desarrollar aplicaciones web que hoy en día son muy demandadas.
Esta aplicación da acceso a un número ilimitado de comerciales y directivos, dando la posibilidad de obtener la información de forma ordenada para así conseguir el mejor resultado para la empresa, es decir, conseguir el mayor beneficio económico.
Con este trabajo se ha aprendido cómo desarrollar un proyecto profesional desde su inicio, a partir de las necesidades del cliente, hasta llegar a la aplicación que de solución o satisfacción a éstas.
Aplicación web para la gestión de una cartera de clientes
166
ANEXO I. PLAN DE CUENTA.
Aplicación web para la gestión de una cartera de clientes
167
ACCOUNT PLAN: LA LLAVE DE LA EMPRESA DEL FUTURO
Lo primero que es necesario definir es un account plan (plan de cuenta). Es aquel documento que integra toda la información esencial de los clientes de una organización y establece la dirección hacía unos objetivos que se deben alcanzar así como las acciones requeridas para lograrlos.
¿Cuál es la necesidad de un account plan?. El peso de estos estudios viene por el cambio del concepto de marketing al que las compañías tienen que enfrentarse hoy día. En su origen el marketing no era exactamente una ciencia o una disciplina porque no requería un plan estratégico. Había poca oferta y mucha demanda, simplemente se producía y se vendía por sí mismo sin ningún esfuerzo adicional. Pero el mercado de competencia es abierto y cada vez surgen más empresas que luchan no sólo por lograr su cuota de mercado si no, por arrebatarla a otras empresas del sector. El resultado fue la ola vivida en los últimos tiempos en la que los presupuestos de publicidad e I + D se disparaban, se intenta « colocar » el producto sea como sea. Pero esto ya no es suficiente.
Se está en la era de la tecnología y sobre todo de la información. De ahí el auge de los Sistemas Informativos de Gestión. La razón de su nacimiento es la de servir de medio para recoger, ordenar, elaborar y distribuir información disponible dentro de la empresa y que será utilizada por los distintos departamentos para que cada uno maximice su trabajo logrando los mejores resultados. Porque las empresas se han dado cuenta que la única manera de
Aplicación web para la gestión de una cartera de clientes
168
vender su producto no es producir y luego persuadir para la compra, sino crear un producto que satisfaga las necesidades del consumidor y que una vez producido se venda por sí mismo porque responde a una demanda real. Se trata de invertir el proceso practicado hasta ahora.
Y aquí es donde entra el Account Plan. Va a recoger cuál es el tipo de producto que el público demanda y sobre ello se construirá una estrategia. Queda pues, más que argumentada la necesidad del Account Plan.
Ahora se entra de lleno en lo que es un Account Plan viendo qué posibles datos podrían ser útiles. Si se considera como punto de partida una cuentacliente del grupo se deben evaluar algunos aspectos: •
Definición de negocio / tendencias:
o
Líneas generales de la empresa / historia de esta cuenta.
o
Tendencias financieras (progresión durante años anteriores, beneficios y empleados por unidad de negocio)
•
o
Ventas por región.
o
Productos consumidos y principales competidores.
o
Los clientes que hacen mayor cifra.
Puntos claves que hacen decidirse a los consumidores por el producto e influencias externas en esa decisión (Key Decision Makers and Influencers).
•
Frecuencia de compra y políticas de compra.
•
Relaciones con proveedores.
Aplicación web para la gestión de una cartera de clientes
169
Con esto se podría obtener una radiografía bastante precisa del escenario en que se mueve la cuenta-cliente, así como cuál es la actitud de los consumidores hacia los productos.
Se ha visto, recapitulando, qué es un plan de cuenta, la justificación de su aparición y cuáles son algunos de los aspectos que pueden contener. Pero ahora es posible preguntarse, ¿cuándo se aplican realmente estos documentos, quién los utiliza y sobre todo, de todos los aspectos, cuáles son los que realmente proporcionan esa información de campo del consumidor? Probablemente, los que más van a influir son aquellos que se refieren estrictamente a los comportamientos del consumidor frente al producto y que son realizados por el departamento de marketing y más concretamente por fuerza de ventas. Se hará un pequeño esquema de cómo es el proceso.
Investigación. Implica combinar una serie de fuentes como: medios escritos, internet, informes, etc., para lograr el conocimiento más amplio posible de la empresa. Los datos recogidos serán analizados por especialistas para lograr identificar los factores más relevantes que se incluirán posteriormente en el Account Plan. Estos aspectos se comparan con las actuaciones en los mismos campos de los competidores para reconocer las áreas más débiles de la empresa.
Aplicación web para la gestión de una cartera de clientes
170
El trabajo en equipo.
El siguiente paso es mantener una reunión para profundizar en el conocimiento del equipo de ventas unido a los datos anteriores para llegar al Account Plan completo. En este proceso participan normalmente el equipo de ventas, el manager de la región, responsables de la función marketing y ocasionalmente, algún director del programa de marketing especifico aplicado en la región.
El proceso normalmente se inicia con el equipo de ventas describiendo cuál es el peso de la cuenta, relaciones y contactos, oportunidades y canales en los que están trabajando y otros potenciales. Así mismo, se identifica cuáles son los obstáculos actuales para no lograr el fin: insatisfacción ante el producto, presión de los competidores existentes u otros de reciente aparición.
Esta investigación es revisada con detalle confrontándolo también con el conocimiento previo que se tiene de la cuenta cliente. Una vez que se ha analizado la empresa tanto desde su interior con el análisis DAFO (Debilidades, Amenazas, Fortalezas y Oportunidades) en referencia el producto así como su posición en el entorno y en referencia a sus competidores, se elaborará un documento que recoja unos criterios de preguntas al consumidor que ayuden a mejorar el producto y los resultados de la empresa. Así mismo, este documento contendrá las metas a las que la empresa quiere que llegue su cuenta-cliente como las acciones para lograrlo. El plan se sistematiza, se ordena y se reparte entre aquellos involucrados en la ejecución del plan.
Aplicación web para la gestión de una cartera de clientes
171
Ejecución
En lo que se refiere a la implementación del Account Plan, las opciones son varias y dependerá de la política de la empresa, el presupuesto, etc. Podrá ser:
Encuesta telefónica.
Informes sobre la actuación de los clientes.
Preguntas a través de encuestas en las calles.
Paneles de consumidores.
Investigaciones de mercado.
Finalmente se extraerán conclusiones a partir de las cuales se modificará el producto original con el fin de lograr mayores beneficios en el futuro. Pero se puede ir más allá. Los Account Plan se han convertido en una herramienta tan básica en el actual mercado de competencia que incluso cuando se elaboran planes de fusiones y adquisiciones entre empresas, para valorar una inversión, etc., se utilizan este tipo de documentos que sirven para clarificar los conceptos y caminos para aproximarnos al objetivo, y elimina los obstáculos para lograr las mayores probabilidades de éxito elevadas.
Aplicación web para la gestión de una cartera de clientes
172