Sie sind auf Seite 1von 8

Universidad Mariano Gálvez Curso: Bases de Datos II

Facultad de Ingeniería en Sistemas Catedrático: Ing. Manuel Noriega


Sede Regional Chinautla Primer Semestre 2019

PROYECTO: Ventas On-line


Objetivos:
 Poner en práctica los conocimientos de manejo de transacciones y concurrencia en las bases
de datos.

 Implementar estructuras de control y administración de los procesos de un negocio en una


base de datos, por medio del uso de triggers, funciones y procedimientos.

 Comprender la importancia de la seguridad y recuperación de la información en una base de


datos.

 Desarrollar un sistema formal en ambiente web, que brinde solución a una problemática real.

Descripción:
Se le solicita realizar un sistema web para ventas on-line de productos de abarrotería para una
marca de supermercados reconocida. El cual debe de brindar las siguientes funcionalidades

 Seguridad
o Tipos de usuarios
 Administrador: Tiene acceso a todas las opciones del sistema
 Usuario comprador: Realiza compras de los productos ofrecidos por medio de
pedidos. Solo puede crear su propio usuario
 Usuario bodeguero: Recibe los productos de los proveedores en la bodega por
medio de órdenes de compra
o Usuarios
 Todo usuario debe de tener como mínimo la siguiente información: usuario
(recomendado que sea su correo electrónico), clave, Nombres, Apellidos y Tipo
de usuario.
 Se debe de validar el uso de claves seguras
 Debe incluir números.
 Utilice una combinación de letras mayúsculas y minúsculas.
 Incluya caracteres especiales - * ? ! @ # $ / () {} = . , ; :
 Tenga una longitud mayor o igual a 8 caracteres.
 No debe tener espacios en blanco.

1
o Auditoria de Productos
 Se debe de llevar el control de cualquier cambio en los datos de todos los
productos del inventario, principalmente la cantidad en existencia, cantidad de
reserva, cantidad mínima y máxima, activo, precio compra, precio venta y
margen de ganancia.
 El sistema brinda reportes en donde debe de indicar la fecha/hora del cambio,
campo modificado, valor anterior, valor nuevo, usuario modificador,
documento/proceso relacionado (pedido, orden de compra, proceso max-min) o
cambio manual.

 Productos (inventario)
o Datos de los productos: código único, nombre, descripción, tipo de producto, unidad de
medida, precio venta, precio compra, porcentaje ganancia, cantidad en existencia,
cantidad en reserva, cantidad mínima, cantidad máxima, activo (S/N), imagen del
producto y proveedores que distribuyen el producto.
o Cuando se crea un nuevo producto la cantidad en reserva y mínima debe de ser cero y
la máxima 100 unidades
o Todos los precios se guardan con IVA.
o El tipo de producto, es una clasificación que permite la agrupación de los productos.
o La existencia de un producto nunca puede ser negativa
o El porcentaje de ganancia se utiliza para calcular el precio de venta a partir del último
precio de compra (precio venta = precio compra * porcentaje ganancia). Esto solo
puede ser modificado por un usuario administrador. Por tanto, el precio de venta de se
actualiza cada ver que cambia el precio de compra.
o La cantidad en reserva, es la cantidad de unidades del producto solicitado en los
pedidos “en progreso”
o La cantidad mínima, es la cantidad total (mayor a cero) del día en que menos ventas
(pedidos finalizados) se realizaron del producto en los últimos 30 días. Si este dato
llegara a ser igual a la cantidad máxima, entonces su valor es cero.
o La cantidad máxima, es la cantidad total (mayor a cero) del día en que más ventas
(pedidos finalizados) se realizaron del producto en los últimos 30 días.
o El campo activo, indica si el producto está activo en el sistema (S) o inactivo (N). Este
cambio únicamente lo puede hacer un usuario administrador
o Proceso Máximo – Mínimos: Esta funcionalidad del sistema permite al administrador
hacer el cálculo y actualización de las cantidades mínimas y máximas de un producto
específico o de todos los productos.

2
o Proceso de Inactivación Automática: Esta funcionalidad del sistema permite inactivar
todos los productos que actualmente no tienen existencia y no han tenido movimiento
(compra o venta) en los últimos 30 días.
o Cuando la cantidad en existencia de un producto llega a ser menor a su cantidad
mínima, automáticamente se debe de generar una nueva orden de compra al último
proveedor que se le compro dicho producto con una cantidad que permita igualar la
cantidad máxima definida en el inventario. Esta nueva orden de compra inicia con un
estatus de “automática”

 Clientes
o Cualquier persona que cuente con una dirección de correo electrónico y tarjeta de
crédito puede ser cliente del sistema.
o Datos de los clientes: nombres y apellidos completos, número de NIT, país de origen,
teléfono y dirección de entrega. Dirección de correo electrónico y número de tarjeta de
crédito.
o Cliente Nuevo
 Debe de ingresar una dirección de correo electrónico, el sistema valida que no
exista y luego solicita la contraseña que utilizará, así como todos los datos
generales necesarios.
o Cliente existente
 Ingresa sus credenciales (email y contraseña) para ingresar al sistema y operar
sus pedidos.

 Pedidos (proceso de venta)


o El sistema le permite al usuario (ya autenticado) visualizar solo los productos “activos”
con existencia en bodega, indicando su precio de venta. Mostrando en primer lugar los
productos que compro en su última visita.
o El usuario selecciona cada producto que desea ingresando la cantidad a comprar,
acumulándose todo en la “carretilla”, esto automáticamente creará un nuevo pedido en
estatus “en progreso”. Se debe de llevar el control Del monto total del pedido y los
productos del mismo (cantidad y precio venta). La cantidad de un producto del pedido
“en progreso” debe de aumentar la “cantidad en reserva” del producto en el inventario.
o El usuario en cualquier momento puede agregar o eliminar productos de la carretilla.
Cuando desea confirmar el pedido, el sistema debe de pedir la confirmación de la
tarjeta de crédito registrada y del monto total del pedido a pagar, pasando el pedido a
status “finalizado”. En este momento el sistema debe de rebajar el inventario y liberar
las reservas. Si existiese algún producto del cual ya no se cuente con la cantidad
solicitada, entonces se debe de informar al usuario para que ajuste la cantidad o bien
eliminar totalmente el producto del pedido. Solo se pueden finalizar pedidos completos,
es decir, no se permite despachar de forma parcial los productos del pedido.

3
o Cuando un pedido es “finalizado”, el sistema debe generar la factura respectiva (con la
fecha del día) con los datos ya almacenados del cliente y con el detalle de todos los
productos facturados (cantidad y precio de venta).
o Si un pedido “en progreso” (en la carretilla), no se ha finalizado y ya no se desea seguir
trabajando con él, se puede pasara a estatus “cancelado”. Liberando las reservas de
los productos. El pedido cancelado ya no puede cambiar nunca de estatus, es decir, ya
no se puede utilizar para nada.
o Si el cliente solicita una anulación de factura, el pedido asociado a la factura pasa a
estatus “devuelto” y la factura queda “anulada”. Todas las cantidades de los productos
del pedido suman nuevamente al inventario.
o Un cliente para poder hacer un nuevo pedido, debe de tener obligatoriamente
registrada su tarjeta de crédito y no debe de tener pedidos “en proceso”.
o El sistema debe de brindar al usuario reportes que le permitan saber el histórico de sus
pedidos y productos comprados, permitiendo realizar búsquedas (como mínimo) por
rango de fechas, numero de pedido, numero de factura, código de producto, nombre
del producto, tipo de producto o rango de precios.

 Proveedores
o Datos de los proveedores: nombre comercial, nombres y apellidos completos del
representante legal, número de NIT, país de origen, teléfono y dirección, dirección de
correo electrónico.
o Un proveedor puede abastecernos de varios productos y un producto también puede
ser distribuido por muchos proveedores, por lo que es importante tener el control del
histórico de precios de cada producto y proveedor.

 Bodega (compras)
o Para realizar una compra de productos a un proveedor, se debe de hacer por medio de
una “orden de compra”, agregando los productos requeridos, iniciando en un estatus de
“ingresada” la orden de compra. El precio de cada producto en la orden de compra se
toma en base a la última compra realizada al proveedor de ese producto, si nunca se
ha comprado el producto al proveedor se coloca precio de Q 1.00.
o No se debe de permitir realizar órdenes de compra de productos cuya cantidad
solicitada mas la existencia actual, supere su cantidad máxima definida.
o Al momento de que el proveedor confirma los precios y la cantidad de producto que
puede proporcionar (si no tiene existencia de algún producto, se debe de registrar con
valor 0 la cantidad del producto en la orden), la orden de compra pasa a estatus
“completada”, entonces se aumenta el inventario de cada producto incluido en la orden
de compra y se actualiza el precio de compra del producto. No se recibe producto de
forma parcial, hasta que esté todo el producto en bodega la orden de compra puede ser
“completada”.

4
o Si una orden de compra está “ingresada” y ya no se desea utilizar entonces puede
cambiar a estatus “cancelada”
o Si una orden de compra “completada” desea cancelarse, únicamente se puede realizar
si existe en inventario la cantidad necesaria de todos los productos incluidos en la
orden de compra, es decir, que al rebajar el inventario ningún dato quede con valor
negativo. Si esto es posible, entonces la orden de compra queda “reversada” y la
cantidad del producto es rebajada del inventario.
o Si la cantidad incluida de un producto en una orden de compra al momento de
“completarse” supera la cantidad máxima definida para el producto en el inventario,
solo se debe de aceptar la cantidad que iguale la cantidad máxima permitida.
o Cuando se complete una orden de compra, se debe de aumentar la existencia en el
inventario y actualizar el precio de compra de cada producto, lo que automáticamente
también debe de actualizar su precio de venta respectivo, tomando en cuenta su
margen de ganancia también ya definido en el inventario.
o El sistema debe de brindar al usuario reportes que le permitan saber el histórico de las
ordenes de compras y productos comprados, permitiendo realizar búsquedas (como
mínimo) por proveedor, por rango de fechas, código de producto, nombre del producto,
tipo de producto o rango de precios.
o Proceso – órdenes de compra automáticas: Dicho proceso generará órdenes de
compra con estatus “automática” de todos aquellos productos cuya existencia sea
menor que su cantidad en reserva. La cantidad a comprar debe de ser la que garantice
satisfacer la cantidad en reserva y que la existencia del producto quede igual a la
cantidad máxima del producto. El proveedor al que se le debe de generar la solicitud es
el último al que se le compro el producto. Solo se debe de generar una orden de
compra automática a cada proveedor, es decir, debe de agrupar todos los productos
que puede abastecer a la bodega.

Requerimientos Técnicos
 Se deberá de configurar una red local con estas funciones.

o 1 servidor de base de datos (transaccional)

o 1 servidor web con la aplicación

o 1 cliente (como mínimo)

 No está permitido el uso de máquinas virtuales

 Sistemas operativos de los servidores y cliente: libre

 Software de Bases de Datos: Oracle Enterprise Database 11g o superior

 Web Server: libre


5
 Lenguaje de programación: libre

 IDE para desarrollo: Libre

 IMPORTANTE: Debido a que el sistema tendrá una infraestructura web, toda la lógica del
negocio y procesos del mismo, deberán de ser implementados utilizando triggers, funciones,
procedimientos o cualquier otra estructura necesaria en la base de datos transaccional

Evaluación de 1ra Fase: 23 marzo 2019. (5 puntos)


 Entrega Diagrama Entidad Relación (este no puede ser modificado en las siguiente fases)

 Definición de lenguajes de programación, web server y software reporteador a utilizar.

 Descripción del funcionamiento del sistema.

 Definición de formato de pantallas y reportes.

 Descripción de alcance y limitaciones del proyecto.

 Evaluación Individual: Querys sobre su diagrama ER presentado.

Evaluación de 2da Fase: 27 abril 2019. (10 puntos)


 Infraestructura de red y de desarrollo. Solo es obligatoria la base de datos transaccional.

 Implementación de Diagrama Entidad Relación en base de datos (tablas y llaves)

 Implementación de la lógica del negocio utilizando FUNCIONES, PROCEDIMIENTOS,


TRIGGERS, etc.

 El sistema deberá de poder operar como mínimo lo siguiente:

o Seguridad – Tipos de Usuarios y Usuarios

o Productos – Mantenimiento y procesos max-min e inactivación

o Clientes - Mantenimiento

o Proveedores - Mantenimiento

o Pedidos (proceso de venta) - completo

 Se evaluarán la concurrencia de las transacciones

 Entregar:

o Manual Técnico:

6
 Diagrama Entidad Relación

 Descripción de todas las estructuras de la base de datos que existan en el


momento

 Script de creación de todas las estructuras de la base de datos que existan en el


momento

 Toda la documentación deberá de ser presentada impresa y CD.

 IMPORTANTE:

o El tiempo de evaluación para cada grupo será de 15 minutos, por lo que cada grupo ya
debe de estar instalado y listo cuando se inicie.

o Todos los integrantes del grupo deben de conocer el funcionamiento de todo el


sistema, ya que se realizarán preguntas y ejercicios a cada integrante que deberá de
resolver de forma individual.

Evaluación Final: 25 de mayo 2019. (10 puntos)


 Infraestructura de red y seguridad de servidores.

 Se evaluarán todos los módulos del sistema, probando concurrencia de las transacciones y
funcionamiento de las operaciones solicitadas.

 Se tomará muy en cuenta la facilidad de operación del sistema y presentación.

 Se tomará muy en cuenta cualquier funcionalidad extra no solicitada.

 Restauración de la base de datos a partir de un fallo (interno o externo).

 Restauración de la base de datos de un backup histórico.

o Entregar: Manual de Usuario: Donde se explique detalladamente su instalación,


configuración y operación.

o Manual Técnico:

 Diagrama Entidad Relación

 Descripción de todas las estructuras de la base de datos.

 Script de creación de todas las estructuras de la base de datos.

 Toda la documentación deberá de ser presentada impresa y CD.

7
 IMPORTANTE:

o Los grupos de trabajo deben de estar conformados por 2, 3 o 4 integrantes máximo.

o El tiempo de evaluación para cada grupo será de 15 minutos, por lo que cada grupo ya
debe de estar instalado y listo cuando se inicie.

o Todos los integrantes del grupo deben de conocer el funcionamiento de todo el


sistema, ya que se realizarán preguntas y ejercicios a cada integrante que deberá de
resolver de forma individual.

o Cualquier duda debe de ser consultada con el catedrático al correo


mfnoriega@gmail.com