Está en la página 1de 68

 

 
 
 
 
 
 
 
 

Proyecto Integrador

PROYECTO ECUAREFILLS

Instituto Tecnológico Superior “Yavirac”

Quito - Ecuador
07/2020
ECUAREFILLS

TABLA DE CONTENIDO

1.  RESUMEN GENERAL ........................................................................................................... 3 

2.  RESUMEN EJECUTIVO ....................................................................................................... 3 

3.  OBJETIVOS: ............................................................................................................................. 3 

5.  ALCANCE DEL PROYECTO .............................................................................................. 4 

6.  PROCESOS DE DESARROLLO DEL PROYECTO .................................................... 5 

7.  CRONOGRAMA DE PROYECTO ..................................................................................... 5 

8. Desarrollo del proyecto ........................................................................................ 6

Propuesta ........................................................................................................................ 6

9.  GLOSARIO DE TÉRMINOS .............................................................................................. 64 

10.  CONCLUSIONES Y RECOMENDACIONES .............................................................. 65 

11.  APROBACIONES .................................................................................................................. 65 

13.  ANEXOS (INCLUIR TODOS LOS ANEXOS QUE SE CREAN NECESARIOS).


  67 

ANEXO 1: MODELO DE LA BASE DE DATOS ...................................................................... 67 

ANEXO 2: LA BASE DE DATOS DEL PROYECTO INTEGRADOR .............................. 67 


ECUAREFILLS

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

El proyecto ECUAREFILLS trata de que el administrador se registre e inicie sesión,


modifique cada campaña administrada, ya sea editando, actualizando, borrando o pueda
buscar alguna campaña, también puede registrar las campañas que han sido publicadas en
otros medios como redes sociales (Facebook, Instagram, etc.), con la fecha de inicio y fecha
de finalización. El administrador igualmente puede publicar campañas de productos como de
chips y planes, así mismo podría eliminar, modificar, actualizar y buscar cualquier
publicación. Cada campaña publicada como de productos o avisos de ciertas campañas que
fueron difundidas en otros medios lo podrá ver el usuario visitante al instante en la página
principal, contactarse con nosotros en caso que lo necesite.

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

identifique ciertas publicaciones de la empresa ECUAREFILLS y si está interesado puede


contactarse con nosotros.

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

El proyecto ECUAREFILLS lo hicimos para dar conocer al público de nuestras


campañas publicitarias sobre los productos como chips y planes de la operadora
ECUAREFILLS, igualmente los avisos de las campañas que hemos hecho en otros
medios de publicación como en Facebook, Instagram, etc. Si la gente está interesada
puede contactarse con nosotros llenando un formulario para saber su motivo y así
podemos solucionar cualquier situación que desea el público. El administrador va a
estar publicando las campañas publicitarias de productos de la misma empresa para
dar a conocer a al usuario visitante, además va a estar administrando cada campaña
con la fecha de inicio y la fecha de finalización que se ha publicado en redes sociales u
otros, para llevar el control de las publicaciones hechas.

5. Alcance del proyecto


ECUAREFILLS

El proyecto integrador ECUAREFILLS es un CRM de una operadora telefónica en el


cuál el administrador podrá registrarse e iniciar sesión, realizar campañas
publicitarias de productos de la misma empresa como chips, planes y administrar
cualquier campaña que se haya registrado en otros medios de publicación como
Facebook, Instagram, etc. El administrador podrá modificar, eliminar, actualizar y
buscar las publicaciones. Cada campaña se va a publicar al instante ya sea en la
página principal o en la sección iniciada. El usuario visitante solo podrá ver los avisos
de las campañas y las campañas publicadas de los productos, acerca de nuestra
empresa, el contenido en Facebook, también se va a contactarse con nosotros,
llenando un formulario en la página principal.

6. Procesos de desarrollo del proyecto

Modelo de Ciclo de Vida de


Proyectos

Inicio

Planificación

Ejecución

Control

Cierre

7. Cronograma de Proyecto

Fecha de inicio proyectada: 30-07-2021


Fecha fin proyectado: 31-08-2021
Actividades

Fecha Tema

30-07-2021 Prototipos para el inicio del proyecto.


ECUAREFILLS

3-08-2021 Planificación del proyecto.

5-08-2021 Diseño de la página principal

7-08-2021 Diseño de la página principal

10-08-2021 Diseño y funcionamiento del CRM

12-08-2021 Diseño y funcionamiento del CRM,


añadido la búsqueda

14-08-2021 Funcionamiento por su totalidad del CRM

17-08-2021 Diseño de la ventana conócenos

19-08-2021 Diseño de la ventana de contáctanos

21-08-2021 Funcionamiento de la ventana de


contáctanos

23-08-2021 Diseño de interfaz a todo el proyecto

25-08-2021 Diseño de interfaz a todo el proyecto

27-08-2021 Diseño de interfaz a todo el proyecto

30-08-2021 Diseño de interfaz a todo el proyecto

31-08-2021 Verificación del proyecto que cumpla con


lo acordado

8. Desarrollo del proyecto

Propuesta
MAT ENTREGABLE
ERIA
BASE -Modelo de la base de datos.
ECUAREFILLS

DE
DAT
OS
AVA
NZA
DA

-Diccionario de datos.
ECUAREFILLS
ECUAREFILLS

-Script de la base de datos con restricciones (integridad de datos).


-- phpMyAdmin SQL Dump
-- version 5.0.2
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 01-09-2021 a las 22:35:02
-- Versión del servidor: 10.4.13-MariaDB
-- Versión de PHP: 7.2.32

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";


START TRANSACTION;
SET time_zone = "+00:00";
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`
--

CREATE TABLE `person` (


ECUAREFILLS

`id` int(11) NOT NULL COMMENT 'Identificador único de la tabla person',


`nombre` varchar(200) NOT NULL COMMENT ' \r\nGuarda el nombre de las
campanias publicadas',
`medio` varchar(100) NOT NULL COMMENT 'Permite guardar el medio de
publicacion de las campanias',
`descripcion` varchar(500) NOT NULL COMMENT 'Permite guardar la
descripcion de la campania',
`fechaInicio` date NOT NULL COMMENT 'Permite guardar la fecha de inicio de
la campania',
`fechaFinal` date NOT NULL COMMENT 'Permite guardar la fecha de
finalizacion de la campania',
`created_at` date DEFAULT NULL COMMENT ' \r\nPermite guardar la fecha de
publicacion del registro'
);

--
-- Volcado de datos para la tabla `person`
--

INSERT INTO `person` (`id`, `nombre`, `medio`, `descripcion`, `fechaInicio`,


`fechaFinal`, `created_at`) VALUES
(16, 'Ecuarefills 77', 'facebook1', '1122', '2021-08-03', '2021-08-21', '2021-08-17'),
(23, '30% de descuento este mes', 'facebook', 'solo por este mes aprovecha los
mejores descuentos ', '2021-08-23', '2021-10-10', '2021-08-22'),
(40, '300 mensajes ilimitados con otras operadoras y más', 'intagram', 'Mensajes
ilimitados por un plan de 10 dolares', '2021-09-01', '2021-09-05', '2021-08-30');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `producto`
--
ECUAREFILLS

CREATE TABLE `producto` (


`id` int(11) NOT NULL COMMENT 'Identificador unico de la tabala producto',
`nombre_campaña` varchar(200) NOT NULL COMMENT ' \r\nPermitira
guardar el nombre de la campania publicitaria del producto que sera publicado',
`precio_producto` int(11) NOT NULL COMMENT 'Permite guardar el precio del
producto que se va a publicar',
`llamadas_ilimitadas` varchar(100) NOT NULL COMMENT ' \r\nPermitira
guardar el numero de llamadas ilimitadas',
`gigas` int(11) NOT NULL COMMENT ' \r\nPermitira guardar el numero de
gigas que se va a publicar',
`minutos` int(11) NOT NULL COMMENT 'Permitira guardar los minutos del
producto que se va a publicar',
`created_at` date DEFAULT NULL COMMENT ' \r\nPermitira guardar la fecha en
la que se realiza la publicacion',
`descripcion` varchar(500) NOT NULL COMMENT ' \r\nPermitira guardar la
descripcion del producto que sera publicado'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Volcado de datos para la tabla `producto`
--

INSERT INTO `producto` (`id`, `nombre_campaña`, `precio_producto`,


`llamadas_ilimitadas`, `gigas`, `minutos`, `created_at`, `descripcion`) VALUES
(11, 'Planes de EcuaRefills', 100, 'CLARO', 200, 300, '2021-08-23', 'PLANES DE
ECUAREFILLS '),
(14, 'mensajes gratis con chips de $5', 11, 'CLARO', 11, 2222, '2021-08-30',
'Ecuarefils te da 200 mensajes'),
(15, 'Claro', 1, 'CLARO', 1, 1, '2021-08-31', 'qqq2');

-- --------------------------------------------------------

--
ECUAREFILLS

-- Estructura Stand-in para la vista `producto1`


-- (Véase abajo para la vista actual)
--
CREATE TABLE `producto1` (
`nombre_campaña` varchar(200)
,`precio_producto` int(11)
,`created_at` date
,`descripcion` varchar(500)
);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `users`
--

CREATE TABLE `users` (


`id` int(11) NOT NULL COMMENT ' \r\nIdentificador unico de la tabla users',
`email` varchar(150) COLLATE utf8_unicode_ci NOT NULL COMMENT '
\r\nPermite guardar el correo del usuario',
`password` varchar(200) COLLATE utf8_unicode_ci NOT NULL COMMENT
'Permite guardar la contraseña del usuario',
`confirm_password` varchar(200) COLLATE utf8_unicode_ci NOT NULL
COMMENT 'permite guardar la contraseña '
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Volcado de datos para la tabla `users`
--

INSERT INTO `users` (`id`, `email`, `password`, `confirm_password`) VALUES


(99, 'odyrea106@gmail.com',
'$2y$10$Q.H8romp2Y93L4nr/wWIsOtxalqnVy2MKR20vYYxqmARlzl3ZUYQW',
ECUAREFILLS

'$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`;

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL


SECURITY DEFINER VIEW `campanias` AS select `person`.`nombre` AS
`nombre`,`person`.`medio` AS `medio`,`person`.`descripcion` AS
`descripcion`,`person`.`fechaInicio` AS `fechaInicio`,`person`.`fechaFinal` AS
`fechaFinal`,`person`.`created_at` AS `created_at` from `person` ;

-- --------------------------------------------------------

--
-- Estructura para la vista `historial_avisos_campanias`
ECUAREFILLS

--
DROP TABLE IF EXISTS `historial_avisos_campanias`;

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL


SECURITY DEFINER VIEW `historial_avisos_campanias` AS select
`person`.`nombre` AS `nombre`,`person`.`medio` AS `medio`,`person`.`descripcion`
AS `descripcion`,`person`.`fechaInicio` AS `fechaInicio`,`person`.`fechaFinal` AS
`fechaFinal`,`person`.`created_at` AS `created_at` from `person` ;

-- --------------------------------------------------------

--
-- Estructura para la vista `historial_publicaciones_productos`
--
DROP TABLE IF EXISTS `historial_publicaciones_productos`;

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL


SECURITY DEFINER VIEW `historial_publicaciones_productos` AS select
`producto`.`nombre_campaña` AS `nombre_campaña`,`producto`.`precio_producto`
AS `precio_producto`,`producto`.`llamadas_ilimitadas` AS
`llamadas_ilimitadas`,`producto`.`gigas` AS `gigas`,`producto`.`minutos` AS
`minutos`,`producto`.`created_at` AS `created_at`,`producto`.`descripcion` AS
`descripcion` from `producto` ;

-- --------------------------------------------------------

--
-- Estructura para la vista `producto1`
--
DROP TABLE IF EXISTS `producto1`;

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL


SECURITY DEFINER VIEW `producto1` AS select
ECUAREFILLS

`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`;

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL


SECURITY DEFINER VIEW `users1` AS select `users`.`email` AS
`email`,`users`.`password` AS `password` from `users` ;

--
-- Í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

ADD UNIQUE KEY `descripcion` (`descripcion`);

--
-- 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`

CREATE VIEW historial_avisos_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
ECUAREFILLS

`fechaFinal`,`campania_publicitaria`.`person`.`created_at` AS `created_at` from


`campania_publicitaria`.`person`

CREATE VIEW historial_publicaciones_productos AS


select `campania_publicitaria`.`producto`.`nombre_campaña` AS
`nombre_campaña`,`campania_publicitaria`.`producto`.`precio_producto` AS
`precio_producto`,`campania_publicitaria`.`producto`.`llamadas_ilimitadas` AS
`llamadas_ilimitadas`,`campania_publicitaria`.`producto`.`gigas` AS
`gigas`,`campania_publicitaria`.`producto`.`minutos` AS
`minutos`,`campania_publicitaria`.`producto`.`created_at` AS
`created_at`,`campania_publicitaria`.`producto`.`descripcion` AS `descripcion` from
`campania_publicitaria`.`producto`

CREATE VIEW producto1 AS


select `campania_publicitaria`.`producto`.`nombre_campaña` AS
`nombre_campaña`,`campania_publicitaria`.`producto`.`precio_producto` AS
`precio_producto`,`campania_publicitaria`.`producto`.`created_at` AS
`created_at`,`campania_publicitaria`.`producto`.`descripcion` AS `descripcion` from
`campania_publicitaria`.`producto`
ECUAREFILLS

CREATE VIEW users1 AS


select `campania_publicitaria`.`users`.`email` AS
`email`,`campania_publicitaria`.`users`.`password` AS `password` from
`campania_publicitaria`.`users`

-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

CÁLC Algoritmo de Maximización de ganacias vs minimización de gastos.


ULO Algoritmo:
DIFE
RENC Paso 1
IAL E ➔ En la base de datos se encuentra guardado los productos, la cantidad de los

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

sería 215. Utilizando una unidad x de productos le multiplicamos por (x +


215) y sacamos nuestra ecuación cuadrática y sería x^(2)+215x.

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

críticos que son (-215/2, 46255/4)


ECUAREFILLS

Paso 5
➔ Mediante una gráfica le podemos demostrar que encontramos el mínimo de

los costos de inversión.

DISE - Product Backlog


ÑO
DE
INTE
RFAZ
ECUAREFILLS
ECUAREFILLS

-Diagrama de Casos de uso


ECUAREFILLS

-diagrama del flujo de procesos.


ECUAREFILLS

-diagrama del flujo de procesos.


ECUAREFILLS

- Prototipo de las pantallas.


ECUAREFILLS
ECUAREFILLS
ECUAREFILLS

- Fornt end de todo el proyecto.


ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS
ECUAREFILLS

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

decir cuando lo haya publicado el administrador una vez que haya


iniciado sesión.

 El usuario visitante podrá contactarse con nosotros por cualquier ocasión.

PROG
RAM
ACIÓ
N
VISU
AL

BASE DE DATOS AVANZADA

En nuestro proyecto realizado de la campaña publicitaria sobre la operadora


“EcuaRefills” hemos realizado los siguientes temas: el modelo de la base de datos
consta de una sola tabla que está con el nombre de campania_publicitaria en donde
tiene los siguientes datos que son: el id,nombre,fecha_inicio,fecha_finalizacion,
medio_publicacion_descripcion, empleado, status nuestro identificador único es el id
<<PK>> y el estado teniendo como <<FK>>a medio, empleado, status.
Realizamos el diccionario de datos donde nos muestra las relaciones, cabe recalcar que
todo está con su respectiva documentación
Continuamos con el script de la base de datos más conocida como “integridad de
datos” que realizamos en nuestro proyecto ya que nos ayudó a mantenerla completa y
muy fiable al ir almacenando todos nuestros datos.
Hicimos los procedimientos almacenados ya que se nos facilita porque se
puede escribir en php y python nos permitirá visualizar la tabla agregar, editar y
eliminar.
Hemos realizado nuestra lista de requerimientos ya que es muy necesario porque así
podremos llevar a cabo el cumplimiento de todos nuestros objetivos y así también
poder satisfacer todas nuestras necesidades.
ECUAREFILLS

Realizamos la aplicación de transacciones en una interfaz ya que nos ayuda a ejecutar


varios procesos que deben ir a la par y una sola vez sin que la estructura falle o sea
interrumpida hasta que sean finalizados, cuando ejecutamos todo el proceso hacemos
un commit y si por algún motivo llegara a pasar algo puede volver a realizar poniendo
un rollback para volver a iniciar sin ningún problema.
También hicimos las vistas ya que actúan como filtro de las tablas subyacentes a las
que se hace referencia en ella. La consulta que define la vista puede provenir de una o
de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos.
Realizamos las seguridades para poder optimizar nuestro motor de la base de datos lo
primero que debemos hacer es ver los detalles de nuestra máquina.

-Modelo de la base de datos


ECUAREFILLS

-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

-Script de la base de datos con restricciones (integridad de datos).


La integridad de datos ayuda a tener una coherencia manteniéndola completa, precisa y fiable
al almacenar datos.
Se utilizó la restricción unique para evitar que existan campañas con el mismo nombre y
existan errores en el lector.
ECUAREFILLS

alter table campania_publicitaria.campania_publicitaria add constraint uni_nombre unique


(nombre);
Se utilizó un check para evitar que la fecha_inicio sea anterior al día que se lo está registrando
para evitar inconsistencias en fechas.
alter table campania_publicitaria.campania_publicitaria add constraint ck_fecha_inicio
check (fecha_inicio >= current_date);
Se utilizó un check para evitar que la fecha_finalizacion sea anterior a la fecha_inicio para
evitar errores en días e incomprensión para el lector.
alter table campania_publicitaria.campania_publicitaria add constraint
ck_fecha_finalizacion check (fecha_finalizacion > fecha_inicio); (Jenny)

-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.

CREATE OR REPLACE FUNCTION


campania_publicitaria.procedimiento_almacenado_campania(numero int)
RETURNS SETOF campania_publicitaria.campania_publicitaria AS
$BODY$
BEGIN
IF numero = 1 THEN --Muestra la tabla
RETURN query select * from campania_publicitaria.campania_publicitaria;
END IF;
IF numero = 2 THEN --Guarda los datos
insert into
ECUAREFILLS

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)

SELECT * from campania_publicitaria.procedimiento_almacenado_campania(1)


--Muestra la tabla
ECUAREFILLS

SELECT * from campania_publicitaria.procedimiento_almacenado_campania(2)


--Guarda los datos

SELECT * from campania_publicitaria.procedimiento_almacenado_campania(3)


--Modifica los datos

SELECT * from campania_publicitaria.procedimiento_almacenado_campania(4)


--Elimina los datos
ECUAREFILLS

-Lista de Requerimientos

En el desarrollo de este módulo es fundamental el diagnóstico de los requisitos o


requerimientos, ya que esto ha ayudado al diseño para lograr el cumplimiento del objetivo y
satisfacer nuestras necesidades.

 Registrar las campañas publicitarias (nombre, medio, descripción, planificar la


campaña (fecha de inicio, fecha cuando termina).
 Poner contenido de la empresa en Facebook.

-Índices (cuales son los indices recomendados y sus SQL)


El índice de una tabla permite encontrar datos rápidamente. Su principal beneficio será el de
agilizar las consultas a los datos. Pero los índices también agregan gastos generales al sistema
de base de datos en su conjunto, por lo que deben usarse con sensatez.

CREATE INDEX campania_publicitaria_nombre_index


ON campania_publicitaria.campania_publicitaria(nombre)

CREATE INDEX campania_publicitaria_nombre_index


ON campania_publicitaria.campania_publicitaria(nombre)

CREATE INDEX campania_publicitaria_estado_index


ON campania_publicitaria.campania_publicitaria(estado)
ECUAREFILLS

select * from campania_publicitaria.campania_publicitaria where


nombre='HMmQUdbpxGzyQdyWGoxn'

select * from campania_publicitaria.campania_publicitaria where estado=false

select * from campania_publicitaria.campania_publicitaria

-Aplicación de transacciones en una interfaz.


Una transacción ayuda a ejecutar varios procesos que deben ir a la par y una sola vez sin que
la estructura falle o sea interrumpida hasta que sean finalizados, al poder ejecutar todos los
procesos se selecciona commit para cerrar la transacción convirtiendo de forma permanente
los cambios y en caso de un fallo se selecciona el rollback para borrar todo los cambios e
iniciar desde un principio.
Ya que en campaña publicitaria no se es posible realizar una transacción por ser tabla única se
ha realizado el ejercicio en esquema ventas con las tablas factura y detalle_factura.
Una factura no puede dar el total si no se han ingresado todos los productos que el cliente
desea comprar, por lo cual primero ingresamos al cliente y la fecha, después ingresamos los
productos que van en detalle factura. (Jenny)
begin
--Primero ingresó el cliente y fecha de la factura--
ECUAREFILLS

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.

--Para la visualización de la campaña publicitaria y el empleado que la crea, uní las


tablas: campania_publicitaria, catalogo, empleado y persona--

create or replace view vistas.v_detalle_empleado_campania as


select p.nombre as nombre_empleado,p.numero_identificacion,c.nombre as
nombre_campania, c.fecha_inicio, c.fecha_finalizacion, ca.valor as
medio_publicacion from campania_publicitaria.campania_publicitaria c
join informacion_general.empleado e
on c.empleado = e.id
join informacion_general.persona p
on e.persona_id = p.id
join catalogo.catalogo ca
on c.medio_publicacion = ca.id
ECUAREFILLS

Select * from vistas.v_detalle_empleado_campania

--Para visualizar sólo la información de la campaña publicitaria con el medio en el que


se publicará, uní las tablas: campania_publicitaria, catalogo y tipo_catalogo--

create or replace view vistas.v_informacion_campania as


select c.nombre as
nombre_campania, c.descripcion,c.fecha_inicio, c.fecha_finalizacion, t.nombre as
tipo_catalogo ,ca.valor as
medio_publicitario from campania_publicitaria.campania_publicitaria c
join catalogo.catalogo ca
on c.medio_publicacion = ca.id
join catalogo.tipo_catalogo t
on ca.tipo_catalogo = t.id
ECUAREFILLS

Select * from vistas.v_informacion_campania

8. Seguridades:

 Configuración para implementar el motor de base de datos

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

2. Nos dirigimos a PgTune la cual va a calcular la configuración para PostgreSQL en función


del rendimiento máximo para una configuración de hardware
determinada
ECUAREFILLS

3.Hacemos una estimación de nuestra base de datos en la cual vamos a sacar el número de
conexiones existentes

4.Vemos la configuración de nuestro postgres en el cual vamos a crear la carpeta “conf.d”


ECUAREFILLS

5.Agregamos nuestra configuración en un archivo llamado hardware.conf en la carpeta ya


creada “conf.d”
ECUAREFILLS

6.Procedemos a nuestra base de datos en la cual vamos a ejecutar el comando “select


pg_reload_conf()” en donde nos va a decir si ya se optimizó arrojando un valor “true”.

 Creación de usuario y limitación de acceso


ECUAREFILLS

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

Es un marco que le ayuda a diseñar sitios web de forma más


BOOTSTRAP
rápida y sencilla.
Es una biblioteca multiplataforma de JavaScript, creada
JQUERY
inicialmente por John Resig

10. Conclusiones y recomendaciones

Este proyecto ECUAREFILLS que hemos realizado ha contribuido de manera muy


importante a la misma empresa “ECUAREFILLS” para realizar campañas publicitarias sobre
los productos que dispone, y administrando cada campaña que se ha realizado en otros
medios, logrando alcanzar de manera visual la atención de varios usuarios y promoviendo su
inquietud hacia los productos disponibles para que se contacte con la empresa.
Para mejorar en ámbito económico de una empresa hay que realizar un CRM de acuerdo a los
requerimientos que pide cierta empresa y así poder alcanzar las metas que quiere lograr, en
este caso nosotros quisimos que nuestra empresa pueda hacer sus campañas publicitarias de
productos al público, pueda conectarse con nosotros sobre cualquier inquietud que desea,
igualmente hicimos que la empresa pueda administrar cada campaña realizada y también lo
pueda publicar como avisos de nuestras publicaciones al usuario visitante.

11. Aprobaciones

Declaran que se autorizan/aceptan todos los términos y condiciones que se especifican en


el presente documento, y que éste es el actualizado, que cualquier propuesta o
comunicación anterior relacionada a este contrato será nula.

Aprobado por Rol/Cargo Fecha Firmas


Diego Yanez Tutor / Docente 31/08/2021
ECUAREFILLS

31/08/2021

Odalis Rea Estudiante

31/08/2021
Maria Jose Oretga Estudiante

31/08/2021
Jenny Sinchiguano Estudiante

31/08/2021
Josselin Quishpe Estudiante

12. Bibliografía

● (N.d.). Cyberclick.Es. Retrieved August 31, 2021, from


https://www.cyberclick.es/numerical-blog/los-8-formatos-de-publicidad-digital-que-no-
has-de-perder-de-vista.

● (N.d.-b). Esic.Edu. Retrieved August 31, 2021, from


https://www.esic.edu/rethink/marketing-y-comunicacion/como-crear-campanas-digitales-
que-evitar-y-que-no-puede-faltar

● (N.d.-c). Merca20.Com. Retrieved August 31, 2021, from


https://www.merca20.com/10-elementos-del-diseno-fundamentales-en-la-publicidad/

● (N.d.-d). Antevenio.Com. Retrieved August 31, 2021, from


https://www.antevenio.com/blog/2015/12/7-tipos-publicidad-online/

● (N.d.-d). Inboundcycle.Com. Retrieved August 31, 2021, from


https://www.inboundcycle.com/diccionario-marketing-online/publicidad-internet
ECUAREFILLS

● (N.d.-d). Hubspot.Es. Retrieved August 31, 2021, from


https://blog.hubspot.es/marketing/elementos-diseno-grafico

13. Anexos (Incluir todos los anexos que se crean necesarios).


Anexo 1: Modelo de la base de datos

Anexo 2: La base de datos del proyecto integrador


ECUAREFILLS

Anexo 3: Diagrama de Casos de uso

También podría gustarte