Proyecto GTB

Proyecto GTB

Proyecto GTB

Proyecto GTB – Javier Jiménez García

Proyecto para la Asignatura Gestión de Bases de Datos (GTB), del Ciclo Superior en Administración de Sistemas Informáticos en Red (ASIR).

El proyecto consiste en diseñar y desarrollar una aplicación con una base de datos para una empresa real.

 

El Proyecto GTB ha sido realizado en 3 Fases. Podéis ver el resultado y la explicación de cada fase en los vídeos de la siguiente Lista de Reproducción de mi Canal de YouTube:

He alojado este proyecto en GitHub, si quieres ver el código o utilizarlo para algún proyecto o trabajo aquí dejo el link: https://github.com/JavierMonda/ProyectoImprenta

Diseño y desarrollo.

Para el diseño y desarrollo de la aplicación he utilizado lo siguiente:

– He utilizado el Sistema Operativo GNU/Linux Ubuntu 14.04 LTS para la realización del proyecto.

DIA: software para el diseño de diagramas, con el cuál he diseñado el diagrama entidad-relación de la Base de datos.

MySQL WorkBench: para el diseño del esquema relacional de la Base de datos, el desarrollo y la creación de la misma. También lo utilicé para la inserción de registros en la BD y comprobación de que todo funciona bien.

 LAMP: conjunto de aplicaciones y utilidades para tener un servidor web local. Servicios utilizados: Apache, MySQL y PHPMyAdmin.

BootStrap: para el diseño de la web.

– Además he utilizado los siguientes lenguajes de marcado y de programación:

HTML5, CSS3, JavaScript, PHP, SQL, XML…

 

Desarrollo de la solución propuesta y su justificación

La propuesta presentada a la empresa consta de las siguientes partes:

– Diseño y desarrollo de una página web corporativa, donde los clientes puedan registrarse y solicitar sus pedidos on-line.

– Creación de una base de datos para registrar y albergar los datos de los usuarios, los productos y las facturas.

– La Base de Datos también contendrá la información de los empleados y los departamentos de la empresa, pensando en la expansión de la misma en un futuro.

– Los empleados que se encarguen de la venta de los productos en la web recibirán una comisión según el producto vendido.

– Estos empleados también serán los encargados del marketing digital y del mantenimiento de las Redes Sociales, por lo que también se propone la creación de los perfiles en las distintas Redes Sociales.

– El fichero de la Base de Datos que contenga los datos de los clientes se registrará en la Agencia de Protección de Datos, en cumplimiento de la LOPD:

https://www.agpd.es/portalwebAGPD/canalresponsable/obligaciones/index-ides-idphp.php

– La Base de Datos será desarrollada en MySQL.
– La web será desarrollada en HTML5, CSS, JavaScript y PHP.

 

Contenido mínimo de la página web

El contenido podrá ser ampliable según las necesidades de la empresa.

 

Dashboard o Administración

Esta parte de la aplicación será exclusiva para el administrador de la web y empleados autorizados. Contendrá una pantalla de Login con un email y password para poder acceder. Una vez dentro de la Dashboard el Administrador o los empleados autorizados podrán visualizar toda la información de la Base de Datos, y podrán realizar consultas, altas, bajas y modificaciones de los registros, los cuáles se visualizarán en tablas dependiendo de la consulta realizada en un formulario.

Página principal

Cabecera con Logotipo, iconos de las Redes Sociales y un menú con acceso a Productos, Contacto, ¿Quiénes Sómos? Y botón para que los Usuarios puedan registrarse y loguearse. El cuerpo de la página principal contendrá una presentación de la empresa y una muestra de los trabajos realizados, con enlace directo a la página de productos. El pié de página contendrá la dirección de la empresa, el teléfono y el email, así como un sub-menú con acceso a Aviso Legal, Contacto, Política de Privacidad o Protección de Datos, Política de Cookies y Condiciones de Compra.

La página avisará mediante un mensaje JavaScript sobre las Cookies, obligando al usuario a pulsar el botón “Cerrar” para quitar el aviso. Este aviso sólo será visible la primera vez que el usuario entre en la web.

Página de productos

Contendrá los distintos productos ofrecidos por la empresa, pudiendo hacer click en ellos para añadirlos al carrito de la compra.

Carrito de la compra

Mostrará los productos elegidos por el cliente, el precio y los detalles. La cantidad podrá ser modificada en este apartado y aparecerá un botón para volver a la página de productos y añadir más al carrito. Cuando el cliente haya terminado de añadir los productos pinchará en finalizar compra, confirmará el pedido y visualizará una página de agradecimiento.

Página de Registro/Login

Contendrá un formulario a rellenar por el usuario donde los datos se guardarán directamente en la Base de Datos. Una vez registrado, el usuario podrá loguearse en la web, conectando con la Base de Datos para registrar sus pedidos.

Página de ¿Quiénes Sómos?

Contendrá información e imágenes sobre la empresa.
Página de Contacto

Contendrá un formulario de contacto y los datos de los perfiles de las Redes Sociales de la empresa, para facilitar al usuario el contacto con la misma a través de varias vías.

Descripción de los elementos de la base de datos

Elementos y sus atributos.
Cliente. Sus atributos son: DNI/CIF(Clave Primaria), Nombre, Apelidos, Dirección, Localidad, CP, Email, Password, Imagen (Será opcional, para el perfil) y Teléfonos (Multivalor).

Producto. Tiene como atributos: idProducto (Clave Primaria), Descripción, Tamaño_producto (A2, A3, A4.. podrá elegir el formato en el formulario de pedido), Acabado (), Impresión (), Tipo_papel (). Estos atributos son comunes de todos los productos y podrán ser elegidos por el cliente en el formulario de pedido.

Diseño. Los clientes podrán solicitar que la empresa le realice un diseño o podrá enviar su propio diseño. Los atributos de este elemento son: Id_diseño (Clave Primaria), Formato (Podrá enviar el diseño en formato: Tiff, PDF, PSD…) y Tamaño_diseño (Tamaño en MB).

Factura. Nº_factura (Clave Primaria), pago (tipo de pago), importe, envío (tipo de envío) y fecha.

Empleado. Información que interesa del empleado: DNI (Clave Primaria), Nombre, Apellidos, Dirección_emp, Seguridad_Social, Email, Teléfonos (Multivalor), Comisión y Salario. Departamento. Nombre_departamento (Clave Primaria) y Email.

Relaciones y cardinalidades.

Solicita. Aquí tenemos una relación ternaria entre cliente, producto y factura. El cliente solicita 1 o más productos que se convertirán en 1 o más facturas. En cada pedido, las facturas y los productos pueden ser solicitados por un único cliente.

Realiza. El producto es realizado por 1 o varios empleados, y éstos realizan uno o varios productos.

Pertenece. Un empleado puede pertenecer sólo a un único departamento, y los departamentos están formados por uno o varios empleados.

Tiene. Relación de los elementos Producto y Diseño. El Cliente puede solicitar el diseño a la empresa o enviar varios diseños propios a través del formulario de pedido.

Modelo Entidad-Relación

El Modelo Entidad-Relación propuesto es el siguiente:

 

Proyecto GTB modelo entidad-relacion

Proyecto GTB – Modelo Entidad-Relación

Esquema Relacional

Tablas y Claves Primarias

Después de aplicar la Normalización a las tablas (Hasta la Tercera Forma Normal), las tablas resultantes son:

(Negrita y subrayado: Clave Primaria (PK), Negrita: Clave foránea (FK))

tCliente (dniCif, nombreCl, apellidosCl, direccionCl, emailCl, passCl, imagenCl, cpCli(fk))

tCliente_Tf (dniCif(fk),telefonoCl)

tCodigoPostal (cpCli, localidad)

tEmpleado (dniEmp, seguridadSocial, nombreEmp, apellidosEmp, emailEmp, passEmp, direccionEmp, salario, comision, nombreDep(fk))

tEmpleado_Tf (dniEmp(fk),telefonoEmp)

tDiseno (idDiseno, tamanoDiseno, formato)

tTiene (idDiseno(fk), idProducto(fk))

tFactura (nFactura, pago, importe, envio, fecha)

tProducto (idProducto, nombreProducto, imagenProducto, precio, descripcion, impresion, acabado, tipoPapel, tamanoProducto)

tSolicita (nFactura(fk), idProducto(fk), dniCif(fk))  

tRealiza (dniEmp(fk), idProducto(fk))  

tDepartamento (nombreDep, emailDep)

 

 

Diagrama Relacional

El resultado de pasar el Modelo Entidad-Relación a Modelo Relacional es el siguiente:

 

Proyecto GTB modelo-relacional

Proyecto GTB – Modelo Relacional – Javier Jiménez García

Funcionamiento de la aplicación.

La Web consta de dos partes: una parte de usuarios y otra de Administración.

 

Usuarios

La página de inicio está construida de con un diseño muy sencillo y práctico, donde se puede acceder a todo el contenido de la Web: Registro, Login, ¿Quiénes Somos?, Contacto, Política de Privacidad, Aviso legal y se muestran los diferentes productos con los que trabaja la empresa.
Cada producto tiene un botón de compra que enviará al cliente directamente a la página del producto donde podrá leer la información del mismo y podrá añadirlo al carrito de compras.
En el carrito de compras el usuario podrá modificar la cantidad del producto y verá el Subtotal del importe. Cuando esté preparado para solicitar el pedido, presionará un botón de confirmación y enviará el pedido.
Si todo ha salido correctamente, visualizará una pantalla de agradecimiento.

 

Administración

Esta parte de la Web sólo es accesible por los usuarios Administradores. En ella se podrá visualizar un menú con las diferentes tablas de la base de datos, donde se podrán realizar altas, bajas, modificaciones, consultas, y generar informes en formato PDF y XML.

 

 

Conclusión

La empresa dispondrá de una Base de Datos optimizada con información sobre clientes, productos, pedidos, facturas, empleados… por la cuál tendrá mayor control y mejor acceso a la información. La Web ayudará a la empresa a crecer y expandir su negocio. Las Redes Sociales mejorarán la imágen de la empresa y el trato con el cliente.

La aplicación Web tiene la funcionalidad de una Tienda Online, ampliando así los horizontes comerciales de la empresa y facilitando su labor.

La empresa dispondrá de toda la información perfectamente detallada en el BackEnd de la Web.

Esta aplicación es ampliable y mejorable, dependiendo de las necesidades de la empresa.

 

Libro recomendado:

Aprende SQL en un fin de semana

Aprende SQL en un fin de semana

 

También te puede interesar:

 

 

Proyecto GTB

Proyecto para la asignatura Gestión de Bases de Datos
Ciclo Superior en Administración de Sistemas Informáticos en Red
CIFP Majada Marcial, Fuerteventura

Javier Jiménez García

Mantente conectado

Ir al contenido