Proyecto Integrador
PROYECTO ECUAREFILLS
Quito - Ecuador
07/2020
ECUAREFILLS
TABLA DE CONTENIDO
3. OBJETIVOS: ............................................................................................................................. 3
Propuesta ........................................................................................................................ 6
11. APROBACIONES .................................................................................................................. 65
DESARROLLO
1. Resumen General
Proyecto: ECUAREFILLS
Fecha de Inicio del Proyecto Viernes, 30 de julio de 2021
Fecha de Finalización del Proyecto Martes, 31 de agosto de 2021
Tiempo estimado – Duración 4 Semanas
Área: Área de publicidad
Líder de Proyecto: Odalis Rea
Fecha de Elaboración: Viernes, 30 de julio de 2021
Equipo de Trabajo: Jenny Sinchiguano,
Josselin Quishpe,
Maria Jose Ortega
2. Resumen Ejecutivo
3. Objetivos:
OBJETIVO GENERAL
Dar a conocer a nuestro usuario visitante sobre nuestras campañas publicadas y los avisos de
campañas publicadas en otros medios con la fecha de inicio y la fecha final para qué
ECUAREFILLS
Objetivos específicos
1 Promocionar los productos de planes y chips al usuario visitante.
Administrar cada campaña publicada en otros medios para que el usuario visitante
2
pueda ver nuestros avisos.
Establecer un sistema de contacto para que el usuario visitante pueda comunicarse con
3
nosotros.
4. Justificación de la propuesta
Inicio
Planificación
Ejecución
Control
Cierre
7. Cronograma de Proyecto
Fecha Tema
Propuesta
MAT ENTREGABLE
ERIA
BASE -Modelo de la base de datos.
ECUAREFILLS
DE
DAT
OS
AVA
NZA
DA
-Diccionario de datos.
ECUAREFILLS
ECUAREFILLS
/*!40101 SET
@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET
@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET
@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de datos: `campania_publicitaria`
--
-- --------------------------------------------------------
--
-- Estructura Stand-in para la vista `campanias`
-- (Véase abajo para la vista actual)
--
CREATE TABLE `campanias` (
`nombre` varchar(200)
,`medio` varchar(100)
,`descripcion` varchar(500)
,`fechaInicio` date
,`fechaFinal` date
,`created_at` date
);
-- --------------------------------------------------------
--
-- Estructura Stand-in para la vista `historial_avisos_campanias`
-- (Véase abajo para la vista actual)
ECUAREFILLS
--
CREATE TABLE `historial_avisos_campanias` (
`nombre` varchar(200)
,`medio` varchar(100)
,`descripcion` varchar(500)
,`fechaInicio` date
,`fechaFinal` date
,`created_at` date
);
-- --------------------------------------------------------
--
-- Estructura Stand-in para la vista `historial_publicaciones_productos`
-- (Véase abajo para la vista actual)
--
CREATE TABLE `historial_publicaciones_productos` (
`nombre_campaña` varchar(200)
,`precio_producto` int(11)
,`llamadas_ilimitadas` varchar(100)
,`gigas` int(11)
,`minutos` int(11)
,`created_at` date
,`descripcion` varchar(500)
);
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `person`
--
--
-- Volcado de datos para la tabla `person`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `producto`
--
ECUAREFILLS
--
-- Volcado de datos para la tabla `producto`
--
-- --------------------------------------------------------
--
ECUAREFILLS
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `users`
--
--
-- Volcado de datos para la tabla `users`
--
'$2y$10$Q.H8romp2Y93L4nr/wWIsOtxalqnVy2MKR20vYYxqmARlzl3ZUYQW'),
(101, 'odyrea96@gmail.com',
'$2y$10$ruYY9F2/Q1Rm2//FsmCpROB5x2bO/4ZYu7/i9vNDrUoDBq3eV.B.O',
'$2y$10$ruYY9F2/Q1Rm2//FsmCpROB5x2bO/4ZYu7/i9vNDrUoDBq3eV.B.O');
-- --------------------------------------------------------
--
-- Estructura Stand-in para la vista `users1`
-- (Véase abajo para la vista actual)
--
CREATE TABLE `users1` (
`email` varchar(150)
,`password` varchar(200)
);
-- --------------------------------------------------------
--
-- Estructura para la vista `campanias`
--
DROP TABLE IF EXISTS `campanias`;
-- --------------------------------------------------------
--
-- Estructura para la vista `historial_avisos_campanias`
ECUAREFILLS
--
DROP TABLE IF EXISTS `historial_avisos_campanias`;
-- --------------------------------------------------------
--
-- Estructura para la vista `historial_publicaciones_productos`
--
DROP TABLE IF EXISTS `historial_publicaciones_productos`;
-- --------------------------------------------------------
--
-- Estructura para la vista `producto1`
--
DROP TABLE IF EXISTS `producto1`;
`producto`.`nombre_campaña` AS `nombre_campaña`,`producto`.`precio_producto`
AS `precio_producto`,`producto`.`created_at` AS
`created_at`,`producto`.`descripcion` AS `descripcion` from `producto` ;
-- --------------------------------------------------------
--
-- Estructura para la vista `users1`
--
DROP TABLE IF EXISTS `users1`;
--
-- Índices para tablas volcadas
--
--
-- Indices de la tabla `person`
--
ALTER TABLE `person`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `nombre` (`nombre`),
ADD UNIQUE KEY `descripcion` (`descripcion`);
--
-- Indices de la tabla `producto`
--
ALTER TABLE `producto`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `nombre_campaña` (`nombre_campaña`),
ECUAREFILLS
--
-- Indices de la tabla `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `email` (`email`);
--
-- AUTO_INCREMENT de las tablas volcadas
--
--
-- AUTO_INCREMENT de la tabla `person`
--
ALTER TABLE `person`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT
'Identificador único de la tabla person';
--
-- AUTO_INCREMENT de la tabla `producto`
--
ALTER TABLE `producto`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT
'Identificador unico de la tabala producto', AUTO_INCREMENT=17;
--
-- AUTO_INCREMENT de la tabla `users`
--
ALTER TABLE `users`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '
\r\nIdentificador unico de la tabla users', AUTO_INCREMENT=104;
ECUAREFILLS
COMMIT;
/*!40101 SET
CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET
CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET
COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-Aplicación de transacciones en una interfaz.
START TRANSACTION;
UPDATE producto SET precio_producto = precio_producto - 10 WHERE id = 11;
UPDATE producto SET precio_producto = precio_producto + 10 WHERE id = 14;
ROLLBACK;
COMMIT
-Vistas.
CREATE VIEW campanias AS
select `campania_publicitaria`.`person`.`nombre` AS
`nombre`,`campania_publicitaria`.`person`.`medio` AS
`medio`,`campania_publicitaria`.`person`.`descripcion` AS
`descripcion`,`campania_publicitaria`.`person`.`fechaInicio` AS
`fechaInicio`,`campania_publicitaria`.`person`.`fechaFinal` AS
`fechaFinal`,`campania_publicitaria`.`person`.`created_at` AS `created_at` from
`campania_publicitaria`.`person`
-procedimientos almacenados.
create or replace function catalogo.ad_tipo_catalogo (opcion int) returns character
varying as $$ declare mensaje character varying; begin if opcion = 1 then insert into
catalogo.tipo_catalogo (id,nombre) values (7,'tipo_tela'); mensaje = 'Ingresado
correctamente'; return mensaje;
else if opcion = 2 then update catalogo.tipo_catalogo set id=10, nombre='tipo_talla'
where id=7; mensaje = 'Modificado correctamente'; return mensaje; else if opcion= 3
then delete from catalogo.tipo_catalogo where id=10; mensaje = 'Eliminado
correctamente'; return mensaje; end if; end; $$ language 'plpgsql'; .
-Creación de usuarios en base datos.
Usuario Administrador
CREATE ROLE usuario_administrador WITH
ECUAREFILLS
LOGIN
SUPERUSER
CREATEDB
CREATEROLE
INHERIT
REPLICATION
CONNECTION LIMIT -1
PASSWORD 'xxxxxx';
COMMENT ON ROLE usuario_administrador IS 'acceso total a la base de datos';
Usuario Visitante
CREATE ROLE usuario_visitante WITH
NOCREATEDB
NOCREATEROLE
INHERIT
NOREPLICATION
CONNECTION LIMIT -1
PASSWORD 'xxxxxx';
COMMENT ON ROLE usuario_administrador IS 'acceso a la base';
ECUAREFILLS
INTE productos es el doble del precio. Cada producto tiene un precio. Guardamos
GRA en la base de datos el total.
L
Paso 2
➔ Con una función le sumamos el total de inversión de costos, como resultado
Paso 3
➔ Mediante la fórmula general encontramos los puntos de la recta y son x1 = 0
y x2 = -215
ECUAREFILLS
Paso 4
➔ Con esa ecuación lo hallamos el vértice del (h,k) y encontramos los punto
Paso 5
➔ Mediante una gráfica le podemos demostrar que encontramos el mínimo de
FUN Lista de requerimientos del sistema que manifieste un proceso funcional desde la
DAM Planificación hasta el control del mismo.
ENTO Registrar las campañas publicitarias (nombre, medio, descripción,
S DE planificar la campaña (fecha de inicio, fecha cuando termina).
ADMI La página contendrá un módulo login y un módulo registro para que el
NIST administrador pueda acceder y publicar campañas de productos y
RACI registrar las campañas publicadas en otros medios como Facebook.
ÓN Se registrará las campañas publicitarias de productos(nombre, precio,
llamadas ilimitadas a, gigas para redes sociales, minutos a todas las
operadoras, descripción)
Poner contenido de la empresa en Facebook.
Página web que implemente la búsqueda.
Página web que permite editar, actualizar, borrar, crear, buscar campañas
publicitarias y campañas publicitarias de productos.
El usuario visitante va a ver todas las campañas registradas y publicadas
de forma inmediata.
Las campañas publicitarias se publican en la página principal de forma
inmediata en la página principal para que el usuario visitante lo vea, es
ECUAREFILLS
PROG
RAM
ACIÓ
N
VISU
AL
-Diccionario de datos
El siguiente diccionario de datos muestra a la tabla campaña publicitaria la cual tiene una
relación con las tablas catálogo y empleado.
Un diccionario es importante para los analistas ya que en este podemos ver características de
los datos que se van a utilizar durante el sistema que se programara, identificando un acceso
inmediato a la información que se requiere, como ejemplos: La descripción, la cual detalla
brevemente la función de la tabla y sus campos. El tipo de dato que permite ingresar en cada
campo y su cantidad de caracteres. Muestra la unión de la tabla campania_publicitaria con las
tablas catálogo y empleado por medio de foreign keys y al campo que los une. (Jenny)
ECUAREFILLS
ECUAREFILLS
-procedimientos almacenados.
Un procedimiento almacenado en PostgreSQL se puede escribir en múltiples lenguajes de
programación como php y python, nosotros hemos creado una función que permite ver la
tabla actual, editar, eliminar y guardar datos en la tabla campaña, este procedimiento nos
ayuda cuando queramos hacer cualquier tipo de cambio en nuestro modulo.
campania_publicitaria.campania_publicitaria(nombre,fecha_inicio,fecha_finalizacion,medio_
publicacion,descripcion,empleado,status,estado)
values ('Gigas ilimitados por una semana','2021-8-23','2021-8-24',13,'EcuaRefills te
da gigas ilimitados por una semana',1,16,true);
END IF;
IF numero = 3 THEN --Modifica los datos
update campania_publicitaria.campania_publicitaria set nombre= 'Gigas ilimitados
por un mes', fecha_inicio ='2021-08-23',fecha_finalizacion ='2021-08-27',
medio_publicacion=19,descripcion='EcuaRefills te da gigas ilimitados por un mes',
empleado=2, status=16, estado=true where id= 13;
END IF;
IF numero = 4 THEN --Elimina los datos
delete from campania_publicitaria.campania_publicitaria where id=13;
END IF;
END;
$BODY$ LANGUAGE plpgsql VOLATILE;
SELECT * from campania_publicitaria.procedimiento_almacenado_campania(1)
-Lista de Requerimientos
insert into ventas.factura (id, fecha, cliente_fk, estado) values(1, '2021/09/01', 1, true)
insert into ventas.detalle_factura (id, producto_fk, cantidad, factura_fk, estado) values
(1,1,5,1,true)
insert into ventas.detalle_factura (id, producto_fk, cantidad, factura_fk, estado) values
(2,2,10,1,true)
insert into ventas.detalle_factura (id, producto_fk, cantidad, factura_fk, estado) values
(3,3,2,1,true)
-- Después de ingresar los detalles de la factura correctamente ingreso el total a pagar, iva y
tipo de pago--
update ventas.factura set total=200, iva=12, tipo_pago_fk=9, status=10
commit
rollback
-Vistas.
8. Seguridades:
1.Para optimizar nuestro motor de la base de datos lo primero que debemos hacer es ver los
detalles de nuestra máquina tanto del cpu como en la memoria
ECUAREFILLS
3.Hacemos una estimación de nuestra base de datos en la cual vamos a sacar el número de
conexiones existentes
Creamos el “Usuario administrador” otorgando todos los permisos ya será aquel que tenga
acceso en su totalidad a la base de datos.
Creamos el “Usuario empleado” otorgando ciertos permisos como crear una base de datos,
crear roles, a diferencia de el “Usuario administrador” que tiene todos los privilegios,
9. Glosario de Términos
Abreviación Descripción
HTTP Protocolo de transferencia de hipertexto
PHP Preprocesador de hipertexto
HTML Lenguaje de Marcas de Hipertexto
Es un lenguaje de programación interpretado, dialecto del
JAVASCRIPT
estándar ECMAScript.
ECUAREFILLS
11. Aprobaciones
31/08/2021
31/08/2021
Maria Jose Oretga Estudiante
31/08/2021
Jenny Sinchiguano Estudiante
31/08/2021
Josselin Quishpe Estudiante
12. Bibliografía