Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autora: J i l l T i f a n n y A c o s t a M o n t a e z
Director: J u a n V i c e n t e C a p e l l a H e r n n d e z
Agradecimientos:
Deseo expresar mi ms sincero agradecimiento a
todas aquellas personas que han colaborado de manera directa o indirecta en este
proyecto.
Quiero dar las gracias a mi familia, por confiar en m
y apoyarme en todo momento. Ellos me
han inculcado los valores y principios que
han servido de cimiento, para que hoy se
vea realizado uno de mis objetivos.
Tabla de contenido
1. Introduccin .................................................................................................................. 10
1.2 Justificacin del proyecto........................................................................................ 10
3. Anlisis........................................................................................................................... 22
3.1. Descripcin del proyecto a desarrollar .................................................................. 22
3.2. Seguridad del sistema ............................................................................................ 22
3.3. Diagrama de casos de uso ..................................................................................... 22
3.3.1. Casos de uso del usuario ........................................................................................ 23
3.3.2. Casos de uso del administrador .............................................................................. 24
5. Implementacin ............................................................................................................32
5.1. Tecnologas ........................................................................................................... 30
5.1.1. MySql....................................................................................................................... 32
6. Pruebas ........................................................................................................................ 49
6.1. Evaluacin ............................................................................................................ 48
6.1.1. Pruebas de validacin unitarias .............................................................................. 50
6
7. Conclusiones ............................................................................................................... 64
7.1. Trabajo realizado ........................................................................................................ 64
7.2. Valoracin personal ................................................................................................... 65
8. Referencias .................................................................................................................. 66
9. Anexo: Manual de usuario .......................................................................................... 67
10. Anexo: Crear una cuenta de pruebas en Paypal ...................................................... 91
Tabla de imgenes
Figura 1. Caso de estudio cliente .....................................................................................23
Figura 2. Caso de estudio administrador ....................................................................... 24
Figura 3. Diagrama de clases ...........................................................................................25
Figura 4. Arquitectura tres capas .................................................................................. 28
Figura 5. Interfaz usuario ................................................................................................ 29
Figura 6. Instalador Mysql Server ...................................................................................32
1.
INTRODUCCIN
La razn principal por la que he decidido realizar mi trabajo fin de carrera basado en
las tecnologas PHP, ha venido determinada por el deseo de aprender y profundizar
en el conocimiento del desarrollo de aplicaciones en una plataforma moderna en
constante actualizacin y que considero que tiene un gran futuro. Adems considero
que en concreto este trabajo permite repasar los conceptos fundamentales adquiridos durante la carrera aplicndolos a una solucin que aunque terica tiene muchos
componentes que se aplican en el campo profesional de la programacin.
Hay que pensar en las ventajas que internet implica para la empresa que le permite ofrecer sus productos de forma inmediata en cualquier parte del mundo,
con unos costes mnimos ya que no necesita tener un local fsico y sin unos horarios de tienda ya que cualquiera se puede visitar la tienda las 24 horas da, lo que
hace imprescindible para una tienda moderna disponer de este tipo de herramientas para realizar su actividad. Pero no slo la justificacin hay que buscarla
en las ventajas que supone para la empresa; los potenciales clientes tambin
pueden optar, por una gran variedad de ofertas repartidas a lo largo y ancho de
toda la red pudiendo elegir la opcin que consideren ms interesante.
10
11
2. ESPECIFICACIN DE REQUISITOS
2.1. INTRODUCCIN
Esta Especificacin de Requisitos Software para el diseo de una plataforma de comercio electrnico ha sido elaborada tomando en cuenta las caractersticas del sistema utilizado en la actualidad y la posibilidad de mejorarlo, de acuerdo a la experiencia de sus usuarios y los beneficios obtenidos.
2.1.1. PROPSITO
El objetivo de esta especificacin es definir de manera clara y exacta las funcionalidades y restricciones que presentara la aplicacin que se pretende construir.
12
MySQL. Es un sistema de gestin de bases de datos multiusuario, multiplataforma y de cdigo abierto que pertenece a la compaa sueca MySQL AB.
Pgina Web. Fuente de informacin compatible con la WWW y que puede ser
accedida a travs de un navegador en Internet.
Password. Palabra de paso o contrasea, se utiliza junto con el login para identificarse en el sistema.
CSS: Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje
formal de ordenador usado para definir la presentacin de un documento estructurado escrito en HTML o XML (y por extensin XHTML). La W3C (World Wide Web Consortium) es la encargada de formular la especificacin de las hojas de
estilo que servir de estndar para los agentes de usuario o navegadores.
13
Sitio Web. Conjunto de pginas Web que estn relacionadas entre s, por lo general porque se accede desde un mismo. Un sitio Web puede estar constituido
de una o ms pginas Web.
2.1.4. REFERENCIAS
IEEE Recommended Practice for Software Requirements Specification. ANSI/IEEE std.
830, 1998.
14
Se pretende que el producto utilice tecnologas con las que va a ser indispensable
contar con un alojamiento de servicios que ofrezca posibilidad de utilizar PHP, bases
de datos MySQL y que ejecute un servidor Apache.
Administrador
15
Visitantes: son aquellos que entran a nuestro sitio web, navegan por
donde los dejemos, pero no pasan a autentificarse. Mientras se sigue
siendo visitante no se podr comprar ni recibir publicidad.
Clientes: son aquellos usuarios que se autentifican para poder acceder a todas las funcionalidades de la tienda. Los clientes no tienen
privilegios para realizar tareas de administracin.
Administradores: son las personas autorizadas que realizan la administracin de la aplicacin. Por ejemplo, en la tienda virtual son los
que actualizan el catlogo, los precios, las promociones, etc.
2.2.4. RESTRICCIONES
Toda aquella persona que quiera acceder a los servicios ofrecidos por la aplicacin
deber disponer del hardware necesario para conectarse a Internet a travs de una
conexin estndar.
16
17
2.3.2. FUNCIONES
2.3.2.1 CLIENTE:
Registro de usuarios
Introduccin: Registro de un nuevo cliente.
Entrada: Datos del usuario.
Proceso: Almacenar al cliente en la base de datos.
Salida: Actualizar la aplicacin.
Listado de productos
2.3.2.2. ADMINISTRADOR:
Aadir/Editar/Eliminar categoras
Introduccin: Gestin de la zona de categoras.
Entrada: El administrador puede crear, modificar las categoras y eliminarlas.
Proceso: Si la categora es nueva, se aaden los datos para la creacin, si
no es nueva se localiza la categora a modificar o eliminar y se le aplica la
accin.
Salida: Se actualiza la base de datos.
Aadir/Editar/Eliminar productos
Introduccin: Gestin de la zona de productos.
Entrada: El administrador puede crear, modificar los productos y eliminarlos.
Proceso: Si el producto es nuevo, se aaden los datos para la creacin, si
no es nuevo, se localiza el producto a modificar o eliminar y se le aplica la
accin.
Salida: Se actualiza la base de datos.
19
2.3.5.1. INTEGRIDAD:
20
2.3.5.2. MANTENIMIENTO:
2.3.5.1. SEGURIDAD:
La aplicacin trabajar sobre una base de datos donde se almacenar toda la informacin necesaria para el funcionamiento de la tienda virtual.
21
3. ANLISIS
3.
Identificar a los usuarios que acceden a nuestra aplicacin mediante la introduccin de su nombre y contrasea.
4.
Los usuarios que ya no utilizarn el sistema obtienen una baja que evita su acceso del sistema pero manteniendo su informacin en las bases de datos.
5.
22
23
24
25
1.
Comprobamos que el identificador este dado de alta, si no est mostramos un mensaje informando de ello, de lo contrario la identificacin ser correcta.
26
27
4. DISEO
4.1 INTRODUCCIN
En esta apartado describimos nuestra aplicacin con mayor detalle, teniendo en
cuenta las caractersticas de un entorno web.
4.2 ARQUITECTURA DEL SISTEMA
El diseo de la Tienda Virtual se basara en una arquitectura
multicapas de tres capas lgicas
Capa de presentacin
Capa de negocio
Capa de persistencia
El desarrollo en capas permite separar claramente el acceso
a los datos, la lgica del negocio y la interfaz del usuario. El
modelo de desarrollo en capas implica que cada capa se
28
La interfaz de usuario ha sido diseada de tal manera que resulte ameno, intuitivo y
fcil de utilizar. De este modo, todas las pginas de la Tienda Virtual estn compuestas por cuatro fases distinguibles fcilmente:
29
Una cabecera en la que se muestra el logo y se deja un espacio para aadir los nuevos productos.
Un men horizontal desde el que se puede acceder a algunas de las funciones de la pagina Web desde el que en determinadas funciones.
La columna izquierda con la ventana de catalogo con la que puedes acceder a los productos de cada una de ella, tambin puedes acceder y registrarte a la tienda.
La ventana principal en la que se muestra toda la informacin al usuario y
se recogen los da datos que este introduzca
30
31
5.IMPLEMENTACIN
En este apartado describiremos los aspectos ms significativos de nuestra implementacin
5.1 TECNOLOGAS
En este apartado hablaremos de forma resumida sobre las tecnologas empleadas en
este proyecto.
5.1.1 MYSQL
MySQL es un sistema de gestin de bases de datos relacional (ingls RDBMS Relational DataBase Management System) multi-hilo(multithread) y multiusuario ,
que usa el lenguaje SQL (Structured Query Language).
33
La idea que se encuentra detrs del desarrllo de CSS es separar la estructura de un documento de su presentacin.
Figura 9. Ejemplo Hojas De Estilo En
Cascada
34
5.1.5 PAYPAL
PayPal
es
la
forma
rpida
segura
de
pagar
en
Internet.
Puede pagar fcilmente sus compras con la tarjeta de dbito, la tarjeta de crdito o la
cuenta bancaria a travs de PayPal.
35
5.1.6 JAVASCRIPT
Javascript es un lenguaje de programacin interpretado. Se define como orientado a
objetos, dbilmente tipado y dinmico.
Se utiliza principalmente en su forma del lado del cliente, implementado como parte
de un navegador web permitiendo mejoras en la interfaz de usuario y pginas web
dinmicas.
JavaScript se dise con una sintaxis similar al lenguaje C, aunque adopta nombres y
convenciones del lenguaje de programacin Java.
Todos los navegadores modernos interpretan el cdigo JavaScript integrado dentro
de las pginas web. Para interactuar con una pgina web se provee al lenguaje JavaScript de una implementacin del Document Object Model (DOM).
5.2 HERRAMIENTAS
5.2.1 APPSERV
Es una herramienta OpenSource para Windows
con Apache, MySQL, PHP y otras adicciones, en la
cual estas aplicaciones se configuran en forma
automtica, lo que permite ejecutar un servidor
web completo.
Como extra incorpora phpMyAdmin para el manejo de MySQL.
Apache tiene amplia aceptacin en la red: desde 1996, Apache, es el servidor HTTP
ms usado. Alcanz su mxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios Web en el mundo, sin embargo ha sufrido un descenso en su
cuota de mercado en los ltimos aos.
5.2.3 PHPMYADMIN
Es una herramienta escrita en PHP con la intencin de manejar la administracin
de MySQL a travs de pginas web, utilizando Internet. Actualmente puede crear y
eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y aadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y est disponible en 62 idiomas. Se encuentra disponible bajo la licencia GPL
37
5.2.4 ARGOUML
Es una aplicacin de diagramado de UML escrita en Java y publicada bajo la Licencia
BSD. Dado que es una aplicacin Java, est disponible en cualquier plataforma soportada por Java.
Sin embargo, desde la versin 0.20, ArgoUML est incompleto. No es conforme completamente a los estndares UML y carece de soporte completo para algunos tipos
de diagramas incluyendo los Diagrama de secuencia y los de colaboracin.
38
En esta pgina mostramos todos los atributos del producto (id, nombre,
stock, precio e imagen)
39
5.3.1.2. CLIENTES:
Cuentas: En cuentas de usuario mostrbamos el login y el password del usuario y haciendo click en ver podemos visualizar con ms detalle los datos del
nuestro usuario seleccionado (el identificador es pasado por el mtodo GET a
la pgina datosUsuario.php).
Compras/Clientes: Mostramos las compras realizadas en nuestra tienda, indicando el numero de pedido, el identificador del cliente, fecha de pedido, estado del pedido, fecha de entrega, total de compra, impuestos, gastos de envi y referencia de la compra.
Detalle de compra: Tambin encontramos un enlace al detalle
de la compra en el que podemos visualizar los productos de la
compra seleccionada.
Mejores clientes: En este apartado mostramos los clientes que tienen mayor
nmero de compras (el porcentaje de mayor compra seria mayor o igual al
20% del total de la compra). Los datos que se muestran seria: los identificadores, nombres del cliente, telfono y nmeros de compras.
5.3.1.4. VENTAS.
Productos ms vendidos: En este apartado mostramos un listado de los productos ms solicitados por nuestros clientes. Mostramos el identificador del
producto, el nombre del mismo y el total de compras que ha tenido.
Productos menos vendidos: En este apartado mostramos un listado de los
productos menos comprados por nuestros clientes. Mostramos el identificador del producto, el nombre del mismo y el total de compras que ha tenido.
5.3.1.5. CONFIGURACIN:
Administrador: Mostramos un listado de los administradores de nuestra tienda ordenado por el nmero de identificacin.
o
41
42
5.3.2.2. CATALOGO:
Solo mostrara las categoras que tienen productos en ella. Al seleccionar una categora nos encontramos con todos los productos disponibles de la categora, el cual visualizaremos con ms detalle si accedemos a l.
Producto: Mirando con ms detalle las caractersticas del producto nos encontraremos con dos alternativas, dependiendo de si se ha iniciado sesin o
no.
Sesin no iniciada: le aparecer un mensaje pidindole que se
d de alta o que inicie la sesin.
Sesin iniciada: le aparecer la opcin aadir a cesta.
43
Hemos aadido una columna llamada eliminar, que como indica su nombre borra de
nuestro carrito los productos correspondientes a la lnea donde hemos pulsado su
icono.
Una vez realizada esta operacin se nos recalcula el importe total de la compra.
44
rm: Indica el mtodo que se va a utilizar para enviar la informacin de vuelta a nuestro sitio. RM=1 (informacin enviada por
GET) , RM=2 (informacin enviada por POST)(En este caso
usamos este mtodo porque es un script php el que recoge los
datos).
Recuperaremos de una pgina datosCesta.php por la llamada a la funcin datosCesta(SESION_ CARRITO); los siguientes atributos
item_name_X: Nombre del producto. Aqu tendremos que definir tantos nombres de productos como haya en el carro de
compra. Ejemplo item_name_1, item_name_2, etc ..
45
Una vez terminada el proceso de pago, este nos devolver (por mtodo POST)
todos los datos necesarios para registrar nuestro pedido.
Transferencia: Mostraremos un mensaje indicando nuestro nmero de cuenta bancaria y que la confirmacin de su compra se enviara una vez haya sido
cancelada la compra.
46
Creacin de itemCompra: como en la clase compra, de los mtodos recibidos utilizaremos solo los esenciales para la creacin del pedido de
compra como son:
item_nameX : nos indica el nombre del articulo de la compra.
quantityX]: pasamos la cantidad de articulos
mc_gross_X: indicamos el precio del pedido.
47
48
49
6.PRUEBAS
Existen una serie de pautas que se deben cumplir para que el nivel de usabilidad de
nuestra aplicacin sea alto:
La facilidad percibida en la navegacin en trminos de tiempo requeridos y tareas precisadas para obtener los resultados perseguidos.
La capacidad del usuario del sistema para controlar aquello que hace y
el lugar en el que se encuentra en cada momento.
50
Ahora que la aplicacin est finalizada, probaremos toda la aplicacin web tanto la
parte del cliente (catlogo) como el apartado de administracin.
Por parte de cliente se comprob:
Navegacin del men categoras: Comprobacin de la navegacin en el
men categoras, productos asignados y visualizacin.
51
52
Una vez seleccionado un producto determinado, podemos ver su descripcin y tambin podemos observar los productos relacionados.
53
54
55
He este apartada podremos elegir entre pagar a travs de la plataforma paypal o por transferencia.
56
57
58
59
60
61
62
63
64
Google Chrome
En este navegador, desde el enfoque visual se ve todo correcto. La nica pega, es
que la posicin del widget de nuevos productos. Por lo dems, funciona correctamente.
65
66
Adems me ha servido para darme cuenta de que tareas triviales que a simple vista
parecan sencillas, se han convertido en un quebradero de cabeza y tareas que parecan imposibles han sido mucho ms fciles de llevar a cabo. Tambin decir, que a medida que el Proyecto iba tomando forma, han surgido muchas dudas que al resolverlas me servan de ejemplo para aprender nuevas cosas dentro de la programacin
Web.
Pese a estar finalizado el proyecto, la motivacin que iba naciendo en mi paso a paso
de ir descubriendo nuevas posibilidades me har seguir investigando en nuevas opciones a aadir dentro de la Tienda Virtual.
67
En primer lugar, la motivacin para elegir este proyecto de final de carrera ha sido la
temtica del comercio electrnico, ya que es un tema bastante actual y que ahora
mismo est en auge. Por ello, para la creacin de este proyecto de final de carrera he
tenido el aliciente de crear y desarrollar una aplicacin que este enfocado a estos
temas.
Este proyecto de final de carrera ha sido una experiencia muy enriquecedora a nivel
didctico y sobre todo a nivel profesional y formativo.
Hemos aprendido lenguajes nuevos que nunca se dieron en la carrera como el PHP y
java Script. El lenguaje PHP, me ha gustado mucho. He visto que ha sido una
tecnologa de desarrollo web muy til y muy fcil de manejar, adems de me ha servido para proyectos personales. Tambin me sorprendido la semejanza que tiene con
otras tecnologas que nos han enseado como Java o C#.
La parte del diseo, ms bien el CSS,s ha costado un poco ms, ya que ha costado la
eleccin de que colores, imgenes, etc, a utilizar, en cambio la parte de desarrollar ha
sido ms fluida, pero con ayuda de material que se encuentra expuesto por la red
esto ha facilitado mi trabajo.
68
69
70
Tabla de contenido
Tabla de esquemas
Esquema 1. Creacin de base de datos ........................................................................... 70
Esquema 2. Comprobar conexin (visualizacin) .......................................................... 72
Esquema 3. Conexin para tablas ...................................................................................73
Esquema 4. Creacin e insercin de tablas ................................................................... 76
Tabla de imgenes
Figura 1. Creacin correcta.............................................................................................. 70
Figura 2. Conexin ok ....................................................................................................... 72
71
//creamos la conexin
$con = mysql_pconnect("localhost", "root", "jill")
if(mysql_query($sql, $con))
{
echo "se cre la base de datos Tienda Virutal \n";
}
else {
echo "Error al crear la base de datos Base: " .mysql_error() . "\n";
}
?>
Esquema 1 Creacin de base de datos
72
</head>
<body>
<div class="container">
73
</div></div>
</div>
</br>
<div class="subcontenedor">
<div class="content">
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conexion = "localhost";
$database_conexion = "TiendaVirtual";
$username_conexion = "root";
$password_conexion = "jill";
$conexion = mysql_pconnect($hostname_conexion, $username_conexion, $password_conexion) or trigger_error(mysql_error(),E_USER_ERROR);
74
?>
<!-- InstanceEndEditable -->
</div>
</div>
<div class="footer">
<center>
<address>
<small>Tienda de Virtual ByOnline.</small>
<br>
<small>Hora: <? echo date("H:i:s"); ?></small>
<small>Fecha: <? echo date("j/m/Y"); ?></small>
<br>
<small>Webmaster: <a
href="mailto:ByOnline@TiendaVirtual.com">ByOnline@TiendaVirtual.com</a></small>
</address>
</center>
</div>
</div>
</body>
<!-- InstanceEnd --></html>
Esquema 2. Comprobar conexin (visualizacin)
75
Figura 2.Conexin ok
Pero utilizamos el ficher conexin.php del directorio Connections con una conexin
mas practica para nuestras tablas.
<?php if (!isset($_SESSION)) {
session_start();
}?>
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conexion = "localhost";
$database_conexion = "TiendaVirtual";
$username_conexion = "root";
$password_conexion = "jill";
$conexion = mysql_pconnect($hostname_conexion, $username_conexion, $password_conexion) or trigger_error(mysql_error(),E_USER_ERROR);
76
-- --------------------------------------------------------
78
-- --------------------------------------------------------
-- --------------------------------------------------------
-- --------------------------------------------------------
80
-- -------------------------------------------------------81
-- --------------------------------------------------------
82
-- --------------------------------------------------------
83
-- --------------------------------------------------------
-- --------------------------------------------------------
--
84
-- -------------------------------------------------------85
-- --------------------------------------------------------
86
INSERT INTO `productos` VALUES (1, 4, 3, 'TS-L462 IDE CD-RW', 19.51, 'Aplicaci', 'SE PROVEE: 1 Disco combinada de X TS-L462 CD-RW DVD-ROM IDE', 3.51, 140, 'TS-L462 IDE CDRW.JPG', '2012-11-03 00:00:00', 'disco');
INSERT INTO `productos` VALUES (2, 4, 3, 'Cartucho hp 300 negro hp deskjet d2560 y
f4280', 17.90, 'Descripci', 'Cartucho de impresi', 3.22, 108, 'cartuchoHP300.jpg', '2012-11-03
00:00:00', 'impresora');
INSERT INTO `productos` VALUES (3, 4, 3, 'hp 301 combo tricolor y negro', 24.30, 'Color
de impresi', 'Los cartuchos del paquete combinado de cartuchos de tinta tricolor y negra
HP 301 est', 4.37, 212, 'cartuchoHP301.jpg', '2012-11-03 00:00:00', 'impresora');
87
-- --------------------------------------------------------
89
'948512457');
INSERT INTO `proveedores` VALUES (5, 'Enrique', 'Castelli Parera',
'castelli@districentro.com', '9854712548');
Esquema 4. Creacin e insercin de tablas
90
91
92
Para realizar las pruebas de nuestro script podramos usar nuestras propias cuentas
de PayPal pero lo cierto es que no os lo aconsejo, a no ser que queris perder dinero xD.
Para hacer pruebas con api de Paypal antes de lanzar nuestra tienda virtual al
pblico existe una plataforma llamada Paypal Sandbox para desarrolladores con la
que podremos hacer pruebas con cuentas ficticias.
As que lo primero que haremos es registrarnos, donde nos pedirn algunos datos
personales como Nombre, Apellidos, email y password (recomiendo no usar vuestros propios nombres).
Una vez tenemos registrado nuestro usuario de pruebas de Paypal es hora de crear
las 2 partes "humanas" que interactuan en una tienda virtual, el comprador y el
vendedor, para as tener constancia de que se efectua la compra y que el vendedor
recibe el pago.
CREAR CUENTA DE PRUEBAS PAYPAL SANDBOX PARA VENDER
Una vez hemos activado nuestro usuario de Paypal Sandbox a travs del e-mail y
nos hemos logueado correctamente, entramos en el panel de administracin.
93
Para crear una cuenta Paypal SandBox para vender con datos que ellos mismo nos
proporcionan (es lo ms fcil ya que no tenemos que validar la cuenta), seguimos
los siguientes pasos:
1.
2.
Ir a Test Accounts
Clic en Preconfigured y rellenar los datos que nos piden tal y como veis en la siguiente
imagen.
94
El sistema es muy parecido, solo cambia en el tipo de cuenta (Account Type) que
lo seleccionaremos como Buyer en lugar de Seller.
Ahora si que estamos preparados para hacer pruebas comprando en nuestra tienda
virtual.
95
96