Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/practicaTienda/enunciado1

DESCRIPCIÓN DE LA PRÁCTICA DE LA TIENDA ON LINE

 * Vamos a hacer un ejemplo práctico en el que vamos a usar sesiones
 * Consiste en implementar una tienda on line con los datos siguientes
 * Diagrama de entidades


 * El siguiente diagrama muestra el escenario que queremos representar
 * El programa debe de ser orientado a objetos (Ver en sección más abajo clases que se recomienda utilizar)


 * Explicación funcional de las páginas


 * Login (login.php).
 * Su función es autentificar al usuario de la aplicación web.
 * Todos los usuarios de la aplicación deberán autentificarse utilizando esta página antes de poder acceder al resto de páginas.


 * Listado de productos (productos.php).
 * Presenta un listado de los productos de la tienda, y permite al usuario seleccionar aquellos que va a comprar.


 * Cesta de compra (cesta.php).
 * Muestra un resumen de los productos escogidos por el usuario para su compra y da acceso a la página de pago.


 * Pagar (pagar.php).
 * Una vez confirmada la compra, la última página debería ser la que permitiera al usuario escoger el método de pago y la forma de envío.
 * En esta aplicación simplemente mostrará un mensaje de tipo "Gracias por su compra" y ofrecerá un enlace para comenzar una nueva compra.


 * Logoff (logoff.php).
 * Esta página desconecta al usuario de la aplicación y redirige al usuario de forma automática a la pantalla de autentificación.
 * No muestra ninguna información en pantalla, por lo que no es visible para el usuario.


 * Para realizar esta práctiva vamos a utilizar la siguiente hoja de estilo, disponible en un fichero puesto en el moodle
 * Observa los diferentes div definidos para poderlos utilizar como es el caso de error
 * Podemos ver el ejercicio funcionando en esta url
 * Imprimir:
 * Imprimir.php
 * mostrará una página con un fichero pdf que se podrá imprimir o descargar.

Especificaciones no funcionales generales

 * En este caso se trata de cumplir una serie de especifiaciones nuevas
 * Vamos a separar la lógica del negocio de la presentación usando un sistema de plantillas de smarty
 * Vamos a realizar el desarrollo totalmente orientado a objetos, creando las clases necesarias y usándolas en el programa principal.
 * El resultado será un proyecto con muchos mas ficheros, pero mucho más organizado y especializado

Forma de proceder

 * Para realizar este ejercicio, procederemos de una manera incremental, realizando cada parte con el fin de ir asimilando bien los conceptos de plantillas y la separación de negocio o lógica y presentación.
 * por ello crearemos una estructura de directorios para el despliegue de nuestra aplicación
 * Estableceremos los siguientes directorios
 * logica
 * Aquí irán todos los ficheros php que contengan funcionalidad y que se invoquen directamente en el url
 * Constituirá la lógica de la aplicación (El programa principal que se ejecutará)


 * clases
 * Se implementarán todas las clases de nuestro desarrollo, las cuales luego usaremos en nuestra lógica


 * vista
 * Se implementarán los ficheros que se van a visualizar, lo que habitualmente veníamos haciendo con html, en este caso lo implementaremos con Samrty


 * images
 * Cargaremos imágenes


 * js
 * Si tenemos algo de javascript lo insertaremos en este fichero(por si usáramos ajax)