Segundo Obligatorio PHP – MySQL DATOS ADMINISTRATIVOS El trabajo comienza el Jueves 2 de diciembre de 2005 y debe ser entregado (sin excepciones) el Viernes 23 de diciembre de 2005. La forma de entrega es vía correo electrónico ([email protected]) en un archivo zip llamado oblig2.zip en el que se deberán incluir los archivos que se detallan en la letra del obligatorio, con la estructuración especificada. Cualquier aclaración que deba realizarse debe estar contenida en el archivo readMe.txt que deberá formar parte del zip entregado OBJETIVO El objetivo de este trabajo obligatorio es construir un sitio web para trabajar en el rubro mascotas. El sitio se llamará MascotaWeb. En este sitio se podrá Visualizar diversas novedades y noticias. Estas se encontrarán en la página inicial del sitio. Comprar productos. En este sitio se venderán diversos productos para loas mascotas. Por ejemplo, alimentos, platos de comida, shampoo, pulguicidas, etc Dar de alta a usuarios. Es una típica página para el registro de usuarios. Dar de alta mascotas. Los usuarios registrados en el sitio podrán registrar sus mascotas. (No es obligatorio que cada uno de los usuarios registrados den de alta mascotas) Buscar mascotas. Por ejemplo, puede utilizarse para buscar parejas entre las mascotas registradas en el sitio. IMPLEMENTACIÓN Deberá existir una página por cada uno de los puntos anteriores, además existirán otras páginas que se detallarán más adelante. Visualizar diversas novedades y noticias. Esta es la página inicial (index.php) del sitio. Para poder visualizar su contenido no es necesario estar loggeado. Se debe incluir en la página un formulario de loggin en el que los usuarios puedan loggearse en el sitio. Esta página puede ser un formulario reentrante. El texto de las novedades y noticias se tomará desde archivos. Comprar productos. El archivo se llamará carrito.php. Para poder ver el contenido de este archivo, el usuario debió haberse loggeado en el sitio con anterioridad. La página consiste en un formulario reentrante, con la estructura del carrito visto en clase. (se debe desplegar el contenido del carrito y el total de dinero gastado a medida que se van a agregando productos al carro) Los datos Página 1 de 5 de los productos a vender se extraerán a partir de una tabla de la base de datos del sitio Dar de alta a usuarios. El archivo se llamará registro.php. La página consiste en un formulario reentrante en el que se deberán ingresar al menos los siguientes campos: o Nombre de la persona. (caja de texto) o Apellido de la persona. (caja de texto) o Nombre de usuario. (caja de texto) o Clave y repetición de clave. (cajas de texto) o Email. (caja de texto) Se pueden incluir otros campos, pero no se tomarán en cuenta a la hora de ingresar los datos en la base. (para uniformizar la forma en que se testeará el trabajo) Los datos se almacenarán en la tabla de la base correspondiente (previa validación JavaSript y PHP si es necesario) Para poder ver el contenido de este archivo, el usuario no debe estar loggeado en el sitio. Dar de alta mascotas. El archivo se llamará altaMascota.php. Para poder ver el contenido de este archivo, el usuario debió haberse loggeado en el sitio con anterioridad. La página consiste en un formulario reentrante en el que se podrá dar de alta una mascota por vez. Los datos a ingresar deben ser: o Nombre de mascota. Es obligatorio. Se recomienda caja de texto. o Tipo de mascota. Se refiere a gato, perro, loro, caballo, etc. Es obligatorio. Se recomienda una lista desplegable. o Edad. No es obligatorio. Se recomienda caja de texto validando que sea un número. o Raza. No es obligatorio. Se recomienda caja de texto. o Foto. Es obligatorio. Debe ser un control de tipo file. Se pueden incluir otros campos, pero no se tomarán en cuenta a la hora de ingresar los datos en la base (para uniformizar la forma en que se testeará el trabajo). Los datos se almacenarán en la tabla de la base correspondiente (previa validación JavaSript y PHP si es necesario) Buscar mascotas. El archivo se llamará buscador.php. Para poder ver el contenido de este archivo, el usuario debió haberse loggeado en el sitio con anterioridad. La página consiste en un formulario reentrante en el que se deberán ingresar los criterios de la búsqueda y de acuerdo a ellos se efectuará la búsqueda en la base de datos. Los criterios de la búsqueda son: o Nombre de mascota o de usuario (dueño de la mascota). No es obligatorio. Se recomienda caja de texto. o Tipo de mascota. Se refiere a gato, perro, loro, caballo, etc. Es obligatorio. Se recomienda una lista desplegable. o Edad de la mascota. Es obligatorio. Se recomienda una lista desplegable con distintos rangos y una opción “no importa” en el caso de que el usuario no desee seleccionar la edad. Una vez efectuada la búsqueda, los resultados deben ser paginados a razón de 5 por página. Los datos a desplegar en los resultados de la búsqueda son: o Nombre de la mascota Página 2 de 5 o o o o o o Tipo Edad (si está disponible el dato) Raza (si está disponible el dato) Foto Nombre del dueño de la mascota Email del dueño de la mascota Todas las páginas deberán incluir pie de página de modo de mejorar la navegabilildad del sitio y un cabezal que incluya al menos el nombre del sitio. Por lo tanto deben agregarse al menos 2 archivos más a los mencionados anteriormente. ESTRUCTURA DEL SITIO WEB Se recomienda una estructuración de los archivos del sitio como la que se muestra a continuación. (Se podrán agregar otros directorios en caso de que así se desee) Detalle del contenido de cada uno de los directorios includes: Contiene los archivos auxiliares, en nuestro caso son el pie y el cabezal de la página. Podrían agregarse otros, como imágenes, logos, etc. JS: Contiene los archivos con las funciones para realizar la validación JavaScript de los diferentes formularios del sitio lib: Contiene las bibliotecas del sitio. En nuestro caso es imprescindible que contenga la biblioteca para utilizar la base de datos del sitio. Podrían incluirse más bibliotecas, por ejemplo, para el envío de correos, para el tratamiento de archivos, etc, etc. news: Contiene lor archivos desde los que se leerán las noticias y novedades que se colocarán en la página inicial del sitio. Estos archivos son HTML. Podrían contener la noticia en texto plano o bien podrían contener código HTML para que de este modo se incluyan links, textos en diferentes formatos, etc. Los nombres de los archivos son news1.html, news2.html, etc, y se colocarán en la página siguiendo el orden inverso. Es decir, el archivo con número más alto será la primera noticia desplegada en la página inicial pics: Contiene las fotos de los archivos correspondientes a las mascotas. Cada archivo deberá tener un nombre único. Se recomienda que este sea autogenerado automaticamente. Los archivos deberán ser imágenes y no podrán superar los 100 KB. Página 3 de 5 ESTRUCTURA DE LA BASE DE DATOS La base de datos se deberá llamar BDMascota y contendrá las siguientes tablas: Tablas: USUARIO (usuario, clave, nombre, apellido, email) MASCOTA (id, nombre, tipo, edad, raza, pathFoto, propietario) PRODUCTO (codigo, nombre, descripción, precioUnidad, stock, paisProcedencia) Observaciones: Tabla MASCOTA El atributo id es autogenerado Los atributos nombre, tipo, edad, raza, pathFoto, propietario son strings. El largo de los strings queda a criterio de cada grupo de estudiantes. Tabla USUARIO Los atributos usuario, clave, nombre, apellido y email son strings. El largo de los strings queda a criterio de cada grupo de estudiantes. Tabla PRODUCTO El atributo codigo es autogenerado Los atributos nombre, descripción y paisProcedencia email son strings. El largo de los strings queda a criterio de cada grupo de estudiantes. El atributo precioUnidad es un númreo real El atributo stock es un número entero. En general Al momento de definir las tabla no olvidar de estudiar la permisividad de los nulos y la definición de índices. DATOS PROVISTOS Se proveerá en una semana un juego de datos en formato csv para cargar las tablas. FORMA DE EVALUACION La base de datos no se debe entregar. Se probará con una base ya creada con la estructura idéntica a la detallada anteriormente. Se probará con el usuario root con contraseña vacía. POSIBLES MEJORAS Implementar una pagina para que un usuario administrador pueda subir y/o editar los archivos correspondientes a las noticias Agregar una tabla a la base de datos para almacenar las estadísticas de ventas de los diferentes productos ofrecidos. Implementar una página para dar de alta en la tabla correspondiente los artículos ofrecidos por el sitio web. Tomar en cuenta el atributo stock al momento de la utilización del carrito. ETC ETC! Página 4 de 5 Página 5 de 5