universidad viña del mar - Repositorio UVM

150
UNIVERSIDAD VIÑA DEL MAR INGENIERÍA EN CONSTRUCCIÓN RÉGIMEN DIURNO ESCUELA DE INGENIERÍA Y NEGOCIOS DESARROLLO DE UNA APLICACIÓN WEB QUE APOYE EL PROCESO DE CONFECCIÓN DE LOS DOCUMENTOS TÉCNICOS Y ECONÓMICOS PARA PROGRAMA DE AUTOCONSTRUCCIÓN COLABORATIVA DE LA ONG VIVIENDA LOCAL Estudiante: Victor Molina Vera Guía y Contraparte: ONG Vivienda Local Sebastián Becerra Olivares (Presidente) Camilo Cajigal Amador (Secretario) Profesor Guía: Rodrigo Moreno Luco Año de Ingreso Carrera: 2014 Viña del Mar Segundo semestre, 2020

Transcript of universidad viña del mar - Repositorio UVM

UNIVERSIDAD VIÑA DEL MAR

INGENIERÍA EN CONSTRUCCIÓN RÉGIMEN DIURNO

ESCUELA DE INGENIERÍA Y NEGOCIOS

DESARROLLO DE UNA APLICACIÓN WEB QUE APOYE EL PROCESO DE

CONFECCIÓN DE LOS DOCUMENTOS TÉCNICOS Y ECONÓMICOS PARA

PROGRAMA DE AUTOCONSTRUCCIÓN COLABORATIVA DE LA ONG

VIVIENDA LOCAL

Estudiante: Victor Molina Vera

Guía y Contraparte: ONG Vivienda Local

Sebastián Becerra Olivares (Presidente)

Camilo Cajigal Amador (Secretario)

Profesor Guía: Rodrigo Moreno Luco

Año de Ingreso Carrera: 2014

Viña del Mar

Segundo semestre, 2020

Dedicatoria

Dedicado a mi familia que siempre

confiaron en mí. A mis padres que me han

apoyado en cada una de las decisiones

que he tomado y estoy profundamente

agradecido. Siempre al pendiente cuando

los necesite, brindándome las

herramientas y oportunidades para que me

pudiera desenvolverme en la vida.

A todos, simplemente gracias…

Tabla de contenidos

CAPÍTULO I: REVISIÓN BIBLIOGRÁFICA

1.1 PROGRAMA DE AUTOCONSTRUCCIÓN COLABORATIVA .................................................. 1

1.1.1 Etapas del programa ......................................................................................... 1

1.1.2 Documentos para las etapas técnico legal y plan de construcción .................. 2

1.2 GOOGLE G-SUITE ...................................................................................................... 10

1.2.1 Qué es Google ................................................................................................ 10

1.2.2 Qué es G-suite ................................................................................................ 10

1.2.3 Google Drive ................................................................................................... 11

1.2.4 Google Sheets ................................................................................................. 12

1.2.5 Google Apps Script ......................................................................................... 16

CAPÍTULO II: DETALLES DE LA SOLUCIÓN

2.1 DESCRIPCIÓN GENERAL DE LA SOLUCIÓN ................................................................... 17

2.2 ARQUITECTURA DEL SISTEMA .................................................................................... 17

2.2.1 Arquitectura lógica........................................................................................... 17

2.2.3 Arquitectura física............................................................................................ 18

2.4 HERRAMIENTAS DE DESARROLLO ............................................................................... 19

2.4.1 Herramientas de modelado y diseño de sistema ............................................ 19

2.4.2 Lenguajes de programación ............................................................................ 19

2.4.3 Motor de base de datos .................................................................................. 19

CAPÍTULO III: DESARROLLO DE LA BASE DE DATOS

3.1 IDENTIFICACIÓN DE REQUERIMIENTOS ......................................................................... 20

3.2 SOLUCIÓN A LOS REQUERIMIENTOS ............................................................................ 21

3.2.1 Identificación de las tablas requeridas para la base de datos ........................ 21

3.2.2 Identificación de los campos para cada tabla ................................................. 22

3.2.3 Identificación de la llave primaria y foránea de cada tabla ............................. 30

3.2.4 Identificación de las relaciones entre cada tabla ............................................ 31

3.3 CREACIÓN DE LA BASE DE DATOS .............................................................................. 31

3.4 CREACIÓN DE TABLAS PARA BASE DE DATOS ............................................................. 33

3.4.1 Creación de hojas en documento Google Sheets .......................................... 33

3.4.2 Configuración de las hojas para uso como tablas de datos ........................... 34

3.4.3 Sistema de generación de identificadores (ID) ............................................... 38

3.5 PERMISOS DE ACCESO A LA BASE DE DATOS .............................................................. 39

3.5.1 Tipos de permisos y privilegios ....................................................................... 39

3.5.2 Qué tipo de permiso asignar a cada usuario .................................................. 41

3.5.3 Asignación de permisos de acceso................................................................. 42

3.5.3 Configuración de privilegios globales.............................................................. 48

3.5.4 Modificación de permisos de usuario .............................................................. 49

CAPÍTULO IV: DESARROLLO Y USO DE LA INTERFAZ WEB

4.1 IDENTIFICACIÓN DE LOS REQUERIMIENTOS .................................................................. 51

4.2 DESCRIPCIÓN DE LA SOLUCIÓN .................................................................................. 51

4.2.1 Capa de presentación ..................................................................................... 52

4.2.2 Capa de lógica de negocio .............................................................................. 53

4.2.3 Capa de datos ................................................................................................. 54

4.3 SERVIDOR ................................................................................................................. 55

4.3.1 Creación del servidor ...................................................................................... 55

4.3.2 Publicación y ejecución del servidor ............................................................... 57

4.3.3 Acceder a la interfaz web ................................................................................ 60

4.3.4 Autorización al usar la interfaz web por primera vez ...................................... 62

4.4 IMPLEMENTACIÓN DEL CÓDIGO FUENTE DE LA INTERFAZ WEB ...................................... 64

4.4.1 Creación de archivos ...................................................................................... 64

4.4.2 implementación del código fuente de la capa de presentación ...................... 66

4.4.3 implementación código fuente de la capa lógica de negocio ......................... 69

4.5 USO DE LA INTERFAZ WEB ......................................................................................... 70

4.5.1 Vista general ................................................................................................... 70

4.5.2 Uso del menú .................................................................................................. 71

4.5.3 Uso de formularios para añadir registros a la base de datos ......................... 72

4.5.4 Uso de formularios para modificar o eliminar registros de la base de datos .. 81

CAPÍTULO V: DESARROLLO Y USO DE LA APLICACIÓN WEB

5.1 IDENTIFICACIÓN DE LOS REQUERIMIENTOS .................................................................. 96

5.2 DESCRIPCIÓN DE LA SOLUCIÓN .................................................................................. 96

5.2.1 Capa de presentación ..................................................................................... 97

4.2.2 Lógica de negocio ........................................................................................... 98

4.2.3 Capa de datos ................................................................................................. 99

5.3 CREACIÓN DE LA APLICACIÓN WEB ............................................................................. 99

5.3.1 Creación del documento Google Sheets ........................................................ 99

5.3.2 Creación de hojas en el documento Google Sheets ..................................... 101

5.3.3 Configuración y preparación de las hojas del documento Google Sheets ... 101

5.3.4 Compartir documento Google Sheets ........................................................... 105

5.4 IMPLEMENTACIÓN DEL CÓDIGO FUENTE DE LA APLICACIÓN WEB ................................ 112

5.4.1 Implementación del editor de secuencias de comandos .............................. 112

5.4.2 Creación de archivos .................................................................................. 113

5.4.3 implementación del código fuente de la capa de presentación .................... 115

5.4.4 implementación del código fuente de la lógica de negocio .......................... 116

5.5 USO DE LA APLICACIÓN WEB .................................................................................... 118

5.5.1 Datos de proyectos ....................................................................................... 118

5.5.2 Uso de la consola .......................................................................................... 119

CONCLUSIONES ................................................................................................................. 130

BIBLIOGRAFÍAS .................................................................................................................. 131

Tabla de figuras

Figura 1: Programa de Autoconstrucción Colaborativa. ........................................................ 11

Figura 2: Proceso de reconstrucción, Santa Olga, VII Región, en conjunto con SERVIU

Talca. ....................................................................................................................................... 12

Figura 3: Curso de formación general UVM. .......................................................................... 12

Figura 4: Arquitectura lógica del proyecto. ............................................................................. 18

Figura 5: Arquitectura física del proyecto. .............................................................................. 18

Figura 6: Identificación de tablas de datos. ............................................................................ 21

Figura 7: Tabla CGP. .............................................................................................................. 22

Figura 8: Tabla CSP. ............................................................................................................... 23

Figura 9: Tabla Partidas. ......................................................................................................... 26

Figura 10: Tabla CGR. ............................................................................................................ 27

Figura 11: Tabla CSR. ............................................................................................................ 28

Figura 12: Tabla Recursos. ..................................................................................................... 30

Figura 13: Identificación de las llaves primaria y foránea de la tabla Partidas. ...................... 30

Figura 14: Modelo relacional de la base de datos. ................................................................. 31

Figura 15: Ingreso al entorno de trabajo Google Drive. .......................................................... 32

Figura 16: Creación documento Google Sheets en entorno de trabajo Google Drive. .......... 32

Figura 17: Creación documento Google Sheets en blanco. ................................................... 33

Figura 18: Creación de hojas en el documento. ..................................................................... 33

Figura 19: Posicionamiento de hojas creadas. ....................................................................... 34

Figura 20: Modificación de nombre de las hojas del documento. .......................................... 35

Figura 21: Pestaña de buscador de hojas del documento. .................................................... 35

Figura 22: Límite máximo de celdas por hoja. ........................................................................ 36

Figura 23: Fórmula para calcular el total de celdas por hoja. ................................................. 36

Figura 24: : Fórmula para calcular el número máximo de filas por hoja. ................................ 37

Figura 25: Gráfico de número de filas frente al número de columnas. ................................... 37

Figura 26: Contador de registros para la generación de ID. ................................................... 38

Figura 27: Diagrama de permisos en documentos Google Sheets. ....................................... 40

Figura 28: Tipos de privilegios de acceso. .............................................................................. 41

Figura 29: Ventana “Compartir” para administrar permisos y privilegios. .............................. 42

Figura 30: Secciones de la ventana de administración de permisos y privilegios.................. 42

Figura 31: Asignar permiso de colaborador ............................................................................ 43

Figura 32: Asignar privilegio al permiso de colaborador. ........................................................ 44

Figura 33: Posicionamiento de los usuarios con permiso de colaborador. ............................ 44

Figura 34: Asignación de los permisos de invitado. ............................................................... 45

Figura 35: Configuración del permiso de invitado. ................................................................. 46

Figura 36: Asignación de privilegios al permiso de invitado. .................................................. 46

Figura 37: Conseguir url mediante navegador web. ............................................................... 47

Figura 38: Conseguir url mediante la ventana “Compartir”. .................................................... 47

Figura 39: Configuración de los privilegios globales. ............................................................. 48

Figura 40: Privilegios globales. ............................................................................................... 49

Figura 41: Modificación de privilegios del permiso de colaborador. ....................................... 50

Figura 42: Modificación de privilegios del permiso de invitado............................................... 50

Figura 43: Estructura capa de presentación. .......................................................................... 52

Figura 44: Formularios de la capa de presentación. .............................................................. 53

Figura 45: Esquema de comunicación entre los formularios y los métodos. ......................... 54

Figura 46: Esquema de comunicación entre los métodos y la base de datos. ...................... 55

Figura 47: Ingreso al entorno de trabajo Google Drive. .......................................................... 55

Figura 48: Creación documento Google Sheets en entorno de trabajo Google Drive. .......... 56

Figura 49: Creación documento Google Apps Script. ............................................................ 56

Figura 50: abrir ventana para ejecutar documento Google Apps Script como servidor web. 57

Figura 51: Implementar documento Google Apps Script como servidor web. ....................... 57

Figura 52: abrir ventana “Implementar como aplicación web”. ............................................... 60

Figura 53: Obtener dirección URL para abrir la interfaz web. ................................................ 61

Figura 54: Revisión de permisos. ........................................................................................... 62

Figura 55: Seleccionar sesión con la que se desea autorizar. ............................................... 62

Figura 56: Abrir configuraciones avanzadas........................................................................... 63

Figura 57: Ir a los permisos de la interfaz web. ...................................................................... 63

Figura 58: Autorizar permisos de acceso a la interfaz web. ................................................... 64

Figura 59: Creación de archivo HTML. ................................................................................... 65

Figura 60: Creación de archivo de secuencia de comandos (gs). ......................................... 66

Figura 61: Interfaz web con resolución mayor a 900 pixeles de ancho. ................................. 70

Figura 62: Interfaz web con resolución menor a 900 pixeles de ancho. ................................ 71

Figura 63: Buscador de formularios. ....................................................................................... 71

Figura 64: Estructura de funcionamiento del buscador. ......................................................... 72

Figura 65: Formulario para añadir registros en la tabla “CGP”. .............................................. 73

Figura 66: Formulario para añadir registros en la tabla “CSP”. .............................................. 74

Figura 67: Formulario para añadir registros en la tabla “Partidas”. ........................................ 75

Figura 68: Formulario para añadir registros en la tabla “CGR”. ............................................. 78

Figura 69: Formulario para añadir registros en la tabla “CSR”. .............................................. 79

Figura 70: Formulario para añadir registros en la tabla “Recursos”. ...................................... 80

Figura 71: Formulario para seleccionar el registro en la tabla “CGP” que se desea modificar.

................................................................................................................................................ 81

Figura 72: Formulario para modificar o eliminar registros de la tabla “CGP”. ........................ 82

Figura 73: Formulario para seleccionar el registro en la tabla “CSP” que se desea modificar.

................................................................................................................................................ 83

Figura 74: Formulario para modificar o eliminar registros de la tabla “CSP”. ......................... 84

Figura 75: Formulario para seleccionar el registro en la tabla “Partidas” que se desea

modificar. ................................................................................................................................. 85

Figura 76: Formulario para modificar o eliminar registros de la tabla “Partidas”. ................... 86

Figura 77: Formulario para seleccionar el registro en la tabla “CGR” que se desea modificar.

................................................................................................................................................ 89

Figura 78: Formulario para modificar o eliminar registros de la tabla “CGR”. ....................... 90

Figura 79: Formulario para seleccionar el registro en la tabla “CSR” que se desea modificar.

................................................................................................................................................ 91

Figura 80: Formulario para modificar o eliminar registros de la tabla “CSR”. ........................ 92

Figura 81: Formulario para seleccionar el registro en la tabla “Recursos” que se desea

modificar. ................................................................................................................................. 93

Figura 82: Formulario para modificar o eliminar registros de la tabla “Recursos”. ................ 94

Figura 83: Arquitectura lógica de la aplicación web. ............................................................. 97

Figura 84: Estructura capa de presentación de la aplicación web. ........................................ 97

Figura 85: Estructura lógica de negocio de la aplicación web. ............................................... 98

Figura 86: URL entorno de trabajo Google Drive ................................................................... 99

Figura 87: Creación documento Google Sheets en entorno de trabajo Google Sheets. ..... 100

Figura 88: Creación de documento Google Sheets. ............................................................. 100

Figura 89: Creación de hojas en documento Google Sheets. .............................................. 101

Figura 90: Cambio de nombre de las hojas del documento Google Sheets ........................ 102

Figura 91: Nombre de hojas para la aplicación web. ............................................................ 103

Figura 92: Estructura sección “Datos de proyecto”. ............................................................. 103

Figura 93: Estructura sección “Consola”. .............................................................................. 104

Figura 94: Estructura sección “Tabla de datos”. ................................................................... 104

Figura 95: Estructura para la hoja “DATA”. ........................................................................... 105

Figura 96: Realizar copia al documento Google Sheets. ..................................................... 106

Figura 97: Configurar copia realizada al documento Google Sheets. .................................. 106

Figura 98: Abrir ventana “Compartir”. ................................................................................... 107

Figura 99: Añadir usuarios al documento Google Sheets copiado. ..................................... 107

Figura 100: Asignar privilegios a los usuarios añadidos al documento Google Sheets

copiado. ................................................................................................................................. 108

Figura 101: Posicionamiento de los usuarios añadidos al documento Google Sheets. ....... 109

Figura 102: Abrir ventana “Compartir”. ................................................................................. 109

Figura 103: Configurar los privilegios para acceder al documento mediante URL. ............. 110

Figura 104: Configurar acceso al documento Google Sheets mediante URL. ..................... 111

Figura 105: Asignar privilegios al permiso de acceso mediante URL. ................................. 111

Figura 106: Conseguir url mediante navegador web. ........................................................... 112

Figura 107: Conseguir url mediante ventana “Compartir”. ................................................... 112

Figura 108: Implementar documento Google Apps Script al documento Google Sheets. ... 113

Figura 109: Creación de archivo HTML. ............................................................................... 114

Figura 110: Creación de archivo de secuencia de comandos (gs)....................................... 115

Figura 111: Sección “Datos del proyecto”. ............................................................................ 118

Figura 112: Conexión entra la aplicación web con la base de datos. .................................. 120

Figura 113: Seleccionar el formulario “Añadir partidas” de la consola. ................................ 120

Figura 114: Seleccionar acción en formulario “Añadir partidas”. .......................................... 121

Figura 115: Importar partida mediante el formulario “Añadir partida” ................................... 121

Figura 116: Seleccionar partida que se desea eliminar del proyecto. .................................. 122

Figura 117: Eliminar partida del proyecto. ............................................................................ 123

Figura 118: Seleccionar el formulario “Cubicaciones” de la consola. ................................... 124

Figura 119: Seleccionar la partida a la cual se le quiere añadir su cubicación. ................... 124

Figura 120: Añadir cubicación. ............................................................................................. 124

Figura 121: Seleccionar el formulario “Ordenar” de la consola. ........................................... 125

Figura 122: Ordenar “tabla de datos”. ................................................................................... 126

Figura 123: Seleccionar el formulario “Crear documentos” de la consola. ........................... 127

Figura 124: Creación de documento técnicos y económicos. .............................................. 127

Resumen

El presente documento describe el desarrollo de una aplicación web que apoya el proceso de

la confección de los documento técnicos y económicos para el Programa de Autoconstrucción

Colaborativa y de reconstrucción de la ONG Vivienda Local.

La idea del sistema propuesto es que, mediante la centralización de la información, se permita

confeccionar cada uno de los documentos técnicos y económicos del Programa de

Autoconstrucción Colaborativa, a partir de la información almacenada en la base de datos

desde cualquier dispositivo con acceso a internet.

Introducción

La ONG Vivienda Local se dedica actualmente a democratizar la arquitectura y a disminuir la

precariedad en los procesos de autoconstrucción en Chile, acompañando a las familias y

personas de sectores medios o vulnerables que lo necesiten.

Para poder cumplir con estos objetivos, la ONG Vivienda Local cuenta con las siguientes

líneas de trabajo:

• Programa de Autoconstrucción Colaborativa: Es una metodología de trabajo

donde las familias o personas pueden emprender la autoconstrucción de su vivienda

de forma segura y transparente, asesorado y acompañado durante todo el proceso

por el equipo de profesionales de la ONG.

Figura 1: Programa de Autoconstrucción Colaborativa.

• Proyectos de Reconstrucción: A raíz de las catástrofe del incendio de Valparaíso

en el año 2013 y el descontento generalizado que iba en aumento por parte de la

ciudadanía porteña, que exigía soluciones y el auxilio del gobierno de manera rápida

y eficaz; el MINVU, en conjunto con el gobierno de turno, tomaron cartas en el asunto

y se comenzó a hacer entrega de soluciones habitacionales a través de viviendas tipo,

las cuales no respondían a las necesidades y requerimientos de cada una de las

familias, producto de lo cual se abre la posibilidad de trabajar bajo esta nueva

metodología: La Reconstrucción Asistida. De esta manera se da inicio a una nueva

forma de abordar la construcción social en Chile, en donde las familias y pobladores

se involucran directamente en los procesos de reconstrucción.

Figura 2: Proceso de reconstrucción, Santa Olga, VII Región, en conjunto con

SERVIU Talca.

• Talleres y cursos de autoconstrucción: Durante el año 2018 se le presenta la

oportunidad a la ONG Vivienda Local de desarrollar un curso de construcción y

vivienda en la Universidad de Viña del Mar. A través de esta asignatura, el equipo de

la ONG busca difundir los conocimientos vinculados a la autoconstrucción

colaborativa, sus etapas y beneficios. Además, propone a los alumnos ver la vivienda

como algo más que solo una agrupación de espacios, sino como un conjunto de

lugares que dialogan entre sí en función de las actividades, es decir, entrega

herramientas para reconocer, concebir y/o transformar espacios en lugares.

Figura 3: Curso de formación general UVM.

Si bien la ONG Vivienda Local cuenta con tres diferentes líneas de trabajo, su problema

principal se encuentra en la confección de los diversos documentos técnicos y económicos

para el Programa de Autoconstrucción Colaborativa y de reconstrucción.

Lo anterior surge, debido a que la ONG Vivienda Local no cuenta con un sistema que logre

centralizar de manera eficiente toda la información que genera y que requiere para

confeccionar los diversos documentos del Programa de Autoconstrucción Colaborativa y de

reconstrucción. Además, otro de los problemas que se logra identificar, es que no se cuenta

con un sistema que establezca y permita generar los diversos documentos técnicos y

económicos de manera rápida y sencilla.

Objetivos del proyecto

Se describe el objetivo general y los objetivos específicos del proyecto para evidenciar una

finalidad y enfoque a la solución propuesta.

Objetivo General

Desarrollar una aplicación web que permita a la ONG Vivienda Local generar los documentos

técnicos y económicos requeridos por su Programa de Autoconstrucción Colaborativa,

mediante el uso de una base de datos que centralice la información, permitiendo acceder a

esta desde cualquier dispositivo con acceso a internet.

Objetivos específicos

• Desarrollar una base de datos que almacene la información haciendo uso de un

documento Google Sheets como motor de base de datos.

• Desarrollar una interfaz web que se encargue de gestionar y administrar la base de

datos mediante el uso de un documento Google Apps Script.

• Desarrollar una aplicación web que se encargue de generar los documentos técnicos

y económicos requeridos por el Programa de Autoconstrucción Colaborativa mediante

el uso de un documento Google Sheets.

Metodología de trabajo

Gran parte de los antecedentes que se requieren para el desarrollo del presente documento,

se recopilaron gracias a los trabajos previo que se realizaron con la ONG Vivienda local en el

marco de las prácticas de la carrera de Ingeniería en construcción, por ende, todas las

propuestas generadas para solventar las problemáticas de la ONG Vivienda Local surgen

desde la experiencia obtenida de las labores anteriormente realizadas.

Para desarrollar la solución propuesta a la ONG, se debió recopilar información a través de

diversos sitios web, que abarcaran los distintos conceptos del desarrollo web, bases de datos,

etc.

Por último, una vez comenzado el desarrollo de la propuesta, se realizaron diversas reuniones

de manera regular con el directorio de la ONG. De esta forma se obtuvo la retroalimentación

necesaria para mejorar el desarrollo del sistema propuesto.

Capítulo I: Revisión bibliográfica

1

1.1 Programa de Autoconstrucción Colaborativa

Es una metodología de trabajo donde puedes emprender una construcción de forma segura y

transparente, asesorado y acompañado durante todo el proceso por un equipo de

profesionales. Serás protagonista de un proceso en el cual se involucran diferentes actores,

permitiendo en conjunto lograr una vivienda de calidad, más adecuada a tus necesidades y

bolsillo.

1.1.1 Etapas del programa

• Diseño Colaborativo: En esta etapa se comienza con un trabajo personalizado

donde se recogen todas las ideas y requerimiento que pueda tener cada una de las

familias, de este modo el arquitecto elabora un diseño a la medida de cada una de las

familias.

• Carpeta Técnico Legal: Una vez se tenga claro las ideas y necesidades de cada una

de las familias, se comienza a elaborar los planos, especificaciones técnicas y toda la

documentación requerida para que cada uno de los proyectos cumpla con todas la

leyes y normativas vigentes.

• Plan de Construcción: Para esta etapa se debe confeccionar el presupuesto, listas

de compra y métodos constructivos de lo proyectado anteriormente, de esta forma

cada familia tendrá las herramientas suficientes para supervisar y administrar de la

forma más segura posible.

• Ejecución del Proyecto: Por último, una vez se comiencen a ejecutar las obras de

construcción, se le realiza un acompañamiento en todo el proceso, resolviendo dudas

y visitando al menos 5 veces la obra.

2

1.1.2 Documentos para las etapas técnico legal y plan de construcción

Especificaciones técnicas

Son los documentos complementarios de los planos, que indican la forma de ejecución, la

calidad y ubicación de los diversos materiales, elementos e instalaciones que integran una

obra.

Las Especificaciones Técnicas pueden dividirse en Generales y Específicas.

Especificaciones Técnicas Generales

Las Especificaciones Técnicas Generales definen los grandes rubros de la obra, detallando la

forma como se ha previsto su ejecución.

Los grandes temas tratados en las Especificaciones Técnicas Generales son:

• Trabajos preliminares como, por ejemplo: Implementación del campamento de obras,

Señalización de la obra; Limpieza y desbroce del área de trabajo; Replanteo de las

estructuras; etc.

• Movimientos de tierra, como: Excavaciones, mecánicas o manuales; Rellenos con o

sin compactación, con materiales seleccionados o no; Perfilado de taludes, etc.

• Hormigones, ya sea armado o no, aquí se define, para cada caso, la calidad de los

agregados finos, medianos y gruesos; El tipo de cemento que se requiere usar,

algunas veces se especifica también su origen; La calidad del agua a ser usada, y los

tratamientos que se le deberán dar a los diversos tipos de hormigón. Se definen los

tipos de encofrado a ser utilizados, las tolerancias aceptables en cuanto a la

localización de la estructura y a sus medidas. Se define el tipo y calidad del acero para

las armaduras.

• Normativas de seguridad industrial.

• Normas de protección ambiental.

3

• Tuberías y dispositivos hidráulicos.

Y muchos otros ítems en función de la obra de que se trate. En general las Especificaciones

Técnicas hacen referencia a :

• Especificaciones nacionales oficiales de cada país;

• Manual de Normas ASTM (American Society for Testing and Materials)

• Manual de Normas ACI (American Concrete Institute); y,

Dependiendo del tipo de obra hacen referencia también a:

• Manual de Normas AASHTO (American Association of State Highway and

Transportation Officials)

• Manual de Normas AISC (American Institute of Steel Construction)

• Standard Specifications for Construction of Roads and Bridges on Federal Highway

Projects del Departamento de Transportes de los E.U.A.

• Manuales y normas propias de cada país en particular (IRAM; DOCS, NCH, etc).

Especificaciones Técnicas Específica

Generalmente las Especificaciones Técnicas particulares completan y detallan las

Especificaciones Técnicas Generales y cubren, como mínimo, los siguientes ítems:

• Definición. Donde se describe en forma concisa a que ítem de la obra o estructura se

refiere. Por ejemplo: Provisión de grava para la colocación de una base de infiltración

o percolación en la cámara de secado de lodos.

• Materiales y herramientas, utilizados para ejecutar la tarea específica. Por ejemplo:

La grava deberá ser absolutamente limpia y de grano duro y sólido, sin impurezas, sin

disgregaciones, ni rajaduras.

4

• Procedimiento de ejecución, donde se describe la forma en que debe ejecutarse este

rubro de la obra.

• Medición, donde se describe con precisión cómo se efectuará la medición de este

rubro, una vez ejecutado para proceder al pago correspondiente. Por ejemplo: Este

ítem será medido por metro cúbico de grava colocada efectivamente.

• Forma de pago, donde se detalla cómo será pagado y que se comprende exactamente

en dicho pago. Por ejemplo: Será cancelado terminado y a satisfacción del Supervisor

de obra. Los precios serán los establecidos en el contrato que representan una

compensación total por concepto de mano de obra, materiales, herramientas, equipo

e imprevistos.

Presupuesto de construcción

Existen varios conceptos sobre el término de presupuesto entre los cuales podemos decir que

un presupuesto es un resumen sistemático de las previsiones de los gastos proyectados y de

las estimaciones de los ingresos previstos para cubrir dichos gastos.

Otro concepto es el cual define dicho término como “Un estado cuantitativo formal de los

recursos asignados para las actividades proyectadas para plazos de tiempo estipulados”

Al analizar los diferentes conceptos enunciados anteriormente se puede definir el presupuesto

como una herramienta administrativa y financiera en la cual se detalla en forma numérica los

ingresos y egresos de una organización para cumplir con las actividades proyectadas en un

período de tiempo específico.

El presupuesto de construcción tiene por objeto determinar el costo, en forma anticipada, de

una obra por construirse. Lleva por lo tanto involucrado en su definición misma el concepto de

error.

Toda estimación de valores está basada en experiencias anteriores de la persona que hace

el cálculo, en una buena información que posee. Estas estimaciones de valores van desde

una valoración rápida hasta el presupuesto detallado de una obra que se ha dividido en

5

diversas actividades que la constituyen, se ha cubicado y actualizado el costo de cada una de

ellas, obteniendo el presupuesto por sumatoria.

Métodos para Elaborar un Presupuesto

Se analizarán dos métodos para la confección de presupuesto: Por analogía y por análisis de

costo.

Por Analogía

Este método se basa fundamentalmente en el principio de dos obras similares en su función

y en sus características técnicas tienen un costo proporcional a su magnitud y tendrán un

mismo valor por unidad de edificación o por una unidad que dé su magnitud funcional. Como

ejemplo de estas unidades podemos mencionar: en edificios: el m2 de superficie de cubierta

o el m3 de volumen edificado; en colegios; puede ser el número de alumnos, en hoteles u

hospitales: el número de camas, etc.

Este sistema debe ser tomado como un criterio riguroso, así, dos escuelas tendrán un valor

similar, si sus magnitudes funcionales son similares, y podrán aplicarse proporcionalidades.

Otra gran ventaja que tiene este sistema cuando conocemos la incidencia de cada partida en

el total del presupuesto, es el permitir al proyectista centrar sus esfuerzos para obtener la

mejor y más económica solución, en aquellas partidas cuya incidencia es mayor.

Es conveniente tener presente que estos porcentajes de incidencia cambian con el tiempo,

con la región, con los fletes, etc. Y el método en general es de relativa exactitud.

Si bien es cierto, este no es un método que arroje certeza en el valor, es importante maximizar

el grado de ésta. A través de la generación de un documento de apoyo que se elabore

sistemáticamente en cada ejecución de presupuesto (por analogía y por análisis de costo).

Por Análisis de Costos

En todos aquellos casos que la precisión del presupuesto es fundamental, es decir, en

aquellos en que un error por defecto puede acarrear pérdidas para la empresa u organismo

6

constructor y que un error por exceso puede significar la pérdida de un trabajo o su no

ejecución, es necesario recurrir al presupuesto llamado “por análisis de precio unitario” .

En el método unitario o por análisis de precios unitario, ya no se estudia valores globales, sino

que la obra se debe dividir en actividades, operaciones o partidas del presupuesto, en que

cada una de ellas es una parte de obra total y es a la vez una obra en sí misma, con una

relativa independencia de las demás y, además de cubicar, es decir, medimos la magnitud de

cada operación. En otras palabras, ya no se mide el m2 de superficie cubierta, sino que ahora

se mide el número de m3 de excavaciones, m2 moldaje, m3 de hormigón, etc. Y una vez

obtenida esta cubicación se calcula la cantidad de materiales que entra en cada una de ellas,

y la obra de mano que consumirá su realización.

Composición de un Presupuesto Mediante el Método Unitario

Cubicaciones

Las cubicaciones son la forma con la que se logra determinar las cantidades de obra de cada

una de las partidas, asociadas a su unidad física correspondiente, estas unidades son:

• Metro lineal (ml). En esta unidad encontramos las cantidades de obra que son

representadas por unidad de longitud, estas cantidades corresponden a:

guardapolvos, cornisas, junquillos, soleras, etc.

• Metro cuadrado (m2). En esta unidad es de superficie, y en esta representamos las

siguientes cantidades de obra: pavimentos, revestimientos de muros, albañilerías,

estucos, pinturas etc.

• Metro cúbico (m3). Aquí se representan las cantidades volumétricas tales como:

excavaciones, hormigones, rellenos, etc.

• Kilogramo (Kg). Unidad de masa, en que representamos fierro de construcción

(armaduras) y acero estructural (Estructura metálica) para la determinación de estas

cantidades en definitiva lo que se hace es determinar su volumen geométrico, y

multiplicarlo por la densidad del material, pero para simplificar este cálculo utilizamos

7

tablas de conversión que se encuentran disponibles en los catálogos de los

fabricantes.

• Unidad (Un). Esta unidad se asigna a los elementos idénticos que para cuantificarlos

basta con contarlos. Tales como: Artefactos Sanitarios, Jaboneras, Puertas. Etc.

• Global (Gl). Esta unidad siempre va acompañada de un número 1 como cubicación,

y se utiliza para la determinación de una cantidad de obra que tiene muchas unidades

distintas de materiales distintos que lo constituyen, ejemplos: Instalación de faenas,

Instalaciones Sanitarias, Confección de Algún portón especial, etc. Es importante ser

extremadamente meticuloso en los cálculos de las cubicaciones. Para complementar

la información al respecto se debe tomar como guía la NCh 353.of 2000 de

cubicaciones.

Costos directos

Los costos directos son todos los gastos que están directamente relacionados con las obras

de construcción. Los costos directos incluyen todos los costos de los grupos de obras

preliminares, obra gruesa, terminaciones, instalaciones y otros.

Es por esto por lo que para lograr determinar los costos directos de una obra se requiere contar

con cada uno de los precios unitarios mediante el método unitario de cada partida itemizada

y cubicada.

Costos indirectos

También conocidos como “Gastos Generales” Comprenden todos aquellos que no forman

parte del costo directo de cada una de las partidas, pero que deben considerarse en cada

obra, porque, sin duda alguna, forman parte del costo de ésta. Estos gastos se dividen en dos

grandes grupos: Gastos Generales Directos, y Gastos Generales Indirectos.

Gastos generales directos son aquellos gastos generales que tienen relación directa con la

obra propiamente tal. Aquí se debe incluir los siguientes costos de todos los requerimientos

que tenga la obra:

8

• Maquinarias y herramientas. Se recomienda incluir aquí un listado con las

maquinarias y herramientas que se requerirán en la obra, y que se tengan que cargar

en varios costos unitarios, por ejemplo: Esmeriles, Andamios, Vehículo de Obra,

materiales fungibles, Carpas etc.

• Elementos tecnológicos. Dependiendo del requerimiento de la obra aquí debemos

incluir: Computadoras, fax, teléfonos celulares, teléfonos fijos, Impresoras.

• Instalación de faenas. A Veces ésta, se considera dentro del cuerpo del presupuesto

como parte del itemizado. Si no es así, se debe en esta parte del presupuesto analizar

el costo que implica ésta de acuerdo con el requerimiento de la obra.

• Requerimientos de I.T.O. (Inspección Técnica de Obra). En ocasiones la I.T.O.,

solicita vehículo, computadoras, Instalaciones de oficinas especiales, etc.

• Costos Financieros. Aquí se debe calcular el costo de las boletas de garantía, para

esto el banco pedirá los montos de las boletas requeridas y el tiempo de vigencia de

cada una de estas. También se debe evaluar el costo del dinero necesario para el

financiamiento de la obra, es posible que la empresa necesite algún crédito, o que

tenga capital propio. De cualquiera de las dos maneras se deberá evaluar este costo

e involucrarlo en esta parte del presupuesto.

• Seguros. Si en las bases administrativas se solicita algún tipo de seguro, es en esta

etapa en que se debe cotizar. Se recomienda, aunque no se exija en las bases

administrativas considerar un seguro a todo evento por la obra en cuestión. Para esto

la compañía de seguro solicita el costo de la obra, y un avance físico y financiero de

la obra para que sea por un monto progresivo mes a mes.

• Personal. Aquí se considera el personal que se requerirá y que no haya sido cargado

en los costos unitarios, tales como: Profesional residente, Jefe de Obra,

Administrativo, Bodeguero, Capataz, Jornal de patio, Nochero. Etc.

• Viáticos. En esta parte se deberá considerar los costos de arriendo de casa o casas

para el personal afuerino. Si la obra está en una ciudad distinta a la de origen de la

9

empresa se debe considerar los costos de los traslados de la dirección de la empresa,

hoteles, pasajes, etc.

• Otros Gastos. Aquí se debe considerar los artículos de escritorio, papelería,

movilizaciones para los trámites, gastos notariales por finiquitos etc.

Para la evaluación de los gastos generales indirectos es conveniente contar con una

estadística de los montos de facturación anual de la empresa, y por otro lado se debe conocer

el costo del funcionamiento de la empresa, para que se pueda extrapolar la incidencia de la

obra respecto a la proyección de facturación del período en que se realizará, y así determinar

un monto que se pueda cargar a la obra en este ítem, estableciéndose como porcentaje de

los gastos generales directos.

Las utilidades deberán ser fijadas por la unidad directiva de la empresa, pero para la

evaluación de éstas se debe analizar la posición de la empresa en el momento de la propuesta,

o sea, se debe evaluar la cantidad de obras que se tenga en ejecución y, por ende, los flujos

económicos con los que se disponen, ya que podría presentarse que se requiera flujo de

dinero en forma rápida, por lo que se puede determinar un margen mínimo de utilidades para

aumentar las posibilidades de adjudicación. Por otro lado, se debe analizar la complejidad de

la obra, ya que si se trata de una obra muy complicada se deberá aumentar los márgenes de

manera que se tengan los recursos como para enfrentar algún plan de contingencia generado

por la complejidad de ésta. De todas maneras, normalmente, los márgenes de utilidad

deberían oscilar entre un 5% y un 15% del costo directo.

Análisis de precio unitario

El Análisis de precio unitario, en palabras simples es el desglose que debe hacerse al precio

unitario de cada partida de un presupuesto (por la unidad de Obra), donde se debe

descomponer el precio unitario en tres áreas principales:

• Materiales. Primero se debe desglosar todos los materiales que componen o entran

en la partida por unidad de obra, al cual adicionalmente se le debe agregar las

pérdidas de aquellos materiales.

10

• Mano de Obra. La Mano de Obra (Maestros, Ayudantes, Jornales u otra especialidad)

que se utiliza para ejecutar esa unidad de obra, incluye también en renglón aparte el

porcentaje de Leyes Sociales que es de un 29% del costo unitario de la mano de obra.

• Maquinarias y equipos. Este ítem hace referencia al costo de las herramientas y

arriendos de equipos (andamios, maquinarias, equipos, entre otros) que se utilizan

para poder ejecutar la partida por unidad de obra.

1.2 Google G-suite

1.2.1 Qué es Google

La multinacional Google Inc. es una empresa radicada en los Estados Unidos de América

dedicada a la rama de productos, servicios y aplicaciones enfocadas al uso del Internet, como

también a aplicaciones o software de muchos dispositivos electrónicos y un gran sin número

de tecnologías. El producto con el cual lo ha llevado al liderazgo y ser conocido en el mundo

es su motor de búsqueda relacionado a contenidos en la web, aunque ofrece también servicios

que hoy en día se usan demasiado como Gmail que su servicio de correo electrónico exclusivo

hasta hace poco su propia red Social Google+; también lidera el mercado de productos

desarrollados a sistemas operativos como es el caso del sistema Android que es el más usado

y preferido por los usuarios de smartphones en el mundo.

1.2.2 Qué es G-suite

La G Suite (o Google Suite) es un conjunto de herramientas ofimáticas y empresariales que

Google provee en la nube a empresas para mejorar la productividad de la operación.

El punto de inicio está en que todas las herramientas es la configuración del dominio de la

empresa (@empresa.com) en la plataforma de G Suite. Una vez se realiza la implementación

se abre la posibilidad de utilizar aplicaciones web como:

• Correo electrónico

• Chat

11

• Calendario

• Documentos

• Entre otros.

Al tratarse de un conjunto de herramientas donde la posibilidad de colaborar en tiempo real es

una de sus mayores fortalezas, cada empresa puede añadir usuarios para que accedan a la

suite.

Otra de las características principales es la posibilidad de controlar los accesos de los

usuarios, administrarlos y mantener la información segura en todo momento.

1.2.3 Google Drive

La herramienta tecnológica Google Drive es una aplicación del servicio de Google G-suite que

permite almacenar, compartir archivos y documentos en línea, a su vez posee otros programas

incluidos como procesador de texto, hoja de cálculo, presentaciones, formularios, dibujos,

mapas, etc. Además de proveer al usuario de 15GB de espacio gratuito en el cual se puede

guardar y a su vez compartir archivos con quien se desee.

Google Drive permite realizar las siguientes actividades:

• Convertir y cargar cualquier archivo de Microsoft Office en un documento de Google.

• Interacción en tiempo real, compartiendo y colaborando con otros usuarios de la red

sus documentos, aunque también permite modificarlos.

• Traduce cualquier documento a otro idioma.

• Permite sincronizar archivos con la computadora ordinaria.

• Seguridad en los archivos ya que se guardan automáticamente al instante.

12

• Control de las acciones para los usuarios, es decir, los permisos que otorga el usuario

de la cuenta a otras personas.

Entre las aplicaciones más destacadas de Google Drive se encuentran:

• Documento de Google (Google Docs.), que es el equivalente a Word que nos permite

crear y editar archivos en línea de manera rápida.

• Hojas de cálculo de Google (Google Sheets), son hojas de cálculo equivalentes a su

similar de Excel que permiten la creación de gráficos, cuadros, figuras estadísticas,

fórmulas, etc.

• Presentaciones de Google, parecida a power point sirve para dar presentaciones con

animaciones y efectos a cualquier diapositiva dando una mejor imagen de esta.

• Formularios de Google, sirve para planificar eventos y realizar encuestas de manera

fácil y rápida en línea.

• Dibujos de Google, sirve para realizar todo tipo de dibujo, es parecida al programa

Paint.

• Google My Maps, es una aplicación que permite ver mapas o localizaciones en línea

de cualquier lugar en el que nos encontremos o deseemos investigar.

Todo lo que almacenas en él Apps Google Drive se sincroniza automáticamente en todos los

dispositivos y permite trabajar con o sin conexión a internet. Google recomienda el uso del

navegador Google Chrome para una mejor experiencia con Google Drive.

1.2.4 Google Sheets

Google Sheets es una aplicación gratuita de hoja de cálculo basada en la web que proporciona

Google dentro del servicio Google Drive. La aplicación también está disponible como

aplicación de escritorio en Chrome OS y como aplicación móvil en Android, Windows, iOS y

BlackBerry. El servicio Google Drive también aloja otros productos de Google, como Google

Docs, Slides y Forms.

13

Google Sheets permite a los usuarios editar, organizar y analizar diferentes tipos de

información. Permite colaboraciones y varios usuarios pueden editar y formatear archivos en

tiempo real, y cualquier cambio realizado en la hoja de cálculo se puede rastrear mediante un

historial de revisión.

1.2.4.1 Funciones de Google Sheets

Edición

Una de las características clave de Google Sheets es que permite la edición colaborativa de

hojas de cálculo en tiempo real. En lugar de enviar un documento por correo electrónico a

varias personas, varios usuarios pueden abrir y editar un solo documento simultáneamente.

Los usuarios pueden ver todos los cambios realizados por otros colaboradores y todos los

cambios se guardan automáticamente en los servidores de Google.

Google Sheets también incluye una función de chat en la barra lateral que permite a los

colaboradores discutir las ediciones en tiempo real y hacer recomendaciones sobre ciertos

cambios. Cualquier cambio que hagan los colaboradores se puede rastrear usando la función

Historial de revisiones. Un editor puede revisar las ediciones anteriores y revertir los cambios

no deseados.

Explorar

La función Explorar de Google Sheets se introdujo por primera vez en septiembre de 2016 y

utiliza el aprendizaje automático para brindar funcionalidades adicionales. Esta función

proporciona mucha información basada en los datos agregados a las hojas de cálculos, y

puede actualizarse automáticamente según los datos seleccionados.

Con la función Explorar, los usuarios pueden hacer preguntas, crear gráficos, visualizar datos,

crear tablas dinámicas y formatear la hoja de cálculo con diferentes colores. Por ejemplo, si

está preparando un presupuesto mensual y ha agregado todos los gastos a la hoja de cálculo,

puede usar la función Explorar para obtener el costo de gastos específicos como comida,

viajes, ropa, etc.

En la barra lateral, hay un cuadro donde puede escribir la pregunta y le devolverá la respuesta.

Cuando se desplaza hacia abajo en el panel Explorar, hay una lista de gráficos sugeridos que

14

son representativos de los datos ingresados en la hoja de cálculo, y puede elegir entre una

tabla dinámica, un gráfico circular o un gráfico de barras.

Edición sin conexión

Hojas de cálculo de Google admite la edición sin conexión y los usuarios pueden editar la hoja

de cálculo sin conexión en aplicaciones de escritorio o móviles. En el escritorio, los usuarios

deben usar el navegador Chrome e instalar la extensión de Chrome "Google Docs Offline"

para habilitar la edición sin conexión para Google Sheets y otras aplicaciones de Google. Al

usar un dispositivo móvil, los usuarios deben usar la aplicación móvil Google Sheets para

Android e iOS, que admite la edición sin conexión.

Formatos de archivo compatibles

Hojas de cálculo de Google admite varios formatos y tipos de archivos de hojas de cálculo.

Los usuarios pueden abrir, editar, guardar o exportar hojas de cálculo y archivos de

documentos a Google Sheets. Algunos de los formatos que se pueden ver y convertir a Hojas

de cálculo de Google incluyen:

• .xlsx

• .xls

• .xlsm

• .xlt

• .xltx

• .xltxm

• .ods

• .csv

15

Integración con otros productos de Google

Google Sheets se puede integrar con otros productos de Google, como Google Form, Google

Finance, Google Translate y Google Drawings. Por ejemplo, si desea crear una encuesta o

cuestionario, puede ingresar las preguntas en Formularios de Google y luego importar los

Formularios de Google en Hojas de cálculo de Google.

Términos comunes

Los siguientes son algunos de los términos comunes asociados con las hojas de cálculo de

Google (Google Sheets) :

• Celda : un solo punto de datos.

• Columna : un rango vertical de celdas que desciende desde la parte superior de la

hoja.

• Fila : un rango horizontal de celdas que se extiende desde el lado izquierdo de la hoja.

• Rango : una selección de varias celdas que se encuentra en una columna, fila o una

combinación de ambas.

• Función : una función incorporada en Google Sheets que se utiliza para calcular

valores y manipular datos.

• Fórmula : una combinación de funciones, columnas, filas, celdas y rangos que se

utilizan para obtener un resultado final específico.

• Hoja de trabajo : conjuntos de columnas y filas que componen una hoja de cálculo.

• Hoja de cálculo : documento completo que contiene hojas de Google Excel. Una hoja

de cálculo puede tener más de una hoja de trabajo.

16

1.2.5 Google Apps Script

Google Apps Script es un lenguaje de programación basado en JavaScript que permite

personalizar y ampliar productos de G Suite como Documentos, Hojas de cálculo,

Presentaciones y Formularios. No se debe instalar nada, ya que este mismo servicio

proporciona un editor de código incorporado directamente en el navegador para que la

secuencia de comandos se ejecute en los servidores de Google.

Apps Script es versátil. Estas son algunas de las acciones que puedes hacer en él:

• Agregar menús, diálogos y barras laterales personalizados a Documentos, Hojas de

cálculo y Formularios de Google.

• Escribir funciones personalizadas para Hojas de cálculo de Google.

• Publicar apps web independientes o incorporadas en Google Sites.

• Interactuar con otros servicios de Google, como AdSense, Analytics, Calendario,

Drive, Gmail y Maps.

Capítulo II: Detalles de la solución

17

2.1 Descripción general de la solución

Para solucionar el problema que tiene la ONG Vivienda Local en la confección de los

documentos para las carpetas técnico legal y plan de construcción, se confeccionará una base

de datos que permitirá el ingreso de información y almacenamiento de esta mediante una

interfaz web, para luego poder ser interpretada por una aplicación web, la cual tendrá la

función de confeccionar los documentos de especificaciones técnicas, presupuesto de costos

directos, análisis de precios unitarios y las listas de recursos y plazos de ejecución de cada

las partidas requeridas para las carpetas anteriormente mencionadas.

2.2 Arquitectura del sistema

2.2.1 Arquitectura lógica

La arquitectura lógica de este proyecto seguirá un esquema básico constituido por 3 niveles

fundamentales:

• Capa Interfaz: También puede ser conocida como la capa de presentación, esta se

encarga de recolectar e interpretar toda la información que verá el usuario (Front-

end).

• Capa Lógica de negocio: O capa de negocio, se encarga de las reglas del negocio,

de interpretar los datos recolectados por el nivel de presentación para luego

procesarlos en los servidores (Back-end).

• Capa de datos: La función de este nivel es determinar donde deberá ser

almacenada la información recolectada por el nivel de presentación y procesada en

el nivel de negocio (Back-end).

18

Figura 4: Arquitectura lógica del proyecto.

2.2.3 Arquitectura física

La arquitectura física del proyecto estará compuesta por 2 niveles:

• Cliente: Serán computadoras o cualquier tipo de hardware que permita la conexión a

Internet mediante algún navegador web. En este hardware ocurrirán todos los

procesos del lado del cliente o también conocidos como “front-end”.

• Servidor: El servidor será el componente HTTP encargado de almacenar las páginas

web para el cliente, permitiendo a éste realizar consulta a los datos mediante

procedimientos. Es en el servidor donde están almacenados los procesos del sistema

o también conocido como el “back-end”.

Figura 5: Arquitectura física del proyecto.

19

2.4 Herramientas de desarrollo

Para poder ejecutar el proyecto correctamente según sus necesidades, se utilizarán las

siguientes herramientas.

2.4.1 Herramientas de modelado y diseño de sistema

• Drawio: Aplicación web que permite la confección de diagramas y diseños.

2.4.2 Lenguajes de programación

• JavaScript: Es uno de los lenguajes de programación más utilizados en la creación

de páginas web dinámicas. Para este proyecto se utilizará JavaScript tanto para el

front-end como el back-end.

• Google Apps Script: Realmente este no es un nuevo lenguaje de programación, ya

que gran parte de su sintaxis está en JavaScript, pero se debe tener en consideración,

debido a que Google Apps Script cuenta con algunas funcionalidades y sintaxis

propias que son necesarias para este proyecto.

2.4.3 Motor de base de datos

Como motor de base de datos para este proyecto se utilizara las hojas de cálculo de Google

Sheets, el cual nos permitirá crear una base de datos tipo relacional.

Capítulo III: Desarrollo de la base de datos

20

3.1 Identificación de requerimientos

Para poder diseñar la base de datos, será necesario definir cuáles son los requerimientos que

tendrá la aplicación web que se va a desarrollar, de esta manera se podrá identificar de mejor

manera los requerimientos a la cual estará sometida la base de datos.

Los documentos técnicos y económicos que deberá generar la aplicación web para el

Programa de Autoconstrucción Colaborativa de la ONG Vivienda Local son los siguientes:

• Presupuesto: El documento será uno de pilares dentro de todos los documentos

económicos que proporcionará el Programa de Autoconstrucción Colaborativa, este

presupuesto solo deberá contemplar todos los costos directos asociados al proyecto

de construcción y no sus costos indirectos.

• Especificaciones técnicas: el Programa de Autoconstrucción Colaborativa además

deberá incluir las especificaciones técnicas de cada una de las partidas de

construcción asociadas al presupuesto del proyecto de construcción.

• Análisis de precio unitario: Para poder confeccionar el presupuesto, este deberá

tener asociado a cada una de sus partidas de construcción su respectivo análisis de

precio unitario, el cual no solo servirá para confeccionar el presupuesto, sino que

además este documento será parte del conjunto de documentos que se entrega en el

Programa de Autoconstrucción Colaborativa.

• Lista de compra de materiales por partida: El Programa de Autoconstrucción

Colaborativa también deberá proporcionar información sobre las cantidades totales de

materiales que se requerirán para cada partida asociada al presupuesto construcción.

• Listas de plazos de ejecución por partida: el Programa de Autoconstrucción

Colaborativa también deberá incluir los plazos de ejecución de cada una de las

partidas asociadas al presupuesto del proyecto de construcción.

21

3.2 Solución a los requerimientos

3.2.1 Identificación de las tablas requeridas para la base de datos

El primer paso para diseñar la base de datos en Google Sheets será identificar qué tablas se

ocuparán para organizar toda la información.

Lo primero será categorizar cada una de las partidas que serán almacenadas, para esto se

trabajará con dos niveles de categoría: Grupos y subgrupos. Los cuales segmentan las

partidas y facilitan la búsqueda de estas dependiendo al grupo y subgrupo a la cual están

pertenecen, esto debido a que se trabajará bajo relaciones entre tablas.

De igual manera hay que considerar que cada partida registrada deberá contar con su

respectivo análisis de precio unitario y para esto es fundamental contar con registros en la

base de datos de los recursos (materiales, mano de obra y maquinaria) con los que dispondrá

el análisis de precio unitario de cada partida registrada.

Como se hizo con la categorización de las partidas, se realizará lo mismo con los recursos,

los cuales se segmentaran en diferentes grupos y subgrupos.

Figura 6: Identificación de tablas de datos.

22

3.2.2 Identificación de los campos para cada tabla

Ya teniendo identificada cada una de las tablas que tendrá la base de datos, se deberá indicar

qué etiqueta tendrán los campos (columnas) de cada una de las tablas. La etiqueta de los

campos deberá ser descriptiva y a su vez ayudará a identificar cada una de las propiedades

que tendrán cada uno de los registros.

Categoría Grupo Partidas (CGP)

Esta tabla tendrá la función de segmentar las partidas como primera instancia. Por ejemplo,

los grupos de obras preliminares, obra gruesa, terminaciones e instalaciones domiciliarias

corresponderán a esta categoría, debido a que se trata de la primera forma de segmentar una

obra de construcción.

• ID: Este campo servirá para identificar de forma única cada uno de los registros de

partidas registrados en la tabla. Es importante que este campo nunca sea nulo o

repetido entre otros registros, esto debido a que será la única forma que se tendrá

para buscar directamente un grupo de partidas bajo un parámetro único. Además,

este campo servirá para determinar qué subgrupos descenderán de este grupo por el

hecho de llevar el identificador de este campo (ID).

• Descripción: En este campo se deberá explicar de manera detallada sobre el grupo

que se desea registrar. Es importante que esta descripción del grupo se entienda de

manera simple y rápida sin dar pie a confusiones, debido a que es este el campo que

será visible a la hora de buscar un registro dentro de esta tabla.

Figura 7: Tabla CGP.

23

Categoría Subgrupo Partidas (CSP)

Esta tabla tendrá la función de segmentar las partidas como segunda y última instancia. En

esta tabla deberán ir todos los subgrupos que componen a un determinado grupo. Por ejemplo,

el grupo de obra gruesa se segmenta en los subgrupos de movimiento de tierra, fundaciones,

sobrecimientos, radier, albañilería, etc.

• ID CGP: Este campo deberá contener el identificador del grupo del cual desciende (ID

de la tabla CGP). Esto nos permitirá determinar a qué grupo corresponde cada registro

y, además nos permitirá realizar búsqueda de todos los subgrupos que descienden

de un determinado grupo, solo con saber el identificador del grupo deseado.

• ID: Este campo servirá para identificar de forma única cada uno de los registros de los

subgrupos registrados en esta tabla. Es importante que este campo nunca sea nulo o

repetido entre otros registros, esto debido a que será la única forma que tendremos

para buscar directamente un subgrupo de partidas bajo un parámetro único. Además,

este campo servirá para determinar qué partidas descenderán de este subgrupo por

el hecho de llevar el identificador de este campo (ID).

• Descripción: En este campo se deberá explicar de manera detallada sobre el

subgrupo que se desea registrar. Es importante que esta descripción del subgrupo se

entienda de manera simple y rápida sin dar pie a confusiones, debido a que es este

el campo que será visible a la hora de buscar un registro dentro de esta tabla.

Figura 8: Tabla CSP.

24

Categoría Partidas (Partidas)

Esta tabla tendrá la función de almacenar toda la información necesaria para generar la

documentación requerida por el Programa de Autoconstrucción Colaborativa. Para esto, cada

registro de partida deberá ser capaz de proporcionar las especificaciones técnicas, análisis de

precio unitario y rendimientos de cada partida registrada.

• ID CGP: Este campo deberá contener el identificador del grupo del cual desciende (ID

de la tabla CGP). Esto permitirá determinar a qué grupo corresponde cada registro y,

además nos permitirá realizar búsqueda de todas las partidas que descienden de un

determinado grupo, solo con saber el identificador del grupo deseado.

• ID CSP: Este campo deberá contener el identificador del subgrupo del cual desciende

(ID de la tabla CSP). Esto nos permitirá determinar a qué subgrupo corresponde cada

registro y, además nos permitirá realizar una búsqueda de todas las partidas que

descienden de un determinado subgrupo, solo con saber el identificador del subgrupo

deseado.

• ID: Este campo servirá para identificar de forma única cada uno de los registros de las

partidas registradas en esta tabla. Es importante que este campo nunca sea nulo o

repetido entre otros registros, esto debido a que será la única forma que tendremos

para buscar directamente una partida bajo un parámetro único. Además, este

identificador (ID), servirá para extraer de manera simple toda la información requerida

por la aplicación web para confeccionar los documentos del Programa de

Autoconstrucción Colaborativa.

• Descripción: En este campo se deberá explicar de manera detallada sobre la partida

que se desea registrar. Es importante que esta descripción de la partida se entienda

de manera simple y rápida sin dar pie a confusiones, debido a que es este el campo

que será visible a la hora de buscar una partida dentro de esta tabla.

• Unidad partida: Para este campo se deberá indicar bajo qué unidad medirá y

confeccionará el análisis de precio unitario de la partida a registrar. Es sumamente

importante que concuerden la unidad de este campo con la unidad utilizada tanto para

cubicar la partida como para confeccionar el análisis de precio unitario, debido a que

25

se puede producir un error al momento de cubicar la partida bajo una unidad distinta

a la cual se confeccionó el análisis de precio unitario. Algunos ejemplos de unidad de

partida serían gl, un, ml, m2, m3, etc.

• Rendimiento partida: Otra de las funcionalidades requeridas para cada registro, es

la posibilidad de poder calcular los plazos de ejecución para cada partida, Para esto,

este campo deberá contener el valor del rendimiento de la ejecución de la partida.

Se deberá tener en cuenta que, para calcular el rendimiento de la partida, se debe

calcular usando la misma unidad de medida de la partida indicada en el campo

anterior. Por ejemplo, si se está registrando la partida de colocación de cerámica y en

el campo de “Unidad de partida” se colocó metros cuadrados (m2), el rendimiento para

este campo se deberá realizar calculando cuántos m2 de cerámicas se podrían

colocar en una determinada unidad de tiempo.

Es importante mencionar que en este campo solo debe ir el valor número del

rendimiento, debido a que en el siguiente campo indicaremos la unidad de este.

• Unidad rendimiento: En este campo se deberá indicar cuál es la unidad del

rendimiento calculado para el campo anterior. Esto nos permitirá una vez calculado

los plazos con el rendimiento, indicar que unidad de plazo se trata. Por ejemplo, para

el campo anterior calculamos que el rendimiento sería de cuántos m2 de cerámica se

pueden colocar en una determinada unidad de tiempo, por lo que la unidad que

debería ir en este campo debería ser m2/tiempo según el ejemplo anterior. Algunos

ejemplos de unidades de tiempo son hora, día, semana, mes, etc.

Es muy importante tener en consideración que la unidad de medida utilizada para

calcular el rendimiento de la partida debe ser exactamente el mismo que se utilizó en

el campo “Unidad partida” ya que, para calcular la unidad de tiempo, debe coincidir la

unidad cubicada con la unidad utilizada para calcular el rendimiento de la partida.

• Usuario: Este campo servirá como parámetro de control, debido a que este campo

contendrá la dirección de correo electrónico del usuario que insertó la partida a la

tabla. De esta manera el administrador podrá supervisar y seguir el progreso de los

usuarios encargados de insertar registros a la base de datos.

26

• EETT: Entre las funcionalidades requeridas para cada registro de partida, es que esta

sea capaz de proporcionar las especificaciones técnicas del proyecto. Para eso este

campo deberá contener las especificaciones técnicas de la partida a registrar, además

se debe considerar que la especificación técnica que se incorpore a este campo sea

coherente tanto con el análisis de precio unitario como con los demás campos del

registro.

• APU: La última funcionalidad requerida para cada uno de los registros de las partidas,

es que esta pueda contener y proporcionar el precio unitario de la partida para así

poder confeccionar el presupuesto de costos directo mediante la aplicación web, y

que además proporcione los cálculos realizados para obtener dicho valor unitario.

La manera en la cual se registrará el análisis de precio unitario en este campo será

un poco distinta a como se ha hecho con los demás campos. Para esto se usará un

sistema de codificación, el cual incorpora el identificador (ID de la tabla Recursos) del

recurso a utilizar y el respectivo consumo de cada ítem del análisis de precio unitario

de la partida. Esto se desarrollará de mejor manera en los capítulos 4 y 5 del presente

documento.

Figura 9: Tabla Partidas.

27

Categoría Grupo Recursos (CGR)

Esta tabla tendrá la función de categorizar los recursos como primera instancia, principalmente

existen 3 tipos de grupos: Materiales, Mano de obra y maquinaria. Debido a que se trata de la

forma más estandarizada en la segmentación de los recursos disponibles dentro de una obra

de construcción.

• ID: Este campo servirá para identificar de forma única cada uno de los registros de

grupos registrados en la tabla. Es importante que este campo nunca sea nulo o

repetido entre otros registros, esto debido a que será la única forma que tendremos

para buscar directamente un grupo de recursos bajo un parámetro único. Además,

este campo servirá para determinar qué subgrupos descenderán de este grupo por el

hecho de llevar el identificador de este campo (ID).

• Descripción: En este campo se deberá explicar de manera detallada sobre el grupo

que se desea registrar. Es importante que esta descripción del grupo se entienda de

manera simple y rápida sin dar pie a confusiones, debido a que es este el campo que

será visible a la hora de buscar un registro dentro de esta tabla.

Figura 10: Tabla CGR.

Categoría Subgrupo Recursos (CSR)

Esta tabla tendrá la función de segmentar los recursos como segunda y última instancia. En

esta tabla deberán ir todos los subgrupos que componen a un determinado grupo de recursos.

Por ejemplo, el grupo de materiales se podría segmentar en los subgrupos de maderas,

hormigones, fierros, etc.

28

• ID CGR: Este campo deberá contener el identificador del grupo del cual desciende (ID

de la tabla CGR). Este campo nos permitirá determinar a qué grupo corresponde cada

uno de los registros, además permitirá realizar búsqueda de todos los subgrupos que

descenderán de determinado grupo, solo con el hecho de contar el identificador del

grupo del recurso del cual desciende.

• ID: Este campo servirá para identificar de forma única cada uno de los registros de los

subgrupos registrados en esta tabla. Es importante que este campo nunca sea nulo o

repetido entre otros registros, esto debido a que será la única forma que tendremos

para buscar directamente un subgrupo de recursos bajo un parámetro único dentro de

esta tabla. Además, este campo servirá para determinar qué recursos descenderán

de este subgrupo por el hecho de llevar el identificador de este campo (ID).

• Descripción: En este campo se deberá explicar de manera detallada sobre el

subgrupo que se desea registrar. Es importante que esta descripción del subgrupo se

entienda de manera simple y rápida sin dar pie a confusiones. debido a que es este

el campo que será visible a la hora de buscar un registro dentro de esta tabla.

Figura 11: Tabla CSR.

Categoría Recursos (Recursos)

Esta tabla tendrá la función de almacenar toda la información necesaria para generar los

análisis de precio unitario para cada registro de partidas en la tabla Partidas.

• ID CGR: Este campo deberá contener el identificador del grupo del cual desciende

(ID de la tabla CGR). Esto nos permitirá determinar a qué grupo corresponde cada

partida y, además nos permitirá realizar búsqueda de todas las partidas que

29

descienden directamente de un determinado grupo, solo con tener el identificador del

grupo deseado.

• ID CSR: Este campo deberá contener el identificador del subgrupo del cual desciende

(ID de la tabla CSR). Esto nos permitirá determinar a qué subgrupo corresponde cada

registro de recursos, además nos permitirá realizar una búsqueda de todos los

recursos que descienden de un determinado subgrupo, solo con saber el identificador

del subgrupo deseado.

• ID: Este campo servirá para identificar de forma única cada uno de los registros de los

recursos registrados en esta tabla. Es importante que este campo nunca sea nulo o

repetido entre otros registros, esto debido a que será la única forma que tendremos

para buscar directamente un recurso bajo un parámetro único. Además, este

identificador (ID) nos servirá para extraer de manera simple toda la información

requerida para confeccionar el análisis de precio unitario de cada partida a registrar

en la tabla de Partidas.

• Descripción: En este campo se deberá explicar de manera detallada sobre el recurso

que se desea registrar. Es importante que esta descripción del recurso se entienda de

manera simple y rápida sin dar pie a confusiones, debido a que este campo será el

visible a la hora de buscar un recurso dentro de esta tabla.

• Unidad: Este campo deberá indicar la unidad comercial con la cual se comercializa el

recurso, es importante que la unidad comercial de este campo concuerde con el precio

asignado en el siguiente campo.

• Precio: Este campo deberá tener el valor comercial del recurso con el cual se

confeccionará el análisis de precio unitario. Es importante que este precio concuerde

con la unidad comercial puesta en el campo anterior.

30

Figura 12: Tabla Recursos.

3.2.3 Identificación de la llave primaria y foránea de cada tabla

Debido a que se trabaja con una base de tipo relacional, todas las tablas se relacionan de

alguna manera entre ellas y para esto todas las tablas deberán contar con una llave primaria

(PK) y con una llave foránea (FK).

Para este proyecto la llave primaria (PK) se reconocerá como el campo “ID” en cada una de

las tablas, el cual se podrá utilizar como llave foránea en las otras tablas para indicar con cual

se relaciona.

Como llave foránea (FK) se reconocerá como el campo “ID + el nombre de la tabla” de la cual

se relaciona.

Figura 13: Identificación de las llaves primaria y foránea de la tabla Partidas.

31

3.2.4 Identificación de las relaciones entre cada tabla

En este punto se puede apreciar de manera gráfica cómo se vinculan cada una de las tablas

de la base de datos a través de las relaciones existentes entre ellas.

Figura 14: Modelo relacional de la base de datos.

Si se analiza la figura 14, se podrá entender con mayor claridad que tabla Partidas desciende

de la tabla CSP y está a su vez desciende la tabla CGP. La relación que existe entre estas se

llama uno a muchas, debido a que un registro de la tabla CGP puede pertenecer a muchos

registros de la tabla CSP, pero un registro de la tabla CSP solo puede pertenecer a un registro

de la tabla CGP, de ahí la relación 1: M.

3.3 Creación de la base de datos

Para crear un documento Google Sheets es necesario contar con los servicios de Google G-

suite, esta puede ser de tipo personal o empresa, en ambos casos los procedimientos y

funcionamientos son idénticos, la diferencia se da en otros aspectos que no infieren en este

proyecto.

Para poder crear un documento Google Sheets se necesitará estar en la aplicación Google

Drive, para esto se deberá ingresar a la dirección url “www.drive.google.com”. De esta manera

se podra acceder al entorno de trabajo de Google Drive se deberá ingresar mediante las

32

credenciales de identificación, que serán la dirección de correo G-suite y su respectiva

contraseña.

Figura 15: Ingreso al entorno de trabajo Google Drive.

Al ingresar a la ventana del entorno de trabajo de Google Drive, se deberá seleccionar la

opción “Nuevo” ubicada en el panel izquierdo del entorno de trabajo, el cual nos desplegará

nuevas opciones sobre creación de archivos.

Figura 16: Creación documento Google Sheets en entorno de trabajo Google Drive.

Una vez se haya desplegado el menú de la opción “Nuevo”, se deberá dirigirse a la opción

“Hoja de cálculo de Google” y seleccionar la suposición de “Hoja de cálculo en blanco”. Es

importante que el documento esté en blanco sin ningún formato previamente establecido, de

esta manera se evitará cualquier problema en un futuro al usar el documento como base de

datos.

33

Figura 17: Creación documento Google Sheets en blanco.

3.4 Creación de tablas para base de datos

3.4.1 Creación de hojas en documento Google Sheets

Como primer paso para poder realizar cualquier acción correspondiente a la creación,

modificación o eliminación de hojas dentro de un documento Google Sheets, se requerirá

contar con los permisos de administrador (propietario del documento), de no ser de esta

manera, no se podrá realizar ningún cambio sobre el documento.

Ya contando con la cuenta propietaria del documento se podrán crear las tablas y sus

respectivas modificaciones. Para esto, se deberá dirigir a la esquina inferior izquierda de la

ventana del navegador donde se tiene abierto el documento Google Sheets, ahí deberá

aparecer una opción con el signo “+”, el cual al ser seleccionado se creará de forma inmediata

una nueva hoja dentro del documento.

Figura 18: Creación de hojas en el documento.

34

Al crear una nueva hoja, estas se irán ordenando de forma horizontal consecutivamente. Estas

hojas se crearán con el nombre predeterminado “Hoja” + “n”, siendo “n” el número de cantidad

de hojas ya creadas.

Figura 19: Posicionamiento de hojas creadas.

3.4.2 Configuración de las hojas para uso como tablas de datos

Para poder dar uso a las hojas del documento Google Sheets como tablas de datos, se

requiere que estas sean adaptadas y optimizadas para tal uso. En caso de no seguir las

modificaciones indicadas en este subcapítulo, podrán surgir problemas de conexión o de

capacidad de almacenamiento.

Configuración del nombre de las hojas

Existe un gran motivo del por qué se debe cambiar el nombre por los ya predefinido en el

subcapítulo 3.2.1, y el motivo es que para poder conectarnos a estas hojas y poder extraer

cualquier tipo de información, esta se realizará mediante una consulta donde se utilizará el

nombre de la tabla a la cual se desea extraer información. De cambiar el nombre de las tablas

por otros o simplemente que estén escrito de forma errónea, no nos dejara conectarnos a esta,

y por consiguiente no podremos extraer ningún tipo de información de dicha tabla desde la

interfaz web y la aplicación web.

Para realizar los cambios de nombres a las hojas, lo podrá realizar quien tenga el permiso de

administrador (Propietario) o los que tengan el permiso de colaborador. Los permisos de

acceso se explicarán detalladamente en el subcapítulo 3.5.

El nombre que se le asignará a cada una de las hojas corresponderá a cada una de las tablas

según lo detalla la figura 6. Es importante tener en cuenta que el nombre de las hojas es

35

sensible a las mayúsculas, por lo que se deben respetar cada una de las letras que esté en

mayúscula en la figura 6.

Para poder cambiar el nombre a las hojas, se deberá dirigir a las pestañas de hojas ubicadas

en la barra inferior de la ventana del navegador donde se encuentra abierto el documento, ahí

se deberá seleccionar la opción “▼”, que se encuentra al costado derecho del nombre de la

hoja que se desea modificar. Al seleccionar esta opción desplegará un nuevo menú de

opciones, ahí se deberá seleccionar la opción “Cambiar nombre”, de esta manera ya podrá

cambiar el nombre que viene predeterminado por el nombre correspondiente.

Figura 20: Modificación de nombre de las hojas del documento.

En el caso que exista alguna dificultad al intentar visualizar alguna de las hojas, se deberá

dirigir a la esquina inferior izquierda del navegador donde se tiene el documento Google

Sheets abierto, ahí se encontrará la opción que tiene cuatro barras horizontales apiladas de

forma vertical como se indica en la figura 20. Esta opción desplegará un menú que contendrá

todas las hojas del documento, incluyendo las que se encuentran ocultas.

Figura 21: Pestaña de buscador de hojas del documento.

36

Configuración de hojas para optimizar la capacidad de registros

Una vez las hojas del documento se les haya cambiado el nombre, estas ya podrán ser usadas

como tablas de datos, aunque se aconseja no usarlas todavía, debido a que estas aún no

están optimizadas para almacenar datos. Para poder optimizar las hojas y que estas puedan

almacenar datos de mejor manera, es importante entender cómo funciona el sistema de filas

y columnas y su capacidad dentro de una hoja del documento.

Para entender la capacidad que tiene una hoja, es importante entender que la capacidad límite

que tiene una hoja se refiere hacia el número de celdas que esta puede contener y no hacia

su número de filas y/o columnas. La capacidad máxima de celdas que puede soportar una

hoja es de 5.000.000 según lo indica la figura 22, que aparece al momento que se intenta

sobrepasar los 5.000.000 de celdas.

Figura 22: Límite máximo de celdas por hoja.

Para poder calcular y optimizar la capacidad de celdas dentro de un documento, se debe

entender que las celdas son la intersección que existe entre cada fila y columna de una hoja,

por lo que entendiendo esto, se puede deducir que el número de celdas que existe dentro de

cada hoja depende exclusivamente del número de filas y columnas que esta tenga.

Figura 23: Fórmula para calcular el total de celdas por hoja.

Ya entendiendo cómo se calcula el número de celda que tendrá una hoja con un determinado

número de filas y columnas, se debe explicar a qué nos referimos con optimizar la capacidad

de almacenamiento de cada hoja, que no es más que otra cosa que aumentar el mayor número

de filas en función del límite de 5.000.000 de celda que tenemos por hoja. La importancia que

37

tiene el aumentar el número de filas se debe a que cada fila corresponde a la posibilidad de

insertar un registro de datos, por lo que, a mayores filas, mayor capacidad de insertar registros

a la base de datos.

Figura 24: : Fórmula para calcular el número máximo de filas por hoja.

Entonces para poder lograr el mayor número de filas posibles contemplando el límite de celdas

que se tiene, nos queda que mientras menor sea el número de columnas, mayor será la

cantidad de filas para el documento según lo indica el gráfico de la figura 25, el cual se

confeccionó usando la fórmula indicada en la figura 24.

Figura 25: Gráfico de número de filas frente al número de columnas.

Entendiendo cómo afecta el número de columnas al número máximo total de filas (registro)

que tendrá cada hoja, lo que se debe hacer es eliminar todo el excedente de columnas que

tiene cada hoja, debido que, al momento de crear una hoja, está de forma predeterminada

vendrá con un total de 26 columnas.

Para poder determinar el número de columnas que se deberá dejar a cada hoja, se deberá

seguir viendo el número de campos que tiene cada una de las tablas según lo indican las

figuras 7, 8, 9, 10, 11 y 12. Por ejemplo, la tabla Partidas tiene 10 campos según lo indica la

38

figura 9, por lo que se deberá eliminar las otras 16 columnas sobrantes, para así dejar un total

de 10 columnas.

3.4.3 Sistema de generación de identificadores (ID)

Al usar el documento Google Sheets como motor de base de datos, tuvimos que realizar

algunas modificaciones para que estas funcionen como tal, pero existe otro inconveniente

más, y es que estos documentos no fueron diseñados para funcionar como una base de datos

y no existe una forma de crear el identificador (ID) para cada registro que sea insertado.

Para solucionar este problema se hará mediante la creación de una nueva hoja, que tendrá la

función de almacenar el número de registros creados para cada una de las tablas, por lo que,

al insertar un nuevo registro, serán el número de registros creados almacenado en esta hoja

la encargada de asignar un nuevo identificador (ID).

Debido a que esta hoja almacena el número registros creados de cada tabla, incluso los

registros que se han eliminado o modificado nunca podrán existir dos registros de una tabla

con el mismo identificador (ID). Para entender de mejor manera cómo funciona este sistema

de asignación del identificador (ID), se deberá hacer lectura del capítulo 4 del presente

documento.

Figura 26: Contador de registros para la generación de ID.

Para crear esta nueva hoja se deberá hacer de la misma manera que se crearon las demás

hojas, siguiendo los pasos del subcapítulo 3.4.1. La diferencia que tendrá esta hoja con la del

resto, es que esta llevará un rango de celdas que se encargan de almacenar el número de

registros de cada una de las demás hojas. Para crear este rango de celdas se deberá realizar

de la misma manera que lo indica la figura 26. Las celdas B2, C2 y D2 deberán ir el nombre

de las tablas CGP, CSP y Partidas respectivamente. Para las celdas B3, C3 y D3 debería ir el

39

número 1 en cada una de ellas. Para las celdas B5, C5 y D5 deberá ir el nombre de las tablas

CGR, CSR y Recursos respectivamente. Para las celdas B6, C6 y D6 debería ir el número 1

en cada una de ellas.

Es importante tener en consideración que una vez que la base de datos ya esté en

funcionamiento, el número de registro para cada tabla nunca deberá ser cambiado, debido a

que si se modifica este número puede generar duplicación de identificador (ID), lo que podría

provocar fallos a la hora de buscar un registro.

3.5 Permisos de acceso a la base de datos

3.5.1 Tipos de permisos y privilegios

Los permisos son grupos a los cuales se le asignan diversos privilegios, en lugar de asignar

los privilegios de forma individual a cada usuario. A cada usuario se le deberá otorgar un

permiso, el cual tiene asignado todos los privilegios que le corresponde a cada usuario.

Los permisos deben ser creados y asignados según el motor de base que se utilice. Para este

proyecto esto se hará mediante el uso de documentos Google Sheets, el cual cuenta con tres

tipos de permisos, a los cuales se les puede asignar y modificar los privilegios con los que

contará cada tipo de permiso.

Tipos y característica de cada uno de los permisos:

• Permiso de administrador: Este permiso solo lo poseerá el propietario del

documento, este permiso es el único que contará con todos los privilegios sobre el

documento, además este permiso será el encargado de asignar y revocar cualquier

privilegio a los demás permisos.

• Permiso de Colaborador: Este permiso solo puede ser concedido mediante

invitación por correo electrónico G-suite por parte del propietario del documento. Los

privilegios que se les asigna a este permiso permiten actuar de manera limitada sobre

el documento.

40

• Permiso de Invitado: Este permiso no requiere de una invitación mediante correo

electrónico, sino más bien de una “llave” que corresponde a la dirección url del

documento, de esta manera podrá ingresar cualquier usuario que cuente con esta

“llave”. Los privilegios que se les asigna a este permiso permiten actuar de manera

limitada sobre el documento.

Figura 27: Diagrama de permisos en documentos Google Sheets.

Los privilegios con los que contarán los permisos de colaborador como de invitado deberán

ser asignados por el propietario del documento. Si los privilegios no son asignados como se

indica más adelante, existe el riesgo de que el documento sufra algún tipo de daño por parte

de terceros que comprometa la integridad o usabilidad de la información del documento.

Si bien existen tres tipos de permisos de los cuales solo dos de estos se pueden asignar

(colaborador he invitado), el documento Google Sheets nos proporciona tres tipos de

privilegios a los cuales les podemos asignar a estos dos tipos de permisos.

Los privilegios con los que se cuenta dentro de un documento Google Sheets son los

siguientes:

41

Figura 28: Tipos de privilegios de acceso.

Estos tres tipos de privilegios son los que se deberá asignar correctamente a cada tipo de

usuario más adelante.

3.5.2 Qué tipo de permiso asignar a cada usuario

Como se detalló en el punto anterior, solo los permisos de colaborador he invitado se pueden

asignar a un documento, debido a esto el permiso de administrador quedará fuera de este

apartado, ya que solo puede existir un administrador.

Permiso de Colaborador

Este permiso otorga los privilegios de editor, por lo que este permitirá insertar, modificar,

eliminar y leer cualquier registro de la base de datos. Es por esto mismo que este permiso se

deberá otorgar sólo a los usuarios que se requiere que ingresen o modifiquen datos de la base

de datos mediante el uso de la interfaz web.

Es importante tener en cuenta que este permiso compromete la seguridad e integridad de los

datos, por lo que se recomienda acotar este permiso solo a usuarios de confianza.

Permiso de Invitado

Este permiso otorga el privilegio de lector, por lo que solo se podrá hacer lectura de registro

de la base de datos sin posibilidad de realizar ninguna otra acción. Es por esto mismo que

este permiso está diseñado para todos los usuarios que requieran trabajar con la aplicación

web en la confección de presupuestos, especificaciones técnicas, listas de compra de

materiales, etc.

42

A diferencia del permiso de colaborador, este permiso no compromete a la seguridad e

integridad de los datos, por lo mismo este permiso puede ser compartido con usuarios que no

sean de confianza o externos a la ONG Vivienda Local que requieran hacer uso de la

aplicación web.

3.5.3 Asignación de permisos de acceso

Para poder asignar cualquier tipo de permiso de acceso, es necesario que se haga siempre

mediante la cuenta G-suite propietaria del documento, debido a que es la única que cuenta

con los privilegios necesarios para generar modificaciones sobre el acceso al documento.

Para poder asignar los permisos de rol que tendrán cada uno de los usuarios sobre el

documento, se deberá acceder a la opción “Compartir”, ubicada en la esquina superior

derecha de la interfaz web del documento.

Figura 29: Ventana “Compartir” para administrar permisos y privilegios.

Al acceder a la opción “Compartir”, abrirá la ventana con la cual se gestiona tanto los roles

como los privilegios. Esta ventana contará con dos secciones, la superior encargada de

gestionar los permisos y privilegios del rol de colaborador y la inferior encargada de gestionar

los permisos y privilegios del rol de invitado.

Figura 30: Secciones de la ventana de administración de permisos y privilegios.

43

Al utilizar un documento como Google Sheets, es requisito indispensable que todos los

usuarios que requieran de alguno de los tipos de permiso de acceso al documento cuenten

con un correo electrónico proporcionado por los servicios de Google G-suite (Gmail).

Asignación de permisos de colaborador

Para realizar cualquier modificación correspondiente a los permisos de colaborador, se deberá

realizar visitando la sección superior de la ventana “Compartir” según lo indica la figura 30.

Para conceder los permisos de colaborador se deberá ingresar la dirección de correo

electrónico G-suite en la caja de texto “Añadir personas y grupos” de los usuarios a los cuales

se les quiere conceder algún tipo de permiso.

Figura 31: Asignar permiso de colaborador

Al ingresar la dirección de correo electrónico en la caja de texto “Añadir personas y grupos”,

la ventana “Compartir” se actualizará en una nueva ventana, la cual brindará dos nuevas

opciones, el privilegio de acceso que se le concederá al usuario y, el mensaje con el cual le

llegará la petición de acceso por vía Email.

Al asignar los permisos de colaborador, es importante revisar siempre que el privilegio que se

asignará en la lista desplegable ubicada al costado derecho de la caja de texto “Añadir

personas y grupos” sea el privilegio “Editor”.

44

Figura 32: Asignar privilegio al permiso de colaborador.

De esta manera los usuarios a los cuales se les concedieron los permisos de colaborador

contarán con los privilegios necesarios para leer, modificar, eliminar y escribir registros dentro

de las múltiples tablas con las que cuenta el sistema propuesto.

Para revisar quienes poseen los permisos de colaborador, se deberá ir a la sección

“Colaborador” ubicada en la parte superior de la ventana “Compartir”, ahí los usuarios con

permisos de colaborador aparecen alineados por debajo del propietario del documento de

forma vertical.

Figura 33: Posicionamiento de los usuarios con permiso de colaborador.

45

Asignación de permisos de invitado

Para realizar cualquier modificación correspondiente a los permisos de invitado, se deberá

realizar visitando la sección inferior de la ventana “Compartir” según lo indica la figura 30.

A diferencia de los permisos de colaborador, los permisos de invitado no se generan mediante

una invitación vía Email, sino más bien mediante el uso de una “llave”, la cual será la dirección

url del documento Google Sheets y quien cuente con esta llave tendrá acceso a los privilegios

de lectura de datos sobre el documento.

Para esto se deberá ir a la sección “invitado” ubicada en la parte inferior de la ventana

“Compartir”, ahí se deberá hacer clic en la opción “Cambiar”.

Figura 34: Asignación de los permisos de invitado.

Al hacer clic en la opción “Cambiar”, la ventana “Compartir” se actualizará por una nueva

ventana, en la cual dispondremos de dos nuevas opciones, la accesibilidad del permiso

mediante el uso de la “llave” y el tipo de privilegio con el que contará el rol de invitado.

Lo primero que se debe realizar es configurar la accesibilidad que tendrá la “llave” para

acceder a los permisos de invitado, para esto se deberá hacer clic en la lista desplegable

ubicada en la parte inferior de la ventana, ahí se desplegarán las siguientes dos opciones:

• Restringido: En este modo sólo pueden tener acceso los que cuentan con los

permisos de colaborador. Quienes no cuentan con una invitación no podrán acceder

al documento al documento.

46

• Cualquier persona con el enlace: En este modo todos los usuarios que tengan la

“llave” tendrán acceso al documento, si no se cuenta con invitación o con la “llave” no

se podrá tener acceso al documento.

Para que los usuarios puedan tener acceso al documento mediante la “llave”, se deberá elegir

exclusivamente la opción “Cualquier persona con el enlace”.

Figura 35: Configuración del permiso de invitado.

Al seleccionar la opción “Cualquier persona con el enlace”, nos dispondrá de un nuevo menú

de opciones desplegables, el cual servirá para asignar los privilegios de acceso de invitado

mediante el uso de la “llave”. Es importante que en este menú se asigne el privilegio de

“Lector”, de esta manera quienes accedan al documento mediante la “llave” solo podrán hacer

lectura de los datos sin posibilidad de eliminar, modificar o ingresar registros al documento.

Figura 36: Asignación de privilegios al permiso de invitado.

47

Una vez se haya configurado la accesibilidad del documento bajo los permisos de invitado y,

además se configuró el privilegio de esta, solo hace falta compartir la “llave” con los usuarios

que se requiere asignar este permiso. Para esto se deberá obtener la “llave” que corresponde

a la url del documento.

Para conseguir la url del documento existen las siguientes dos maneras:

• Url desde el navegador: Una de las formas de conseguir la url es copiarla

directamente desde la caja de texto ubicada en la parte superior del navegador y que

se usa para redirigir a páginas web mediante una url. Es importante tener en cuenta

que para que aparezca la url en la caja de texto es necesario tener abierto el

documento Google Sheets, de lo contrario la caja de texto aparecerá vacía o con

alguna de las últimas url visitadas en el navegador.

Figura 37: Conseguir url mediante navegador web.

• Url desde la ventana “Compartir”: La otra forma de obtener la url del del documento

es accediendo directamente a la sección inferior de permisos de invitado ubicada en

la pestaña “Compartir”, y copiar directamente la dirección url desde el botón “Copiar

enlace”.

Figura 38: Conseguir url mediante la ventana “Compartir”.

48

3.5.3 Configuración de privilegios globales

Al añadir usuarios al documento, estos no solo podrán leer y modificar los datos que contendrá

este, sino también podrán modificar los permisos de acceso, esto se debe a las

configuraciones que vienen de forma predeterminadas al crear un documento Google Sheets.

Para esto se deberá restringir los permisos que tendrán los usuarios que serán añadidos al

documento, los cuales no afectarán al administrador del documento, para esto se deberá

ingresar a la imagen de una tuerca ubicada en la esquina superior derecha de la pestaña

compartir.

Figura 39: Configuración de los privilegios globales.

Dentro de este nuevo menú desplegable se podrán ver dos opciones de configuración sobre

los permisos que tendrán todos los usuarios añadidos al documento.

• Los editores pueden cambiar permisos y compartir: Esta opción compromete

directamente la seguridad e integridad del documento, es por esto mismo que se

recomienda que se desactive y se mantenga así. Esto se debe principalmente debido

a que si esta opción se encuentra activa, todos los usuarios que son parte del

documento podrán cambiar los permisos y compartir el documento sin necesidad de

una confirmación del administrador (propietario) del documento.

• Los lectores y comentadores pueden ver la opción de descargar, imprimir y

copiar: A diferencia de la opción anterior, esta no afecta la integridad ni la seguridad

del documento, sino más bien puede afectar la privacidad de los datos, dejando la

opción que cualquier persona que tenga acceso al documento tanto para editar como

49

leer datos puedan descargar, imprimir o copiar información de la base de datos sin el

permiso del administrador (propietario) del documento. Es por esto por lo que la

configuración de esta opción queda a criterio del administrador (propietario) del

documento.

Figura 40: Privilegios globales.

3.5.4 Modificación de permisos de usuario

Si bien los privilegios son asignados al momento de asignar a un usuario, si por algún motivo

estos se requieren modificar en un futuro, se deberá realizar accediendo a las secciones

superior e inferior (colaborador e invitado) de la ventana “Compartir”.

Modificación de privilegios del permiso de colaborador

Una vez ya se encuentre en la sección superior de la ventana “Compartir”, se deberá buscar

al usuario al cual se le desea cambiar el privilegio asignado al permiso de colaborador, para

cambiar el privilegio asignado se deberá realizar desplegando el menú ubicado al costado

derecho del nombre de usuario deseado.

50

Figura 41: Modificación de privilegios del permiso de colaborador.

Al desplegar el menú de privilegios, este proporciona tres opciones de privilegios según lo

indica la figura 28, ahí se deberá seleccionar el nuevo privilegio el cual se le asignará al usuario

deseado.

Modificación de privilegios del permiso de invitado

Al desplegar la sección “Invitado” en la sección inferior de la ventana “Compartir”, se

encontrará el menú desplegable con todas las opciones de privilegio según lo indica la figura

42.

Figura 42: Modificación de privilegios del permiso de invitado.

Al desplegar el menú de privilegios, este proporciona tres opciones de privilegios según lo

indica la figura 28, ahí se deberá seleccionar el nuevo privilegio el cual se le asignará al usuario

deseado.

Capítulo IV: Desarrollo y uso de la interfaz web

51

4.1 Identificación de los requerimientos

Ya contando con la base de datos configurada y publicada como se detalló en el capítulo

anterior, ahora sigue el rellenado de esta con todas las partidas de construcción que serán

usadas por la aplicación web para confeccionar los documentos técnicos y económicos del

Programa de Autoconstrucción Colaborativa de la ONG Vivienda Local.

Para poder añadir los registros en la base de datos, será necesario gestionarla y administra la

de manera externa, debido a que la base de datos con la que cuenta el sistema propuesto usa

un documento Google Sheets como motor de base de datos, el cual no está preparada y/o

optimizada para la gestión y administración de la información almacenada. Es por esto por lo

que se requerirá el usa de una interfaz que gestiona de forma externa la base de datos.

La interfaz que se encargará de gestionar la base de datos deberá ser capaz de realizar las

siguientes acciones:

• Añadir nuevos registros en la base de datos y asignarle el Identificador (ID) a cada

uno de los registros.

• Modificar cualquier registro que se encuentre disponible en la base de datos.

• Eliminar cualquier registro que se encuentre disponible en la base de datos.

4.2 Descripción de la solución

Para poder desarrollar la interfaz web que se encargará de gestionar la base de datos

desarrollada en el capítulo anterior, se hará uso de los documentos Google Apps Script para

desarrollar y ejecutar la interfaz web.

La arquitectura lógica con la cual constara este proyecto seguirá el esquema básico constituido

por los siguientes 3 niveles:

52

4.2.1 Capa de presentación

La capa de presentación será la cual utilizara el usuario para interactuar con la interfaz web

mediante cualquier equipo físico que disponga de una navegador web e internet. Esta capa

tendrá la función de recopilar toda la información requerida por la base de datos para que

posteriormente esta sea procesada y validada por la capa lógica de negocio.

Figura 43: Estructura capa de presentación.

La interfaz web estará compuesta por cuatro secciones principales como se muestra en la

figura 43. Estas secciones tendrás las siguientes funciones:

• Cabecera: Esta sección tendrá la función de indicar información básica de la ONG

Vivienda Local y es consistente en todo el sitio.

• menú: Esta sección tendrá la función de seleccionar el formulario adecuado para la

acción requerida por el usuario para gestionar y controlar la base de datos.

• Zona de contenido: Esta sección será la que encargará de mostrar los formularios

que el usuario haya selecciono en el menú de la sección anterior. En total el usuario

podrá seleccionar cualquier de los 12 formularios que se indica en la figura 44 y que

se explican más en detalle en los subcapítulos 4.4. y 4.5.

53

• Pie de página: Esta sección tendrá la función de mostrar los links de navegación,

enlaces de interés y copyright del sitio web.

Figura 44: Formularios de la capa de presentación.

4.2.2 Capa de lógica de negocio

La capa lógica de negocio será la cual procesará correctamente las operaciones que realiza

el usuario mediante los formularios desplegados por la capa de presentación.

La lógica de negocio deberá procesar los formularios de la capa de presentación mediante

cuatros métodos encargados de leer, escribir, modificar y eliminar registros de la base de

datos, para esto se realizará mediante los siguientes métodos:

• Método Get: Este método se encargará de extraer los registros de la base de datos

para posteriormente ser usados por la capa de presentación.

• Método Set: Este método se encargará de añadir los registros a la base de datos

obtenidos por los diversos formularios para añadir registros a la base de datos como

se indican en la figura 45.

54

• Método Update: este método se encarga de guardar los cambios realizados a los

registros de la base de datos seleccionados mediante los formularios de modificación

de registros como se indican en la figura 45.

• Método Delete: Este método se encargará de eliminar los registros de la base de

datos seleccionados en los formularios de modificación de registros como se indican

en la figura 45.

Figura 45: Esquema de comunicación entre los formularios y los métodos.

En la figura 45, se grafica como interactúan cada uno de los métodos explicados anteriormente

con los diversos formularios disponibles en la capa de presentación que se indican en la figura

44.

4.2.3 Capa de datos

La capa de datos se encarga de almacenar todos los registros que sean ingresados mediante

la interfaz web. Esta capa utilizara como base de datos el documento Google Sheets que se

desarrolló en el capítulo 3 del presente documento.

55

Figura 46: Esquema de comunicación entre los métodos y la base de datos.

En la figura 46, se grafica como interactúan cada uno de los métodos explicados en el

subcapítulo anterior con la base de datos.

4.3 Servidor

4.3.1 Creación del servidor

Para crear el servidor que se encargará de procesar la interfaz web, se deberá realizar

mediante el uso de la aplicación Google Apps Script que nos proporcionan los servicios de

Google G-suite.

Los documentos de Google Apps Scripts se crean y se gestionan mediante Google Drive, es

por esto por lo que para crear el servidor se deberá dirigir al entorno de trabajo de Google

Drive accediendo mediante la dirección URL “www.drive.google.com”.

Figura 47: Ingreso al entorno de trabajo Google Drive.

Una vez se haya ingresado al entorno de trabajo mediante las credenciales de la dirección de

correo electrónico de quien será propietario del servidor montado en Google Apps Script, se

deberá ingresar a la opción “Nuevo” que se encuentra en el panel izquierdo del entorno de

trabajo Google Drive.

56

Figura 48: Creación documento Google Sheets en entorno de trabajo Google Drive.

Una vez se haya seleccionada la opción “Nuevo” del panel lateral, se desplegará un nuevo

menú con las distintas opciones para crear los diversos documentos con los que se cuenta en

G-suite, ahí se deberá ir a la opción “Más” que volverá a desplegar un submenú, es ahí donde

se deberá seleccionar la opción de “Google Apps Script” para crear el documento que se

encargará de procesar y publicar la interfaz web.

Figura 49: Creación documento Google Apps Script.

57

4.3.2 Publicación y ejecución del servidor

Para poder publicar y poner en ejecución el servidor web que se encargará de procesar todo

el código necesario para ejecutar la interfaz web que administrará la base de datos, será

necesario ir a la ventana de “Implementar como aplicación web”. Para esto se deberá acceder

mediante la opción “Publicar” ubicada en el panel superior del documento Google Apps Script.

Figura 50: abrir ventana para ejecutar documento Google Apps Script como servidor web.

Al seleccionar la opción “Implementar como aplicación web” del menú “publicar”, nos abrirá

una nueva ventana con las opciones disponible en la implementación del documento Google

Apps Script como servidor para ejecutar la interfaz web.

La ventana “Implementar” contará con tres secciones en las cuales se podrá configurar la

versión del proyecto que se ejecutará y los privilegios de acceso a la interfaz web. Para poder

publicar y ejecutar el documento Google Apps Script como servidor de la interfaz web, se

deberá configurar cada una de las secciones que se muestra en la figura 51.

Figura 51: Implementar documento Google Apps Script como servidor web.

58

Project versión

Esta sección se encarga de gestionar la versión del proyecto que ejecutará el servidor, de esta

manera el servidor ejecutará siempre la última versión del proyecto, pero con la posibilidad de

volver a una versión más antigua de así requerirlo por algún error generado por la última

versión publicada.

Cada vez que se realice algún tipo de cambio en el proyecto será necesario publicar una nueva

versión que incluya los últimos cambios realizados. En el caso de realizar cambios en el código

del proyecto sin publicar una nueva versión, estos no serán implementados en la versión

publicada que se está ejecutando en los servidores.

Esta sección cuenta con un menú selector de versión, en el cual se desplegará un listado con

todas las versiones disponibles del proyecto, es ahí donde se podrá cambiar la versión del

proyecto que se ejecutará en el servidor que proporciona el documento de Google Apps Script

por una versión anterior o por una nueva versión.

Para poder crear y publicar una nueva versión del proyecto, será necesario seleccionar la

opción “Nuevo” en el menú de versiones de la sección “Project versión”. Una vez se haya

seleccionado la opción para crear una nueva versión, esta desplegará una caja de texto con

la frase “Describe what has changed…”, ahí se deberá describir los cambios que se están

realizando en la nueva versión del proyecto.

Execute the app as

Esta sección se encarga de indicar bajo que sesión de usuario de los servicios G-suite se

ejecutaran todas las consultas desde la interfaz web (Front-end) al servidor (Back-end).

Existen las siguientes dos opciones para configurar el usuario que ejecutara las consultas al

servidor:

• Me (Creador del documento): En esta opción se indica que cualquier persona que

use la interfaz web, al realizar cualquier consulta al servidor, estas se realizaran como

si fueran de sesión de los servicios G-suite (Gmail) del propietario del documento.

59

• User accessing the web app (Cualquier usuario): En esta opción se indica que las

personas que usen la interfaz web, al realizar cualquier consulta al servidor, estás se

realizaran con su propia sesión de los servicios G-suite (Gmail).

Para configurar correctamente esta sección es importante entender que para usar

correctamente la interfaz web, se requiere que cada usuario lo haga mediante su propia sesión

de los servicios G-suite (Gmail), debido a que de esta manera a quienes no se les haya

asignado los permisos de colaborador en la basa de datos como lo indica el subcapítulo 3.5.3,

no podrá realizar ningún tipo de modificación en la base de datos mediante la interfaz web.

Es por esto que esta opción deberá estar siempre en “User accessing the web app” como lo

indica la figura 51. De estar en la opción “Me”, existe el riesgo de que cualquier persona pueda

realizar cambios en la base de datos bajo los privilegios de la sesión del propietario del

documento.

Es importante tener en consideración que posteriormente cuando un usuario desee usar la

interfaz web por primera vez, se deberá autorizar el uso del servidor ejecutado por el

documento Google Apps de la forma que lo detalla el subcapítulo 4.3.4.

Who has Access to the app

Esta sección se encarga de controlar quien podrá tener acceso a la interfaz web que se ejecuta

en el servidor del documento Google Apps Script.

Al seleccionar la opción “User accessing the web app” en la sesión anterior, esta sección nos

desplegara las siguientes dos opciones:

• Only myself (Solo yo): En esta opción solo el propietario del documento podrá tener

acceso a la interfaz web mediante su sesión G-suite (Gmail).

• Anyone (Cualquier persona): En este modo cualquier persona con una sesión de

los servicios G-suite (Gmail) podrá tener acceso a la interfaz web.

60

Es importante que esta opción siempre se Encuentra en la versión publicada como “Anyone”

como se indica en la figura 51, debido a que será la única forma en la que podrán ingresar los

colabores a la interfaz web.

Publicación y habilitación del servidor

Ya descrita la nueva versión y configurados correctamente los permisos con los cuales se

ejecutara el servidor, estará listo para ser publicado el documento, para esto se deberá

publicar mediante la opción “Deploy” ubicado en la parte inferior en color azul como se indica

en la figura 51, el cual, de haber cumplido con todos los requerimientos para la publicación de

la nueva versión del proyecto y/o publicación, se desplegara una nueva ventana emergente

notificando que los cambios se realizaron con éxito.

4.3.3 Acceder a la interfaz web

El ingreso a la interfaz web se deber realizar mediante cualquier navegador de internet

ingresando la dirección URL generada por el documento Google Apps Script al momento de

publicar el proyecto. Para esto se deberá obtener la dirección URL de la interfaz web en la

ventana “Implementar como aplicación web” ubicada en la pestaña “Publicar” de la barra de

opciones del documento Google Apps Script.

Figura 52: abrir ventana “Implementar como aplicación web”.

Esta vez al abrir la ventana “Implementar como aplicación web” tendrá un nuevo recuadro en

la parte superior con nuevas opciones como lo indica la figura 53.

61

Figura 53: Obtener dirección URL para abrir la interfaz web.

Disable web app

Esta opción tiene la única finalidad de deshabilitar el servidor que se encarga de ejecutar la

interfaz web. En el caso de deshabilitar el servidor, este podrá ser habilitado en cualquier

momento siguiendo los mismos pasos que se utilizaron en el subcapítulo 4.3.2 para publicar

y habilitar el servidor.

Current web app URL

Esta casilla nos proporcionara la dirección URL que se necesitara para acceder a la interfaz

web. Es esta misma la que deberán utilizar todos los usuarios para acceder a la interfaz web.

Es importante tener en consideración de que esta dirección URL cambia cada vez que se

publique una nueva versión del proyecto, por lo que cada vez que se publique una nueva

versión de este, la nueva dirección URL deberá ser distribuida a todos los usuarios que

requieran tener acceso a la interfaz web.

Latest code

Esta opción permite acceder a la interfaz web mediante el modo desarrollador, el cual otorga

la posibilidad de ver la interfaz web con los cambios que se han realizado en el código fuente

pero que aún no han sido publicadas en la última versión del proyecto.

62

4.3.4 Autorización al usar la interfaz web por primera vez

Cada vez que un usuario ingrese por primera vez a la interfaz web, el documento Apps script

solicitara que este autorice el uso de la aplicación mediante su sesión G-suite (Gmail).

Esta autorización aparecerá en el navegador web y no permitirá que el usuario ingrese a la

interfaz web hasta que no acepte el uso de esta con su sesión G-suite. Para esto el usuario

deberá revisar los permisos a los cuales está sometido el uso de la interfaz web y para eso el

usuario deberá seleccionar la opción “Review permissions” que se encuentra en color azul en

la parte inferior de la ventana como se indica en la figura 54.

Figura 54: Revisión de permisos.

Una vez se haya seleccionado la opción para revisar los permisos, la ventana de la figura

anterior deberá cambiar por una nueva ventana, en la cual el usuario deberá seleccionar con

que sesión G-suite desea otorgar los permisos de acceso para usar la interfaz web como se

indica en la figura 55.

Figura 55: Seleccionar sesión con la que se desea autorizar.

63

Al seleccionar la sesión con la cual el usuario desea autorizar el uso de la aplicación web, la

ventana de la figura anterior cambiara nuevamente por una nueva ventana. Esta ventana nos

proporcionara un mensaje avisando que la aplicación aún no se ha verificado, por lo que se

deberá seleccionar la opción “Configuración avanzada” para poder verificar la interfaz web

como se indica en la figura 56.

Figura 56: Abrir configuraciones avanzadas.

Una vez se haya seleccionado las opciones “Configuración avanzada” de la verificación de la

interfaz web, este desplegara una sección en la parte inferior de la ventana vista en la figura

anterior. Es importante que el usuario seleccione la opción “Ir a la interfaz (no seguro)” como

se indica en la figura 57, para autorizar el uso de la aplicación web.

Figura 57: Ir a los permisos de la interfaz web.

64

Al seleccionar la opción de “Ir a la interfaz (no seguro)” de la ventana anterior, se nos

desplegara una nueva ventana, en la cual el usuario podrá revisar cuales son las acciones y

permisos que está concediendo desde su sesión G-suite a la interfaz web. Para autorizar el

uso de la interfaz web con la sesión que el usuario haya seleccionado anteriormente deberá

seleccionar la opción “Permitir” de color azul que se encuentra en la parte inferior de la ventana

como se indica en la figura 58.

Figura 58: Autorizar permisos de acceso a la interfaz web.

4.4 Implementación del código fuente de la interfaz web

4.4.1 Creación de archivos

Archivos HTML

Los archivos con formato HTML serán los encargados de mostrar y recopilar toda la

información necesaria para la capa de presentación. Estos archivos serán los que recopilarán

toda la información que se requiere almacenar en la base de datos pero que aún se requiere

procesar por la lógica de negocio.

Para crear un archivo formato HTML, será necesario dirigirse a la pestaña “Archivos” ubicada

en la barra superior del documento Google Apps Script. Esta pestaña abrirá un nuevo menú

desplegable en el cual se deberá posicionar el puntero del mouse para abrir así abrir el nuevo

65

submenú con el cual se podrá crear el archivo con formato HTML, seleccionando la opción

“Archivo HTML” tal como se indica en la figura 59.

Figura 59: Creación de archivo HTML.

Los archivos HTML que hayan sido creados deberán aparecer en la barra lateral del

documento Google Apps Script con la extensión correspondiente que en este caso debiera

ser “HTML”.

Archivos de secuencia de comandos

Los archivos con formato de secuencia de comandos (gs), serán los encargados de

proporcionar toda la funcionalidad de la lógica de negocios. Estos archivos serán los que

procesaran toda la información que se recopila por la capa de presentación para

posteriormente almacenarla en la base de datos.

Para crear un archivo con formato secuencia de comandos (gs), será necesario dirigirse a la

pestaña “Archivos” ubicada en la barra superior del documento Google Apps Script. Esta

pestaña abrirá un nuevo menú desplegable en el cual se deberá posicionar el puntero del

mouse para abrir así abrir el nuevo submenú con el cual se podrá crear el archivo con formato

de secuencia de comandos (gs) seleccionando la opción “Archivo de secuencia de comandos”

tal como lo indica la figura 60.

66

Figura 60: Creación de archivo de secuencia de comandos (gs).

Los archivos de secuencia de comandos (gs) que hayan sido creados deberán aparecer en la

barra lateral del documento Google Apps Script con la extensión correspondiente que en este

caso debiera ser “gs”.

4.4.2 implementación del código fuente de la capa de presentación

El código fuente que compone la capa de presentación (front-end), será el encargado de dar

forma y estructura visual con la cual el usuario interactuará con la interfaz web mediante su

navegador web. Para poder implementar el código fuente de la capa de presentación es

importante que el usuario haga uso de archivos HTML.

El documento Google Apps Script deberá contar con los siguientes archivos HTML:

• index: Este archivo se encargará de contener toda la estructura visual de la

interfaz web. Además, este archivo será el encargado de contener las

secciones de la interfaz web que se detallan en la figura 43. El código fuente

que se deberá implementar para crear este archivo HTML, deberá ser el del

anexo 1.1.1.

• css: Este archivo tendrá la función de asignar el diseño a toda la Interfaz web. El

código fuente que se deberá implementar para crear este archivo HTML, deberá ser

el del anexo 1.1.2.

67

• js-index: Este archivo se encargará de proporcionar toda la funcionalidad que

requiere para el archivo “index.html”. Este archivo funcionara mostrando en la “Zona

de contenido” los diversos formularios seleccionados en la sección del “menú “. El

código fuente que se deberá implementar para crear este archivo HTML, deberá ser

el del anexo 1.1.3.

• insertar-CGP: Este archivo tendrá la función de contener el formulario que recopilará

toda la información necesaria para crear los registros en la tabla “CGP”. El código

fuente que se deberá implementar para crear este archivo HTML, deberá ser el del

anexo 1.1.4.

• insertar-CSP: Este archivo tendrá la función de contener el formulario que recopilará

toda la información necesaria para crear los registros en la tabla “CSP”. El código

fuente que se deberá implementar para crear este archivo HTML, deberá ser el del

anexo 1.1.5.

• insertar-Partidas: Este archivo tendrá la función de contener el formulario que

recopilará toda la información necesaria para crear los registros en la tabla “Partidas”.

El código fuente que se deberá implementar para crear este archivo HTML, deberá

ser el del anexo 1.1.6.

• modificar-CGP: Este archivo tendrá la función de contener el formulario que se

encarga de recopilará toda la información necesaria para modificar o eliminar los

registros de la tabla “CGP”. El código fuente que se deberá implementar para crear

este archivo HTML, deberá ser el del anexo 1.1.7.

• modificar-CSP: Este archivo tendrá la función de contener el formulario que se

encarga de recopilará toda la información necesaria para modificar o eliminar los

registros de la tabla “CSP”. El código fuente que se deberá implementar para crear

este archivo HTML, deberá ser el del anexo 1.1.8.

• modificar-Partidas: Este archivo tendrá la función de contener el formulario que se

encarga de recopilará toda la información necesaria para modificar o eliminar los

registros de la tabla “Partidas”. El código fuente que se deberá implementar para crear

este archivo HTML, deberá ser el del anexo 1.1.9.

68

• insertar-CGR: Este archivo tendrá la función de contener el formulario que recopilará

toda la información necesaria para crear los registros en la tabla “CGR”. El código

fuente que se deberá implementar para crear este archivo HTML, deberá ser el del

anexo 1.1.10.

• insertar-CSR: Este archivo tendrá la función de contener el formulario que recopilará

toda la información necesaria para crear los registros en la tabla “CSR”. El código

fuente que se deberá implementar para crear este archivo HTML, deberá ser el del

anexo 1.1.11.

• insertar-Recursos: Este archivo tendrá la función de contener el formulario que

recopilará toda la información necesaria para crear los registros en la tabla “Recursos”.

El código fuente que se deberá implementar para crear este archivo HTML, deberá

ser el del anexo 1.1.12.

• modificar-CGR: Este archivo tendrá la función de contener el formulario que se

encarga de recopilará toda la información necesaria para modificar o eliminar los

registros de la tabla “CGR”. El código fuente que se deberá implementar para crear

este archivo HTML, deberá ser el del anexo 1.1.13.

• modificar-CSR: Este archivo tendrá la función de contener el formulario que se

encarga de recopilará toda la información necesaria para modificar o eliminar los

registros de la tabla “CSR”. El código fuente que se deberá implementar para crear

este archivo HTML, deberá ser el del anexo 1.1.14.

• modificar-Recursos: Este archivo tendrá la función de contener el formulario que se

encarga de recopilará toda la información necesaria para modificar o eliminar los

registros de la tabla “Recursos”. El código fuente que se deberá implementar para

crear este archivo HTML, deberá ser el del anexo 1.1.15.

• js-utilidades: Este archivo se encargará de proporcionar toda la funcionalidad que

requiere para el archivo “index.html”. Este archivo funcionara mostrando en la “Zona

de contenido” los diversos formularios seleccionados en la sección del “menú “. El

código fuente que se deberá implementar para crear este archivo HTML, deberá ser

el del anexo 1.1.16.

69

4.4.3 implementación código fuente de la capa lógica de negocio

El código fuente que compone la capa de lógica de negocio (back-end), será la encargada de

procesar todas las acciones requeridas para efectuar las acciones solicitada por los diversos

formularios. Para poder implementar el código fuente de la capa lógica de negocio es

importante que el usuario haga uso de los archivos de secuencia de comandos (gs).

El documento Google Apps Script deberá contar con los siguientes archivos de secuencia de

comandos (gs):

• Código: Este archivo tendrá las configuraciones mínimas que se requiere para

ejecutar un documento Google Apps Script como servidor web. El código fuente que

se deberá implementar para crear este archivo de secuencia de comandos (gs), se

encontrara en el anexo 1.2.1.

• Set: Este archivo tendrá la función de procesar, validar y añadir a la base de datos

cada uno de los registros que el usuario realizo mediante los diversos formularios

HTML disponibles en la capa de presentación. El código fuente que se deberá

implementar para crear este archivo de secuencia de comandos (gs), se encontrara

en el anexo 1.2.2.

• Get: Este archivo tendrá la función de extraer los registros de la base de datos

necesarios para ejecutar los formularios HTML de la capa de presentación que lo

requieran. El código fuente que se deberá implementar para crear este archivo de

secuencia de comandos (gs), se encontrara en el anexo 1.2.3.

• Update: Este archivo tendrá la función de procesar, validar y modificar los registros

de la base de datos mediante los diversos formularios HTML disponibles en la capa

de presentación. El código fuente que se deberá implementar para crear este archivo

de secuencia de comandos (gs), se encontrara en el anexo 1.2.4.

• Delete: Este archivo tendrá la función de procesar, validar y eliminar los registros de

la base de datos mediante los diversos formularios HTML disponibles en la capa de

presentación. El código fuente que se deberá implementar para crear este archivo de

secuencia de comandos (gs), se encontrara en el anexo 1.2.5.

70

4.5 Uso de la interfaz web

4.5.1 Vista general

Tal como se explicó en el subcapítulo 4.2.1, la página principal de la interfaz web constara de

4 secciones principales, con las cuales el usuario deberá interactuar para lograr gestionar la

base de datos.

El usuario podrá utilizar cualquier tipo de navegador web disponible en el mercado, aunque se

recomienda siempre dar prioridad a los navegadores de Google Chrome y Mozilla Firefox

debido a su confiabilidad y testeos en la fase de desarrollo de la interfaz web con estos

navegadores. En el caso de utilizar otro navegador para acceder a la interfaz web, se deberá

corroborar siempre que se tenga iniciada la sesión de su cuenta G-suite para poder acceder

a la interfaz web.

Figura 61: Interfaz web con resolución mayor a 900 pixeles de ancho.

En la figura 61. se aprecia como se organizan las 4 secciones de la interfaz web cuando se

utiliza un dispositivo con una resolución mayor a 900 pixeles de ancho en su monitor.

En el caso de utilizar un dispositivo con una resolución menor a los 900 pixeles de ancho como

Tablet, móviles, etc. Las secciones de la interfaz web se alinearan de forma vertical para

permitir el uso en estos dispositivos como se indica en la figura 62.

71

Figura 62: Interfaz web con resolución menor a 900 pixeles de ancho.

4.5.2 Uso del menú

Figura 63: Buscador de formularios.

El buscador de la figura 63, cuenta con las siguientes opciones para que el usuario Seleccione

el formulario adecuado:

• Seleccione el tipo: Aquí el usuario deberá seleccionar con que tipos de tablas desea

trabajar. En función de lo que escoja, se irán adaptando las siguientes opciones

desplegables.

72

• Seleccione la acción: Una vez el usuario haya seleccionado con qué tipo de tablas

desea trabajar, ahora se deberá indicar que acción se requiere efectuar sobre el tipo

seleccionado anteriormente. Las acciones con las cuales se cuenta son las de añadir

registros y modificar registros de la base de datos.

• Seleccione la categoría: Ya con el tipo y la acción seleccionadas, el usuario deberá

seleccionar con que tabla desea trabajar. Por ejemplo, si el usuario selecciona el tipo

Partidas, la acción añadir, deberá escoges a cuál de las tablas “CGP”, “CSP” y

“Partidas” desea añadir el registro.

En la figura 64, se grafica la estructura y funcionamiento que tiene el buscador a la hora de

seleccionar el formulario adecuado para realizar la acción que el usuario desea realizar sobre

la base de datos.

Figura 64: Estructura de funcionamiento del buscador.

4.5.3 Uso de formularios para añadir registros a la base de datos

Formulario para añadir registros de la categoría “CGP”

Este formulario tendrá la función de recopilar toda la información necesaria para crear los

registros que deberán ir en la tabla categoría Grupo Partidas (CGP), los cuales servirán para

segmentar los registros de la tabla Partida por los grupos que segmentan en primera instancia

73

una obra de construcción. Por ejemplo, algunos de los grupos que componen esta categoría

son: obras preliminares, obra gruesa, terminaciones, instalaciones domiciliarias, etc.

Figura 65: Formulario para añadir registros en la tabla “CGP”.

Para que el usuario pueda añadir los registros en la tabla CGP, este lo deberá realizar

mediante el formulario que se indica en la figura 65. Este formulario se deberá desplegar en

la zona de contenidos mediante el buscador del panel lateral como se indica en el subcapítulo

4.5.2. Ya teniendo desplegado el formulario, el usuario podrá proporcionar la información

necesaria mediante este los siguientes campos:

• Ingrese la descripción de la categoría Grupo Partidas (CGP): Para este campo el

usuario deberá ingresar la descripción del grupo que desea registrar.

Una vez el registro haya sido añadido a la base de datos, la interfaz web deberá desplegar

una ventana emergente, la cual confirmara que la operación se realizó con éxito. En el caso

de que no se despliegue esta ventana emergente de confirmación, se deberá corroborar la

sesión G-suite del usuario de la que se está intentando añadir el registro y si esta cuenta con

los permisos de colaborador necesarios para añadir registros en la base de datos.

Formulario para crear registros de la categoría “CSP”

Este formulario tendrá la función de recopilar toda la información necesaria para crear los

registros que deberán ir en la tabla categoría Subgrupo Partidas (CSP), los cuales servirán

para segmentar los registros de la tabla Partidas y los registros de la tabla CGP. En este

formulario deberán ir todos los subgrupos que componen a los grupos ya registrados en la

base de datos. Por ejemplo, los subgrupos que componen el grupo de “Obra gruesa” son los

siguientes: movimiento de tierra, fundaciones, sobrecimientos, radieres, albañilería, etc.

74

Figura 66: Formulario para añadir registros en la tabla “CSP”.

Para que el usuario pueda añadir los registros en la tabla CSP, este lo deberá realizar

mediante el formulario que se indica en la figura 66. Este formulario se deberá desplegar en

la zona de contenidos mediante el buscador del panel lateral como se indica claramente en el

subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá proporcionar la

información necesaria mediante este los siguientes campos:

• Seleccione un grupo (CGP): Para este campo el usuario deberá seleccionar a que

grupo de los registros de la tabla CGP pertenecerá el subgrupo que se desea registrar.

• Ingrese la descripción de la categoría subgrupo (CSP): Para este campo el

usuario deberá ingresar la descripción del subgrupo que desea registrar.

Una vez el registro haya sido añadido a la base de datos, la interfaz web deberá desplegar

una ventana emergente, la cual confirmara que la operación se realizó con éxito. En el caso

de que no se despliegue esta ventana emergente de confirmación, se deberá corroborar la

sesión G-suite del usuario que está intentando añadir el registro y si esta tiene los permisos

de colaborador necesarios para añadir registros en la base de datos.

Formulario para insertar registros en la tabla Partidas

Este formulario tendrá la función de recopilar toda la información necesaria para crear los

registros que deberán ir en la tabla Partidas (Partidas), los cuales servirán para generar la

documentos técnicos y económicos requerida por el Programa de Autoconstrucción

Colaborativa de la ONG Vivienda Local. En este formulario deberán ir todas las partidas que

componen a una obra de construcción.

75

Para que el usuario pueda añadir los registros en la tabla Partidas, este lo deberá realizar

mediante el formulario que se indica en la figura 67. Este formulario se deberá desplegar en

la zona de contenidos mediante el buscador del panel lateral como se indica en el subcapítulo

4.5.2. Ya teniendo desplegado el formulario, el usuario podrá proporcionar la información

necesaria para crear el registro mediante los siguientes campos:

Figura 67: Formulario para añadir registros en la tabla “Partidas”.

• Seleccione un grupo (CGP): Para este campo el usuario deberá seleccionar a que

grupo de los registros de la tabla CGP pertenecerá la partida que se desea registrar.

• Seleccione un subgrupo (CSP): Para este campo el usuario deberá seleccionar a

que subgrupo de los registros de la tabla CSP pertenecerá la partida que se desea

registrar.

• Ingrese la descripción de la partida: Para este campo el usuario deberá ingresar la

descripción de la partida que desea registrar.

• Ingrese las especificaciones técnicas de la partida: Para este campo el usuario

deberá ingresar la especificación técnica que tendrá la partida que se desea registrar.

76

Este será el campo que luego se utilizara para generar las especificaciones técnicas

de los proyectos de Autoconstrucción Colaborativa de la ONG Vivienda local mediante

la aplicación web.

• Ingrese la unidad de medida de la partida: Para este campo el usuario deberá

ingresar la unidad con la cual se cubicara y se confeccionara el análisis de precio

unitario de la partida. En el caso de existir alguna discrepancia entre la unidad

ingresada en este campo y la utilizada en la confección del análisis de precio unitario,

surgirán errores graves al momento de generar el presupuesto y las listas de compra

de los proyectos de Autoconstrucción Colaborativa de la ONG Vivienda local mediante

la aplicación web.

• Ingrese el rendimiento de la partida: Para este campo el usuario deberá ingresar el

rendimiento que se tiene para ejecutar la partida que se desea registrar. Es importante

tener en consideración que el rendimiento que se calcula para este campo concuerde

con la unidad de medida del campo anterior. Además, este campo tendrá la función

de proporcionar los documentos de plazos de ejecución de los proyectos de

Autoconstrucción Colaborativa de la ONG Vivienda local mediante la aplicación web.

• Unidad de rendimiento: Para este campo el usuario deberá seleccionar una de las

cuatro opciones generadas por el formulario sobre la unidad del rendimiento ingresada

en el campo anterior. Este campo servirá para asignar la unidad en la que se generan

los plazos de ejecución de cada una de las partidas.

• Análisis de precio unitario: Para esta tabla el usuario deberá confeccionar el análisis

de precio unitario de la partida que desea registrar. Para esto, el análisis de precio

unitario deberá tener total coherencia con el contenido insertado en los campos

anteriores del presente formulario. Para poder confeccionar correctamente el análisis

de precio unitario, el usuario deberá añadir los recursos entendiendo los siguientes

subcampos:

o Grupo: Para este campo el usuario deberá seleccionar a que grupo (CGR)

pertenece el recurso que desea seleccionar para confeccionar el análisis de

precio unitario.

77

o Subgrupo: Para este campo el usuario deberá seleccionar el subgrupo (CSR)

al cual pertenecerá el recurso que desea seleccionar para confeccionar el

análisis de precio unitario.

o Recurso: El usuario deberá seleccionar el recurso que desea utilizar para

confeccionar el análisis de precio unitario. Una vez se seleccione el recurso,

de forma automática se autocompletarán los subcampos de “Unidad” y

“Precio” de la tabla según los datos con los cuales se registró el recurso.

o Unidad: Este campo se autocompletara de forma automática una vez el

usuario haya seleccionado un recurso. Este campo indicara la unidad

comercial con la cual se le asigno el precio unitario. Por ejemplo: Caja, kilo,

bolsa, ml, m2, m3, unidad, etc.

o Cantidad: El usuario deberá indicar el consumo que se tendrá sobre el

recurso para la ejecución de una unidad de la partida a registrar. Por ejemplo:

si una caja de cerámica tiene un rendimiento de 1,44 [m2] y queremos calcular

el consumo de esta caja para colocar 1 [m2] de cerámica, el consumo lo

deberemos calcular como 1[m2]/1,44[m2].

o Precio unitario: Este campo se autocompletara de forma automática una vez

el usuario haya seleccionado un recurso. Este campo indicara el precio

comercial con el cual se adquirió o contratá el recurso.

o Total: Este campo se autocompletara de forma automática una vez el usuario

haya ingrese el consumo en el campo “Cantidad”, multiplicando el precio

unitario del recurso por su consumo requerido por el análisis de precio

unitario.

Una vez el registro haya sido añadido a la base de datos, la interfaz web deberá desplegar

una ventana emergente, la cual confirmara que la operación se realizó con éxito. En el caso

de que no se despliegue esta ventana emergente de confirmación, se deberá corroborar la

sesión G-suite del usuario de la que se está intentando añadir el registro y si esta tiene los

permisos de colaborador necesarios para añadir registros en la base de datos.

78

Formulario para insertar registros en la tabla CGR

Este formulario tendrá la función de recopilar toda la información necesaria para crear los

registros que deberán ir en la tabla categoría Grupo Recursos (CGR), los cuales servirán para

segmentar los registros de la tabla “Recurso”, disponibles en una obra de construcción. Por

ejemplo, algunos de los grupos que componen esta categoría son: Materiales, mano de obra,

máquinas y equipos.

Figura 68: Formulario para añadir registros en la tabla “CGR”.

Para que el usuario pueda añadir los registros en la tabla CGR, este lo deberá realizar

mediante el formulario que se indica en la figura 68. Este formulario se deberá desplegar en

la zona de contenidos mediante el buscador del panel lateral como se indica claramente en el

subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá proporcionar la

información necesaria mediante este los siguientes campos:

• Ingrese la descripción de la categoría Grupo Recursos (CGR): Para este campo

el usuario deberá ingresar la descripción del grupo que desea registrar.

Una vez el registro haya sido añadido a la base de datos, la interfaz web deberá desplegar

una ventana emergente, la cual confirmara que la operación se realizó con éxito. En el caso

de que no se despliegue la ventana emergente la cual confirma la operación, se deberá

corroborar la sesión del servicio G-suite desde la que se está intentando añadir el registro y si

esta tiene los permisos de colaborador necesarios para añadir registros en la base de datos.

Formulario para insertar registros en la tabla CSR

Este formulario tendrá la función de recopilar toda la información necesaria para crear los

registros que deberán ir en la tabla categoría Subgrupo Recursos (CSR), los cuales servirán

79

para segmentar los registros de la tabla Recursos y los registros de la tabla CGR. En este

formulario deberán ir todos los subgrupos que componen a los grupos ya registrados en la

base de datos. Por ejemplo, los subgrupos que componen el grupo de “Materiales” son los

siguientes: maderas, hormigones, fierros, etc.

Figura 69: Formulario para añadir registros en la tabla “CSR”.

Para que el usuario pueda añadir los registros en la tabla CSR, este lo deberá realizar

mediante el formulario que se indica en la figura 69. Este formulario se deberá desplegar en

la zona de contenidos mediante el buscador del panel lateral como se indica claramente en el

subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá proporcionar la

información necesaria mediante los siguientes campos:

• Seleccione un grupo (CGR): Para este campo el usuario deberá seleccionar a que

grupo de los registros de la tabla CGR pertenecerá el subgrupo que se desea registrar.

• Ingrese la descripción de la categoría subgrupo (CSR): Para este campo el usuario

deberá ingresar la descripción del subgrupo que desea registrar.

Una vez el registro haya sido añadido a la base de datos, la interfaz web deberá desplegar

una ventana emergente, la cual confirmara que la operación se realizó con éxito. En el caso

de que no se despliegue esta ventana emergente de confirmación, se deberá corroborar la

sesión G-suite del usuario de la que se está intentando añadir el registro y si esta tiene los

permisos de colaborador necesarios para añadir registros en la base de datos.

80

Formulario para insertar registros en la tabla Recursos

Este formulario tendrá la función de recopilar toda la información necesaria para crear los

registros que deberán ir en la tabla Recursos (Recursos), los cuales servirán para para generar

el análisis de precio unitario de las partidas que se desee registrar. En este formulario deberán

ir todos los recursos que se encuentran disponibles en la ejecución de una obra de

construcción.

Figura 70: Formulario para añadir registros en la tabla “Recursos”.

Para que el usuario pueda añadir los registros en la tabla Recursos, este lo deberá realizar

mediante el formulario que se indica en la figura 70. Este formulario se deberá desplegar en

la zona de contenidos mediante el buscador del panel lateral como se indica claramente en el

subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá proporcionar la

información necesaria mediante los siguientes campos:

• Seleccione un grupo (CGR): Para este campo el usuario deberá seleccionar a que

grupo de los registros de la tabla CGR pertenecerá el recurso que se desea registrar.

• Seleccione un subgrupo (CSR): Para este campo el usuario deberá seleccionar a

que subgrupo de los registros de la tabla CSR pertenecerá el recurso que se desea

registrar.

81

• Ingrese la descripción del recurso: Para este campo el usuario deberá ingresar la

descripción del recurso que desea registrar.

• Ingrese la unidad: Para este campo el usuario deberá ingresar la unidad comercial

con la cual se adquiere o contrata el recurso que se desea registrar.

• Ingrese el precio unitario: Para este campo el usuario deberá ingresar el precio

unitario con el cual se adquiere o contrata el recurso que se desea registrar.

Una vez el registro haya sido añadido a la base de datos, la interfaz web deberá desplegar

una ventana emergente, la cual confirmara que la operación se realizó con éxito. En el caso

de que no se despliegue esta ventana emergente de confirmación, se deberá corroborar la

sesión G-suite del usuario de la que se está intentando añadir el registro y si esta tiene los

permisos de colaborador necesarios para añadir registros en la base de datos.

4.5.4 Uso de formularios para modificar o eliminar registros de la base de datos

Formulario para modificar o eliminar registros de la tabla CGP

Este formulario tendrá la función de modificar y eliminar los registros de la tabla categoría

Grupos Partidas (CGP). Este formulario constará de dos partes, la primera parte servirá para

seleccionar el registro y la segunda parte para modificar o eliminar el registro selecciona en la

parte anterior.

Figura 71: Formulario para seleccionar el registro en la tabla “CGP” que se desea modificar.

Para que el usuario pueda modificar o eliminar un registro de la tabla CGP, este lo deberá

realizar mediante el formulario que se indica en la figura 71. Este formulario se deberá

desplegar en la zona de contenidos mediante el buscador del panel lateral como se indica

82

claramente en el subcapítulo 4.5.2 Ya teniendo desplegado el formulario, el usuario podrá

realizar la modificación necesaria mediante los siguientes campos:

• Seleccione el grupo que se desea modificar y/o eliminar: Para este campo el

usuario deberá seleccionar el registro de la tabla categoría Grupo Partidas (CGP) que

se desea modificar y/o eliminar.

Una vez se haya seleccionado el registro que se desea modificar o eliminar, el formulario de

la figura 71, cambiara por el formulario de la siguiente figura.

Figura 72: Formulario para modificar o eliminar registros de la tabla “CGP”.

Ya con el nuevo formulario desplegado, el usuario podrá modificar o eliminar el registro que

anteriormente selecciono. Para esto el usuario constara con los siguientes campos que se

aprecian en la figura 72.

• Identificador (ID) asignado al registro: Este campo indicara el identificar (ID) que

se le asigno al registro al momento de su creación. Este elemento deberá ser cargado,

de esta manera se obtiene el identificado que se le asignado sin necesidad de

asignarle un nuevo identificador cada vez que se modifique el registro.

• Descripción del Grupo: En este campo el usuario podrá modificar la descripción del

registro cargado por el formulario. Si solo se requiere modificar el registro, el formulario

no permitirá que se guarden los cambios si este campo se encuentra vacío.

Una vez el registro haya sido modificado o eliminado de la base de datos, la interfaz web

deberá desplegar una ventana emergente, la cual confirmara que la operación se realizó con

éxito. En el caso de que no se despliegue esta ventana emergente de confirmación, se deberá

83

corroborar la sesión G-suite del usuario y si está a su vez tiene los permisos de colaborador

necesarios para modificar o eliminar los registros en la base de datos.

Formulario para modificar o eliminar registros de la tabla CSP

Este formulario tendrá la función de modificar y eliminar los registros de la tabla categoría

Subgrupos Partidas (CSP). El formulario constara de dos partes, la primera parte servirá para

seleccionar el registro y la segunda parte para modificar o eliminar el registro seleccionado en

la primera parte del formulario.

Figura 73: Formulario para seleccionar el registro en la tabla “CSP” que se desea modificar.

Para que el usuario pueda modificar o eliminar un registro de la tabla CSP, este lo deberá

realizar mediante el formulario que se indica en la figura 73. Este formulario se deberá

desplegar en la zona de contenidos mediante el buscador del panel lateral como se indica

claramente en el subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá

realizar la modificación necesaria mediante los siguientes campos:

• Seleccione el grupo (CGP) al cual pertenece el registro: Para este campo el

usuario deberá seleccionar el grupo de la tabla CGP al cual el registro pertenece.

• Seleccione el subgrupo (CSP) que se desea modificar o eliminar: Para este

campo el usuario deberá seleccionar que registro de la tabla CSP desea modificar o

eliminar.

Una vez se haya seleccionado el registro que desea modificar o eliminar, el formulario de la

figura 73, cambiara por el formulario de la siguiente figura.

84

Figura 74: Formulario para modificar o eliminar registros de la tabla “CSP”.

Ya con el nuevo formulario desplegado, el usuario podrá modificar o eliminar el registro que

anteriormente selecciono. Para esto el usuario constara con los siguientes campos que se

indican en la figura 74.

• Identificador (ID) asignado al registro: Este campo indicara el identificar (ID) que

se le asigno al registro al momento de su creación. Este elemento deberá ser cargado,

de esta manera se obtiene el identificado que se le ha asignado sin necesidad de

asignarle un nuevo identificador cada vez que se modifique el registro.

• Grupo al cual pertenecer el registro: En este campo el usuario podrá modificar el

grupo al cual pertenecerá el registro. Si solo se requiere modificar el registro, el

formulario no permitirá que se guarden los cambios si este campo se encuentra vacío.

• Descripción del Subgrupo: En este campo el usuario podrá modificar la descripción

del registro cargado por el formulario. Si solo se requiere modificar el registro, el

formulario no permitirá que se guarden los cambios si este campo se encuentra vacío.

Una vez el registro haya sido modificado o eliminado de la base de datos, la interfaz web

deberá desplegar una ventana emergente, la cual confirmara que la operación se realizó con

éxito. En el caso de que no se despliegue esta ventana emergente de confirmación, se deberá

corroborar la sesión G-suite del usuario y si está a su vez tiene los permisos de colaborador

necesarios para modificar o eliminar los registros en la base de datos.

85

Formulario para modificar o eliminar registros de la tabla Partidas

Este formulario tendrá la función de modificar y eliminar los registros de la tabla categoría

Partidas (Partidas). Este formulario constará de dos partes, la primera parte servirá para

seleccionar el registro y la segunda parte para modificar o eliminar el registro selecciona en la

primera parte del formulario.

Figura 75: Formulario para seleccionar el registro en la tabla “Partidas” que se desea

modificar.

Para que el usuario pueda modificar o eliminar un registro de la tabla Partidas, este lo deberá

realizar mediante el formulario que se indica en la figura 75. Este formulario se deberá

desplegar en la zona de contenidos mediante el buscador del panel lateral como se indica en

el subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá realizar la

modificación necesaria mediante los siguientes campos:

• Seleccione el grupo al cual pertenece el registro: Para este campo el usuario

deberá seleccionar el grupo de la tabla CGP al cual pertenece el registro.

• Seleccione el subgrupo al cual pertenece el registro: Para este campo el usuario

deberá seleccionar el subgrupo de la tabla CSP al cual pertenece el registro.

• Seleccione la partida que se desea modificar o eliminar: Para este campo el

usuario deberá seleccionar que registro de la tabla Partidas se desea modificar o

eliminar.

86

Una vez se haya seleccionado el registro que se desea modificar o eliminar, el formulario de

la figura 75, cambiara por el formulario de la siguiente figura.

Figura 76: Formulario para modificar o eliminar registros de la tabla “Partidas”.

Ya con el nuevo formulario desplegado, el usuario podrá modificar o eliminar el registro que

anteriormente selecciono. Para esto el usuario constara con los siguientes campos que se

aprecian en la figura 76.

• Identificador (ID) asignado al registro: Este campo indicara el identificar (ID) que

se le asigno al registro al momento de su creación. Este elemento deberá ser cargado,

87

de esta manera se obtiene el identificado que se le asignado sin necesidad de

asignarle un nuevo identificador cada vez que se modifique el registro.

• Grupo al cual pertenece el registro: En este campo el usuario podrá modificar el

grupo al cual pertenecerá el registro. Si solo se requiere modificar el registro, el

formulario no permitirá que se guarden los cambios si este campo se encuentra vacío.

• Subgrupo al cual pertenece el registro: En este campo el usuario podrá modificar

el subgrupo al cual pertenecerá el registro. Si solo se requiere modificar el registro, el

formulario no permitirá que se guarden los cambios si este campo se encuentra vacío.

• Descripción de la partida: En este campo el usuario podrá modificar la descripción

del registro cargado por el formulario. Si solo se requiere modificar el registro, el

formulario no permitirá que se guarden los cambios si este campo se encuentra vacío.

• Especificaciones técnicas: Para este campo el usuario podrá modificar la

especificación técnica de la partida. Este importante evitar que este campo este vacío

o incompleto, debido a que este campo será el que se utilizara para generar las

especificaciones técnicas de los proyectos de Autoconstrucción Colaborativa

mediante la aplicación web.

• Unidad de medición de la partida: Para este campo el usuario podrá modificar la

unidad con la cual se cubicara y se confeccionará el análisis de precio unitario de la

partida. En el caso de existir una discrepancia entre la unidad puesta en este campo

y la utilizada en la confección del análisis de precio unitario, este generara errores

graves al momento de generar el presupuesto y las listas de compra de materiales

mediante la aplicación web.

• Rendimiento de la partida: Para este campo el usuario podrá modificar el

rendimiento que se tiene para ejecutar la partida a modificar. Es importante tener en

consideración que el rendimiento que se calcula para este campo concuerde con la

unidad de medida del campo anterior. Además tendrá la función de proporcionar los

documentos de plazos de ejecución de los proyectos.

88

• Unidad de rendimiento: Para este campo el usuario podrá modificar la unidad del

rendimiento ingresado en el campo anterior. Este campo servirá para asignar la unidad

en la que se generan los plazos de ejecución de cada una de las partidas.

• Análisis de precio unitario: Para este campo el usuario podrá modificar el análisis

de precio unitario del registro que desea modificar, para esto el análisis de precio

unitario deberá tener total coherencia con el contenido de los campos. Para poder

confeccionar y/o modificar correctamente el análisis de precio unitario, el usuario

deberá añadir los recursos entendiendo los siguientes subcampos:

o Grupo: En este campo el usuario podrá seleccionar a que grupo (CGR)

pertenece el recurso que desea seleccionar para confeccionar el análisis de

precio unitario.

o Subgrupo: Para este campo el usuario deberá seleccionar el subgrupo (CSR)

al cual pertenecerá el recurso que desea seleccionar para confeccionar el

análisis de precio unitario.

o Recurso: El usuario deberá seleccionar el recurso que desea utilizar para

confeccionar el análisis de precio unitario. Una vez se seleccione el recurso,

este de forma automática autocompletara los subcampos de “Unidad” y

“Precio” según los datos con los cuales se registró el recurso.

o Unidad: Este campo se autocompletara de forma automática una vez el

usuario haya seleccionado un recurso. Este campo indicara la unidad

comercial con la cual se le asigno el precio unitario. Por ejemplo: Caja, kilo,

bolsa, ml, m2, m3, unidad, etc.

o Cantidad: El usuario deberá indicar el consumo que se tendrá sobre el

recurso para la ejecución de una unidad de la partida a registrar. Por ejemplo:

si una caja de cerámica tiene un rendimiento de 1,44 [m2] y queremos calcular

el consumo de esta caja para colocar 1 [m2] de cerámica, el consumo lo

deberemos calcular como 1[m2]/1,44[m2].

89

o Precio unitario: Este campo se autocompletara de forma automática una vez

el usuario haya seleccionado un recurso. Este indicara el precio comercial con

el cual se adquirió o contrato el recurso.

o Total: Este campo se autocompletara de forma automática una vez el usuario

haya ingresado el consumo en el campo “Cantidad”, multiplicando el precio

unitario del recurso por su consumo requerido por el análisis de precio

unitario.

Una vez el registro haya sido modificado o eliminado de la base de datos, la interfaz web

deberá desplegar una ventana emergente, la cual confirmara que la operación se realizó con

éxito. En el caso de que no se despliegue esta ventana emergente de confirmación, se deberá

corroborar la sesión G-suite del usuario y si está a su vez tiene los permisos de colaborador

necesarios para modificar o eliminar los registros en la base de datos.

Formulario para modificar o eliminar registros de la tabla CGR

Este formulario tendrá la función se modificar y eliminar los registros de la tabla categoría

Grupos Recursos (CGR). Este formulario constará de dos partes, la primera parte servirá para

seleccionar el registro y la segunda parte para modificar o eliminar el registro seleccionado en

la primera parte del formulario.

Figura 77: Formulario para seleccionar el registro en la tabla “CGR” que se desea modificar.

Para que el usuario pueda modificar o eliminar un registro de la tabla CGR, este lo deberá

realizar mediante el formulario que se indica en la figura 77. Este formulario se deberá

desplegar en la zona de contenidos mediante el buscador del panel lateral como se indica

claramente en el subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá

realizar la modificación necesaria mediante los siguientes campos:

90

• Seleccione el registro que se desea modificar o eliminar: Para este campo el

usuario deberá seleccionar el registro de la tabla categoría Grupo Recursos (CGR)

que se desea modificar o eliminar.

Una vez se haya seleccionado el registro que se desea modificar o eliminar, el formulario de

la figura 77, cambiara por el formulario de la siguiente figura.

Figura 78: Formulario para modificar o eliminar registros de la tabla “CGR”.

Ya con el nuevo formulario desplegado, el usuario podrá modificar o eliminar el registro que

anteriormente selecciono. Para esto el usuario constara con los siguientes campos que se

aprecian en la figura 78.

• Identificador (ID) asignado al registro: Este campo indicara el identificar (ID) que

se le asigno al registro al momento de su creación. Este elemento deberá ser cargado,

de esta manera se obtiene el identificado que se le ha asignado sin necesidad de

asignarle un nuevo identificador cada vez que se modifique el registro.

• Descripción del Grupo: En este campo el usuario podrá modificar la descripción del

registro cargado por el formulario. Si solo se requiere modificar el registro, el formulario

no permitirá que se efectúen cambios si este campo se encuentra vacío.

Una vez el registro haya sido modificado o eliminado de la base de datos, la interfaz web

deberá desplegar una ventana emergente, la cual confirmara que la operación se realizó con

éxito. En el caso de que no se despliegue esta ventana emergente de confirmación, se deberá

corroborar la sesión G-suite del usuario y si está a su vez tiene los permisos de colaborador

necesarios para modificar o eliminar los registros en la base de datos.

91

Formulario para modificar o eliminar registros de la tabla CSR

Este formulario tendrá la función de modificar y eliminar los registros de la tabla categoría

Subgrupos Recursos (CSR). Este formulario constará de dos partes, la primera parte servirá

para seleccionar el registro y la segunda parte para modificar o eliminar el registro

seleccionado en la primera parte del formulario.

Figura 79: Formulario para seleccionar el registro en la tabla “CSR” que se desea modificar.

Para que el usuario pueda modificar o eliminar un registro de la tabla CSR, este lo deberá

realizar mediante el formulario que se indica en la figura 79. Este formulario se deberá

desplegar en la zona de contenidos mediante el buscador del panel lateral como se indica

claramente en el subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá

realizar la modificación necesaria mediante este los siguientes campos:

• Seleccione el grupo al cual pertenece el registro: Para este campo el usuario

deberá seleccionar el registro de la tabla CGR al cual pertenece el registro que se

desea modificar o eliminar.

• Seleccione el registro que se desea modificar o eliminar: Para este campo el

usuario deberá seleccionar el registro de la tabla categoría Subgrupo Recursos (CSR)

que se desea modificar o eliminar.

Una vez se haya seleccionado el registro que se desea modificar o eliminar, el formulario de

la figura 79, cambiara por el formulario de la siguiente figura.

92

Figura 80: Formulario para modificar o eliminar registros de la tabla “CSR”.

Ya con el nuevo formulario desplegado, el usuario podrá modificar o eliminar el registro que

anteriormente selecciono. Para esto el usuario constara con los siguientes campos que se

aprecian en la figura 80.

• Identificador (ID) asignado al registro: Este campo indicara el identificar (ID) que

se le asigno al registro al momento de su creación. Este elemento deberá ser cargado,

de esta manera se obtiene el identificador que se le ha asignado sin necesidad de

asignarle un nuevo identificador cada vez que se modifique el registro.

• Seleccione el grupo al cual pertenecer el registro: En este campo el usuario podrá

modificar el grupo al cual pertenecerá el registro. Si solo se requiere modificar el

registro, el formulario no permitirá que se efectúen cambios si este campo se

encuentra vacío.

• descripción del subgrupo: En este campo el usuario podrá modificar la descripción

del registro cargado por el formulario. Si solo se requiere modificar el registro, el

formulario no permitirá que se efectúen cambios si este campo se encuentra vacío.

Una vez el registro haya sido modificado o eliminado de la base de datos, la interfaz web

deberá desplegar una ventana emergente, la cual confirmara que la operación se realizó con

éxito. En el caso de que no se despliegue esta ventana emergente de confirmación, se deberá

corroborar la sesión G-suite del usuario y si está a su vez tiene los permisos de colaborador

necesarios para modificar o eliminar los registros en la base de datos.

93

Formulario para modificar o eliminar registros de la tabla Recursos

Este formulario tendrá la función de modificar y eliminar los registros de la tabla categoría

Recursos (Recursos). Este formulario constará de dos partes, la primera parte servirá para

seleccionar el registro y la segunda parte para modificar o eliminar el registro seleccionado en

la primera parte del formulario.

Figura 81: Formulario para seleccionar el registro en la tabla “Recursos” que se desea

modificar.

Para que el usuario pueda modificar o eliminar un registro de la tabla Recursos, este lo deberá

realizar mediante el formulario que se indica en la figura 81. Este formulario se deberá

desplegar en la zona de contenidos mediante el buscador del panel lateral como se indica

claramente en el subcapítulo 4.5.2. Ya teniendo desplegado el formulario, el usuario podrá

realizar la modificación necesaria mediante los siguientes campos:

• Seleccione el grupo al cual pertenece el registro: Para este campo el usuario

deberá seleccionar el registro de la tabla CGR al cual pertenece el registro que se

desea modificar o eliminar.

• Seleccione el subgrupo al cual pertenece el registro: Para este campo el usuario

deberá seleccionar el registro de la tabla CSR al cual pertenece el registro que se

desea modificar o eliminar.

• Seleccione el recurso que desea modificar o eliminar: Para este campo el usuario

deberá seleccionar que registro de la tabla Recursos se desea modificar o eliminar.

94

Una vez se haya seleccionado el registro que se desea modificar o eliminar, el formulario de

la figura 81, cambiara por el formulario de la siguiente figura.

Figura 82: Formulario para modificar o eliminar registros de la tabla “Recursos”.

Ya con el nuevo formulario desplegado, el usuario podrá modificar o eliminar el registro que

anteriormente selecciono. Para esto el usuario constara con los siguientes campos que se

aprecian en la figura 82.

• Identificador (ID) asignado al registro: Este campo indicara el identificar (ID) que

se le asigno al registro al momento de su creación. Este elemento deberá ser cargado,

de esta manera se obtiene el identificado que se le ha asignado sin necesidad de

asignarle un nuevo identificador cada vez que se modifique el registro.

95

• Grupo al cual pertenece el registro: En este campo el usuario podrá modificar el

grupo al cual pertenecerá el registro. Si solo se requiere modificar el registro, el

formulario no permitirá que se efectúen cambios si este campo se encuentra vacío.

• Subgrupo al cual pertenece el registro: En este campo el usuario podrá modificar

el subgrupo al cual pertenecerá el registro. Si solo se requiere modificar el registro, el

formulario no permitirá que se efectúen cambios si este campo se encuentra vacío.

• Descripción del recurso: En este campo el usuario podrá modificar la descripción

del registro cargado por el formulario. Si solo se requiere modificar el registro, el

formulario no permitirá que se efectúen cambios si este campo se encuentra vacío.

• Unidad: En este campo el usuario podrá modificar la unidad comercial con la cual se

adquiere o contrata el recurso que se desea modificar. Si solo se requiere modificar

el registro, el formulario no permitirá que se efectúen cambios si este campo se

encuentra vacío.

• Precio unitario: En este campo el usuario podrá modificar el precio unitario con el

cual se adquiere o contrata el recurso que se desea modificar. Si solo se requiere

modificar el registro, el formulario no permitirá que se efectúen cambios si este campo

se encuentra vacío.

Una vez el registro haya sido modificado o eliminado de la base de datos, la interfaz web

deberá desplegar una ventana emergente, la cual confirmara que la operación se realizó con

éxito. En el caso de que no se despliegue esta ventana emergente de confirmación, se deberá

corroborar la sesión G-suite del usuario y si está a su vez tiene los permisos de colaborador

necesarios para modificar o eliminar los registros en la base de datos.

Capítulo V: Desarrollo y uso de la aplicación web

96

5.1 Identificación de los requerimientos

Ya contando con la base de datos lista además de la interfaz web que se encargará de

gestionarla y administrarla, solo queda desarrollar e implementar la aplicación web, la cual

será la encargada de procesar los datos almacenos en la base de datos y de esta forma

generar los diversos documentos técnicos y económicos requeridos por el Programa de

Autoconstrucción.

La aplicación web que se encargará de apoyar las tareas en la confección de los documentos

del Programa de Autoconstrucción Colaborativa deberá realizar los siguientes documentos:

• Documento de presupuesto de obras (Costos directos) del proyecto.

• Documento con las especificaciones técnicas de cada una de las partidas de

construcción que componen al proyecto.

• Documento con los análisis de precios unitarios de cada una de las partidas de

construcción que componen al proyecto.

• Documento con todos los recursos que se consumirán en la ejecución de cada una

de las partidas de construcción que componen al proyecto.

• Documento con los plazos de ejecución de cada una de las partidas de construcción

que componen al proyecto.

5.2 Descripción de la solución

Para desarrollar la aplicación web que se encargará de crear los documentos técnicos y

económicos para el Programa de Autoconstrucción Colaborativa de la ONG Vivienda Local,

se hará uso de un documento Google Sheets para gestionar y visualizar toda la información

disponible la cual mediante la extensión a un documento Google Apps Scripts se ejecutara

toda la funcionalidad necesaria para crear los documentos.

97

Figura 83: Arquitectura lógica de la aplicación web.

La aplicación web seguirá el esquema básico constituido por la capa de presentación, lógica

de negocio y capa de datos como se indica en la figura 83.

5.2.1 Capa de presentación

La capa de presentación será la cual utilizara el usuario para interactuar con la aplicación web

mediante cualquier navegador web. Aquí es donde el usuario deberá seleccionar e importar

cada una de las partidas que componen al proyecto de autoconstrucción colaborativa en que

se esté trabajando.

Para esto el usuario contara con 3 secciones dentro del documento Google Sheets con las

cuales podrá interactuar como se indica en la figura 84.

Figura 84: Estructura capa de presentación de la aplicación web.

98

Cada una de la sección tendrá la siguiente función:

• Datos de proyecto: Esta sección es en la que el usuario deberá añadir la información

general del proyecto. Esta información servirá tanto para indicar de que proyecto se

trata como información que se agregara como subtitulo en los documentos técnicos y

económicos generados por la aplicación web.

• Consola: Esta sección tendrá la función de contener las opciones con las cuales el

usuario deberá interactuar para importar las partidas de la base de datos, añadir las

cubicaciones, ordenar el proyecto y crear los diversos documentos técnicos y

económicos requeridos por el Programa de Autoconstrucción Colaborativa.

• Tabla de datos: Esta sección será la encargada de visualizar las partidas de

construcción que hayan sido importas desde la base de datos y que serán parte del

proyecto en el que se desea trabajar.

4.2.2 Lógica de negocio

Para la lógica de negocio se hará uso de un documento Google Apps Script el cual será el que

se encargue de proporcionar toda la funcionalidad a la capa de presentación. Este documento

Google Apps Script será una extensión al documento Google Sheets que ejecutara a la

aplicación web.

Figura 85: Estructura lógica de negocio de la aplicación web.

La lógica de negocio deberá ser capaz de realizar las siguientes funcionalidades

99

• Método Get: Este método se encargará de extraer los registros de la base de datos

para estos ser usados posteriormente en la capa de presentación.

• Método Set: Este método se encargará añadir los registros importados de la base de

datos en la tabla de datos.

• Método Order: Este método se encargará de el orden en el cual se encuentran las

partidas de construcción que fueron importadas desde la base de datos a la tabla de

datos de la aplicación web.

• Método Create: Este método se encargará de crear los diversos documentos técnicos

y económicos a partir de las partidas de construcción importadas en la tabla de datos.

4.2.3 Capa de datos

La capa de datos se encarga de proporcionar todas las partidas de construcción que se

requieran importar desde la base de datos hacia la aplicación web. Esta capa utilizara como

base de datos el documento Google Sheets que se desarrolló en el capítulo 3 del presente

documento.

5.3 Creación de la aplicación web

5.3.1 Creación del documento Google Sheets

Para poder crear un documento Google Sheets se necesitará estar en la aplicación Google

Drive, para esto se deberá ingresar a la dirección url “www.drive.google.com” como se indica

en la figura 86. Para poder acceder al entorno de trabajo de Google Drive se deberá ingresar

mediante las credenciales de identificación, que serán la dirección de correo G-suite y su

respectiva contraseña.

Figura 86: URL entorno de trabajo Google Drive

100

Al ingresar a la ventana del entorno de trabajo de Google Drive, se deberá seleccionar la

opción “Nuevo” ubicada en el panel izquierdo del entorno de trabajo como se indica en la

figura 87, el cual nos desplegará nuevas opciones sobre creación de archivos.

Figura 87: Creación documento Google Sheets en entorno de trabajo Google Sheets.

Una vez se haya desplegado el menú de la opción “Nuevo”, se deberá dirigirse a la opción

“Hoja de cálculo de Google” y seleccionar la suposición de “Hoja de cálculo en blanco” como

se indica en la figura 88. Es importante que el documento esté en blanco sin ningún formato

previamente establecido, de esta manera se evitará cualquier problema en un futuro al usar el

documento como base de datos.

Figura 88: Creación de documento Google Sheets.

101

5.3.2 Creación de hojas en el documento Google Sheets

El documento Google Sheets que se acaba de crear y que se ocupara como capa de

presentación de la aplicación web, requerirá el uso de dos hojas del documento para ejecutar

correctamente la aplicación web. Una de esta hoja será la encargada de visualizar la aplicación

al usuario, la otra hoja se encargará de almacenar la información que fue importada desde la

base de datos y que se usara para crear los documentos técnicos y económicos del Programa

de Autoconstrucción Colaborativa.

Como primer paso para poder realizar cualquier acción correspondiente a la creación,

modificación o eliminación de hojas dentro de un documento Google Sheets, se requerirá

contar con los permisos de administrador (propietario del documento), de no ser de esta

manera, no se podrá realizar ningún cambio sobre el documento.

Ya contando con la cuenta propietaria del documento se podrán crear las tablas y sus

respectivas modificaciones. Para esto, se deberá dirigir a la esquina inferior izquierda de la

ventana del navegador donde se tiene abierto el documento Google Sheets, ahí deberá

aparecer una opción con el signo “+” como se indica en la figura 89, el cual hacer seleccionado

creará de forma inmediata una nueva hoja dentro del documento.

Figura 89: Creación de hojas en documento Google Sheets.

Al crear una nueva hoja, estas se irán ordenando de forma horizontal consecutivamente. Estas

hojas se crearán con el nombre predeterminado “Hoja” + “n”, siendo “n” el número de cantidad

de hojas ya creadas.

5.3.3 Configuración y preparación de las hojas del documento Google Sheets

Para poder dar uso a las hojas del documento Google Sheets como se detalla en el

subcapítulo 5.2.1, se requiere que estas hojas sean modificadas y adaptadas para que la

102

aplicación web se logre ejecutar correctamente. En el caso de no seguir las indicaciones dada

en este subcapítulo, existirá el riesgo que la aplicación web no funcione correctamente.

Cambio de nombres a las hojas del documento Google Sheets

Uno de los puntos más importantes para adaptar las hojas y hacerlas funcional para la

aplicación web es indicar correctamente su nombre. Esto se debe a que el documento Google

Apps Script utilizara el nombre de cada una de las hojas para importar y exportar la

información, en el caso que algunas de la hoja sufran alguna modificación en el nombre, el

documento Google Apps Script perderá la conexión con estas generando que la aplicación

web deje de funcionar correctamente.

Para poder realizar el cambio de nombre a las hojas, se deberá hacer mediante las pestañas

de hojas ubicadas en la barra inferior del documento, ahí se deberá seleccionar la opción “▼”,

que se encuentra al costado derecho del nombre de la hoja que se desea modificar. Al

seleccionar esta opción desplegará un nuevo menú de opciones, ahí se deberá seleccionar la

opción “Cambiar nombre” tal y como se indica en la figura 90.

Figura 90: Cambio de nombre de las hojas del documento Google Sheets

El nombre que se les deberá asignar a las hojas creadas anteriormente deberán ser tal y como

se indican en la figura 91.

103

Figura 91: Nombre de hojas para la aplicación web.

Es importante tener en cuenta que el nombre de las hojas es sensible a las mayúsculas, por

lo que se deben respetar cada una de las letras que esté en mayúscula que se indican en la

figura 91.

Preparación de la hoja “Consola”

Para poder usar la hoja consola del documento Google Sheets, esta deberá ser preparada y

configurada para poder realizar todas las acciones que se necesita para crear los documentos

técnicos y económicos del Programa de Autoconstrucción Colaborativa de la ONG Vivienda

Local. para esto, se deberá preparar en la hoja “consola” con las secciones que se indicaron

en el subcapítulo 5.2.1.

Datos de proyecto

La sección datos del proyecto será la encargada de recopilar la información del proyecto

requerida para dar claridad a cada uno de los documentos que se creara.

Figura 92: Estructura sección “Datos de proyecto”.

La sección de “Datos de proyecto”, se deberá componer de los campos que se indican en la

figura 92. Es importante mencionar que se deben respeten las coordenadas de cada uno de

los campos tal como se indican en el lateral izquierdo y parte superior de la figura 92.

104

Consola

La sección consola será la que se encargará de contener todas las opciones y funciones

requeridas para crear los documentos técnicos y económicos con las partidas de construcción

almacenadas en la base de datos que se desarrolló en el capítulo 3 del presente documento.

Figura 93: Estructura sección “Consola”.

La sección de “Consola”, se deberá componer de los campos que se indican en la figura 93.

Es importante mencionar que se deben respeten las coordenadas de cada uno de los campos

tal como se indican en el lateral izquierdo y parte superior de la figura 93.

Tabla de datos

La sección consola será la que se encargará de mostrar cada una de las partidas que fueron

importadas desde la base de datos mediante el uso de la “Consola”.

Figura 94: Estructura sección “Tabla de datos”.

La sección de “Tabla de datos”, se deberá componer de los campos que se indican en la figura

94. Es importante mencionar que se deben respeten las coordenadas de cada uno de los

campos tal como se indican en el lateral izquierdo y parte superior de la figura 94.

105

Preparación de la hoja “DATA”

Una vez se tenga configurada la hoja “Consola”, esta aun no estará lista para usar, debido a

que, si bien la tabla de datos muestra las partidas de construcción, estas realmente no se

encuentran almacenadas ahí, sino más bien se encontraran almacenada en la hoja “DATA”.

Figura 95: Estructura para la hoja “DATA”.

La hoja “DATA”, se deberá componer de los campos que se indican en la figura 95. Es

importante mencionar que se deben respeten las coordenadas de cada uno de los campos tal

como se indican en el lateral izquierdo y parte superior de la figura 95.

5.3.4 Compartir documento Google Sheets

Uno de los requerimientos más importantes para que la aplicación web pueda ser usada por

la ONG Vivienda Local, es que esta permita ser compartida, permitiendo de esta manera que

un sinfín de usuarios puedan trabajar con esta en distintos proyectos de Autoconstrucción de

forma independiente. Por lo cual se podrá compartir la aplicación web mediante los siguientes

2 métodos.

Duplicar documento y compartir por invitación

Este primer método de compartir la aplicación web a los diversos usuarios consiste en que

sea la propia ONG quien cree una copia del documento Google Sheets que contendrá la

versión original de la aplicación web para posteriormente compartir mediante correo

electrónico con los usuarios que se requiere que usen la aplicación web.

Para esto, lo primero que se deberá realizar para duplicar el documento será abrir

precisamente el documento Google Sheets que contiene la versión original de la aplicación

web. De esta manera el usuario podrá realizar las copias que desee de la Aplicación mediante

106

la opción “Hacer una copia” de la pestaña “Archivo” tal y como se indica en la siguiente figura

96.

Figura 96: Realizar copia al documento Google Sheets.

A continuación de que se haya selecciona la opción “Hacer una copia” del documento Google

Sheets original, se abrirá una nueva ventana tal como lo indica la figura 97, en la cual el usuario

deberá asignar el nombre y la carpeta en la cual se añadirá la copia.

Figura 97: Configurar copia realizada al documento Google Sheets.

Una vez se haya creado correctamente la copia de la versión original de la aplicación web,

solo queda que esta se comparta con los usuarios que requieran hacer uso de esta.

107

Es importante tener en cuenta que el documento Google Sheets que se debe compartir nunca

deberá ser la versión original, esto se debe a que, si a la aplicación web se le realiza un

cambio, esta puede dejar de funcionar o funcionar de forma incorrecta, por lo que siempre la

versión original se debe tener de respaldo y nunca usar esta para generar los documentos.

Para poder compartir el documento Google Sheets, se deberá realizar accediendo a la opción

“Compartir”, ubicada en la esquina superior derecha de la interfaz web del documento como

se indica en la figura 98.

Figura 98: Abrir ventana “Compartir”.

Al acceder a la opción “Compartir”, se abrirá la ventana en la cual se podrá compartir el

documento. Esta ventana contará con dos secciones, la superior donde se podrá compartir el

documento mediante el rol de colaborador y la inferior encargada de gestionar los permisos y

privilegios del rol de invitado.

Para poder compartir el documento con los usuarios que se requiera, se deberá realizar

mediante la sección superior de la ventana “Compartir”. En la cual se deberá añadir la

dirección de correo electrónico G-suite en la caja de texto “Añadir personas y grupos” tal como

se indica en la figura 99.

Figura 99: Añadir usuarios al documento Google Sheets copiado.

108

Al ingresar la dirección de correo electrónico en la caja de texto “Añadir personas y grupos”,

la ventana “Compartir” se actualizará en una nueva ventana, la cual brindará dos nuevas

opciones, el privilegio de acceso que se le concederá al usuario y, el mensaje con el cual le

llegará la petición de acceso por vía Email.

Al asignar los permisos de colaborador, es importante revisar siempre que el privilegio que se

asignará en la lista desplegable ubicada al costado derecho de la caja de texto “Añadir

personas y grupos” sea el privilegio “Editor” como se indica en la figura 100.

Figura 100: Asignar privilegios a los usuarios añadidos al documento Google Sheets

copiado.

De esta manera los usuarios a los cuales se les concedieron los permisos de colaborador

contarán con los privilegios necesarios para usar todas las funciones que proporciona la

aplicación web.

Para revisar quienes poseen los permisos de colaborador, se deberá ir a la sección

“Colaborador” ubicada en la parte superior de la ventana “Compartir”, ahí los usuarios con

permisos de colaborador aparecen alineados por debajo del propietario del documento de

forma vertical como se indica en la figura 101.

109

Figura 101: Posicionamiento de los usuarios añadidos al documento Google Sheets.

5.3.4.2 Compartir dirección URL y duplicar documento

Este segundo método de compartir la aplicación web a los diversos usuarios consiste en que

sea la propia ONG quien comparta la dirección URL de la aplicación web y que sean los

propios usuarios quienes creen la copia que desean utilizar.

Para esto, lo primero que se deberá realizar será configurar el documento para que esta se

pueda compartir entre los usuarios sin riesgo a que esto posteriormente modifiquen la versión

original.

Para poder configurar y compartir el documento Google Sheets, se deberá realizar accediendo

a la opción “Compartir”, ubicada en la esquina superior derecha de la interfaz web del

documento como se indica en la figura 102.

Figura 102: Abrir ventana “Compartir”.

Al acceder a la opción “Compartir”, se abrirá la ventana en la cual se podrá configurar y

compartir el documento. Esta ventana contará con dos secciones, la superior donde se podrá

compartir el documento mediante el rol de colaborador y la inferior encargada de gestionar los

permisos y privilegios del rol de invitado.

110

A diferencia de los permisos de colaborador, los permisos de invitado no se generan mediante

una invitación vía Email, sino más bien mediante la dirección URL, que es lo que necesitamos.

Para esto se deberá ir a la sección “invitado” ubicada en la parte inferior de la ventana

“Compartir”, ahí se deberá hacer clic en la opción “Cambiar” como se indica en la figura 103.

Figura 103: Configurar los privilegios para acceder al documento mediante URL.

Al hacer clic en la opción “Cambiar”, la ventana “Compartir” se actualizará por una nueva

ventana, en la cual se dispondrá de dos nuevas opciones, la accesibilidad del permiso

mediante el uso de la dirección URL y el tipo de privilegio con el que contaran los usuarios que

acceden al documento mediante la dirección URL.

Lo primero que se debe realizar es configurar la accesibilidad que tendrá la dirección url para

acceder al documento Google Sheets, para esto se deberá hacer clic en la lista desplegable

ubicada en la parte inferior de la ventana, ahí se desplegarán las siguientes dos opciones:

• Restringido: En este modo sólo pueden tener acceso los que cuentan con los

permisos de colaborador, todo los que no cuentan con una invitación vía correo

electrónico no podrán acceder al documento.

• Cualquier persona con el enlace: En este modo todos los usuarios que tengan la

dirección URL podrán tener acceso al documento Google Sheets, si no se cuenta con

la dirección URL no se podrá tener acceso al documento.

Para que los usuarios puedan tener acceso al documento mediante la dirección URL, se

deberá elegir la opción “Cualquier persona con el enlace” como se indica en la figura 104.

111

Figura 104: Configurar acceso al documento Google Sheets mediante URL.

Al seleccionar la opción “Cualquier persona con el enlace”, nos dispondrá de un nuevo menú

de opciones desplegables, el cual servirá para asignar los privilegios de acceso que tendrá el

invitado que ingreso mediante la dirección URL.

Es importante que en este menú se asigne el privilegio de “Lector” como se indica en la figura

105, de esta manera quienes accedan al documento mediante la dirección URL solo podrán

hacer una copia del documento sin posibilidad realizar ninguna modificación a la aplicación

web.

Figura 105: Asignar privilegios al permiso de acceso mediante URL.

Una vez se haya configurado la accesibilidad del documento mediante la dirección URL y

además se haya configurado el privilegio “Lector”, solo hace falta compartir la dirección URL

con los usuarios que requieren realizar una copia de la aplicación web. Para esto se deberá

obtener y compartir la dirección URL del documento Google Sheets.

Para conseguir la url del documento existen las siguientes dos maneras:

112

• Url desde el navegador: Una de las formas de conseguir la url es copiarla

directamente desde la caja de texto ubicada en la parte superior del navegador como

se indica en la figura 106, y que se usa para redirigir a páginas web mediante una url.

Es importante tener en cuenta que para que aparezca la url en la caja de texto es

necesario tener abierto el documento Google Sheets, de lo contrario la caja de texto

aparecerá vacía o con alguna de las últimas url visitadas en el navegador.

Figura 106: Conseguir url mediante navegador web.

• Url desde la ventana “Compartir”: La otra forma de obtener la url del del documento

es accediendo directamente a la sección inferior de permisos de invitado ubicada en

la pestaña “Compartir”, y copiar directamente la dirección url desde el botón “Copiar

enlace” como se indica en la figura 107.

Figura 107: Conseguir url mediante ventana “Compartir”.

5.4 Implementación del código fuente de la aplicación web

5.4.1 Implementación del editor de secuencias de comandos

Para poder implementar el código fuente tanto de la capa de presentación como de la lógica

de negocio necesario para ejecutar correctamente la aplicación web, será necesario usar un

documento Google Apps Script que se ejecute como extensión al documento Google Sheets.

113

Para crear el documento Google Apps Script que se utilizara para proporcionar la funcionalidad

y operatividad de del documento Google Sheets se deberá realizar accediendo a la pestaña

“Herramientas” ubicada en el panel superior del documento Google Sheets, ahí se desplegara

un menú en el cual se deberá seleccionar la opción de “Editor de secuencias de comandos”

como se indica en la figura 108.

Figura 108: Implementar documento Google Apps Script al documento Google Sheets.

Una vez se haya accedido al editor de secuencias de comando (Google Apps Script), la

implementación del código fuente de la aplicación web que se implementara se realizara de la

misma manera que se realizó en el capítulo anterior con la interfaz web.

5.4.2 Creación de archivos

Archivos HTML

Los archivos con formato HTML serán los encargados de mostrar y recopilar toda la

información necesaria para la capa de presentación. Estos archivos serán los encargados de

recopilar toda la información que se requiere almacenar en la base de datos pero que aún se

requiere procesar por la capa de presentación.

Para crear un archivo formato HTML, será necesario dirigirse a la pestaña “Archivos” ubicada

en la barra superior del documento Google Apps Script. Esta pestaña abrirá un nuevo menú

desplegable en el cual se deberá posicionar el puntero del mouse para abrir así abrir el nuevo

submenú con el cual se podrá crear el archivo con formato HTML, seleccionando la opción

“Archivo HTML” tal como lo indica la figura 109.

114

Figura 109: Creación de archivo HTML.

Los archivos HTML que hayan sido creados deberán aparecer en la barra lateral del

documento Google Apps Script con la extensión correspondiente que en este caso debiera

ser “HTML”.

Archivos de secuencia de comandos

Los archivos con formato de secuencia de comandos (gs), serán los encargados de

proporcionar toda la funcionalidad de la lógica de negocios. Estos archivos serán los

encargados de procesar toda la información que se recopila por la capa de presentación para

posteriormente almacenarla en la base de datos.

Para crear un archivo con formato secuencia de comandos (gs), será necesario dirigirse a la

pestaña “Archivos” ubicada en la barra superior del documento Google Apps Script. Esta

pestaña abrirá un nuevo menú desplegable en el cual se deberá posicionar el puntero del

mouse para abrir así abrir el nuevo submenú con el cual se podrá crear el archivo con formato

de secuencia de comandos (gs) seleccionando la opción “Archivo de secuencia de comandos”

tal como lo indica la figura 110.

115

Figura 110: Creación de archivo de secuencia de comandos (gs).

Los archivos de secuencia de comandos (gs) que hayan sido creados deberán aparecer en la

barra lateral del documento Google Apps Script con la extensión correspondiente que en este

caso debiera ser “gs”.

5.4.3 implementación del código fuente de la capa de presentación

El código fuente que compone la capa de presentación (front-end), será el encargado de dar

un forma y estructura visual con la cual el usuario interactuara con la interfaz web mediante

su navegador web. Para poder implementar el código fuente de la capa de presentación es

importante que el usuario haga uso de archivos HTML.

El editor de secuencias de comando (Google Apps Script), deberá contar con los siguientes

archivos HTML:

• editorTabla: Este archivo se encargará de disponer del formulario que se abriría

cuando el usuario seleccione el botón “Añadir o eliminar partidas” del panel de la

consola. Desde este formulario el usuario podrá importar las partidas desde la base

de datos como eliminar alguna de las que ya fueron importadas. El código fuente que

se deberá implementar para crear este archivo HTML, deberá ser el código fuente que

se encuentra en el anexo 2.2.1.

• cubicaciones: Este archivo se encargará de disponer del formulario que se abrirá

cuando el usuario seleccione el botón “Cubicaciones” del panel de la consola. Desde

116

este formulario el usuario podrá añadir las cubicaciones a cada una de las partidas

que se importó desde la base de datos anteriormente y modificarlas en caso de así

requerirlo. El código fuente que se deberá implementar para crear este archivo HTML,

deberá ser el código fuente que se encuentra en el anexo 2.2.2.

• ordenar: Este archivo se encarga de disponer del formulario que se abrirá cuando el

usuario seleccione el botón “Ordenar” del panel de la consola. Desde este formulario

el usuario podrá ordenar la tabla de datos que se muestra en la aplicación web. El

código fuente que se deberá implementar para crear este archivo HTML, deberá ser

el código fuente que se encuentra en el anexo 2.2.3.

• crear: Este archivo se encarga de disponer del formulario que se abrirá cuando el

usuario seleccione el botón “Crear documentos” del panel de la consola. Desde este

formulario el usuario podrá crear cada uno de los documentos técnicos y económicos

requeridos con las partidas de construcción importadas desde la base de datos. El

código fuente que se deberá implementar para crear este archivo HTML, deberá ser

el código fuente que se encuentra en el anexo 2.2.4.

• Configuraciones: Este archivo se encargará de permitir al usuario de algunas

configuraciones que podrá realizar a la aplicación web. El código fuente que se deberá

implementar para crear este archivo HTML, deberá ser el código fuente que se

encuentra en el anexo 2.2.5.

• css: Este archivo tendrá la función de asignar el diseño todos los formularios HTML

de la aplicación web. El código fuente que se deberá implementar para crear este

archivo HTML, deberá ser el del anexo 2.2.6.

• js-utilidades: Este archivo se encargará de proporcionar toda la funcionalidad que

requieren los distintos formularios HTML de la aplicación web. El código fuente que

se deberá implementar para crear este archivo HTML, deberá ser el del anexo 2.2.7.

5.4.4 implementación del código fuente de la lógica de negocio

El código fuente que compone la capa de lógica de negocio (back-end), será la encargada de

procesar todas las acciones requeridas para efectuar las acciones solicitada por los diversos

117

formularios. Para poder implementar el código fuente de la capa lógica de negocio es

importante que el usuario haga uso de los archivos de secuencia de comandos (gs).

El documento Google Apps Script deberá contar con los siguientes archivos de secuencia de

comandos (gs):

• Código: Este archivo tendrá las configuraciones mínimas que se requiere para

ejecutar los diversos formularios que el usuario seleccione mediante los botones del

documento Google Sheets. El código fuente que se deberá implementar para crear

este archivo de secuencia de comandos (gs), deberá ser el código fuente que se

encuentra en el anexo 2.2.1.

• Get: Este archivo tendrá la función de importar desde la base de datos las partidas

que el usuario seleccione mediante el formulario de “editarTabla”. De esta manera las

partidas que son importadas podrán ser ingresadas al proyecto y mostradas en la

tabla de datos del documento Google Sheets. El código fuente que se deberá

implementar para crear este archivo de secuencia de comandos (gs), deberá ser el

código fuente que se encuentra en el anexo 2.2.2.

• Set: Este archivo tendrá la función de añadir información al documento Google

Sheets, desde las partidas que fueron importadas desde la base de datos con el

método “Get” hasta las cubicaciones que el usuario desea añadir haciendo uso del

formulario de “cubicaciones”. El código fuente que se deberá implementar para crear

este archivo de secuencia de comandos (gs), deberá ser el código fuente que se

encuentra en el anexo 2.2.3.

• Order: Este archivo tendrá la función de ordenar la tabla de datos en función de la

opción que el usuario haya seleccionado mediante el formulario “ordenar”. El usuario

podrá ordenar las partidas de la tabla de datos según sus categorías, ID, nombre y

cantidad, tanto de forma ascendente como descendiente. El código fuente que se

deberá implementar para crear este archivo de secuencia de comandos (gs), deberá

ser el código fuente que se encuentra en el anexo 2.2.4.

• Create: Este documento tendrá la función de crear los diversos documentos técnicos

y económicos que el usuario haya seleccionado mediante el formulario “crear”. Los

118

documentos se crearan en hojas nuevas que llevaran el nombre respectivo de cada

documento que se haya creado. El código fuente que se deberá implementar para

crear este archivo de secuencia de comandos (gs), deberá ser el código fuente que

se encuentra en el anexo 2.2.5.

• Config: Este documento tendrá todas las configuraciones que el usuario necesite

realizar sobre el documento mediante el formulario “configuración”. El código fuente

que se deberá implementar para crear este archivo de secuencia de comandos (gs),

deberá ser el código fuente que se encuentra en el anexo 2.2.6.

5.5 Uso de la aplicación web

5.5.1 Datos de proyectos

La sección datos del proyecto será la encargada de recopilar la información del proyecto

requerida para dar claridad a cada tanto al usuario sobre el proyecto en el cual se está

trabajando como para dar claridad a los documentos que se crearan.

Figura 111: Sección “Datos del proyecto”.

La sección “Tabla de datos” de la figura 63, el usuario deberá añadir la información del

proyecto en los siguientes campos:

• Nombre del proyecto: En este campo el usuario deberá añadir el nombre que se le

asigno al proyecto de Autoconstrucción Colaborativa.

• dirección de proyecto: En este campo el usuario deberá añadir la dirección que

tendrá en lugar que se ejecutara el proyecto.

• Rol propiedad: En este campo el usuario el usuario añadir el número de rol del

terreno donde se ejecutara el proyecto.

119

• Autoconstructor: En este campo el usuario deberá añadir el nombre de la persona

que se autoconstruirá su vivienda mediante el Programa de Autoconstrucción

Colaborativa.

• Rut autoconstructor: En este campo el usuario deberá añadir el rut de la persona

que se autoconstruirá su vivienda.

• Arquitecto: En este campo el usuario deberá añadir el nombre del arquitecto a cargo

de desarrollar el proyecto.

• Rut arquitecto: En este campo el usuario deberá añadir el Rut del arquitecto que

desarrollo el proyecto.

• Metros cuadrados [m2]: En este campo el usuario deberá añadir la cantidad de

metros cuadrados que contara el proyecto.

En el caso que el usuario no añada toda la información del proyecto, esta no afectara la

creación de los documentos técnicos y económicos, aunque se recomienda que por claridad

estos datos siempre de rellenen.

5.5.2 Uso de la consola

La sección consola será la que se encargará de contener todas las opciones y funciones

requeridas para crear los documentos técnicos y económicos con las partidas de construcción

almacenadas en la base de datos que se desarrolló en el capítulo 3 del presente documento.

Conectar la aplicación web con la base de datos

Una de las características principales que tiene aplicación web es que esta es capaz de

importa todas las partidas de construcción que requerirá para crear los documentos técnicos

y económicos desde una base de datos externa a la aplicación. Es por esto mismo que es

fundamental que siempre exista una conexión con la base de datos, de esta manera siempre

se dispondrá de la información que se requiera importar a la aplicación web.

120

Para poder conectar la aplicación web con la base de datos y de esta manera disponer de las

partidas de construcción que se utilizaran para desarrollar los distintos documentos, será

necesario que el usuario disponga de la “Llave” con la cual la aplicación web se podrá conectar

con la base de datos. Esta “Llave” que se utilizara para conectarse con la base de datos deberá

ser la dirección URL del documento Google Sheets que está funcionando como base de datos.

Para poder conseguir la “Llave” (Dirección URL) que servirá para conectar a la base de datos

se deberá seguir las instrucciones que se detallan en el subcapítulo 3.5.3.

Figura 112: Conexión entra la aplicación web con la base de datos.

Una vez el usuario disponga de la “Llave” (Dirección URL) de la base de datos, se deberá

copiar esta “Llave” en la celda “C:18” de la hoja “Consola”, tal y como se indica en la figura

112. De esta manera la aplicación web de forma automática se conectara con la base de

datos, lo cual permitirá a los usuarios comenzar a trabajar en la selección de las diversas

partidas de construcción que se encontraran almacenadas en la base de datos y que se

requerirán para crear los diversos documentos del Programa de Autoconstrucción

Colaborativa.

Añadir partidas

Una de las primeras cosas que se debe determinar para lograr crear los diversos documentos

técnicos y económicos mediante la aplicación web, será que partidas de construcción

componen al proyecto en el cual se necesita trabajar. Es por esto mismo que se deberá

importar desde la base de datos cada una de las partidas de construcción que compondrán el

proyecto de Autoconstrucción Colaborativa en el cual se desea trabajar.

Figura 113: Seleccionar el formulario “Añadir partidas” de la consola.

121

Para que el usuario pueda importar las partidas de construcción que compondrán el proyecto

de autoconstrucción colaborativa, deberá utilizar el formulario HTML “Añadir partidas”, el cual

se desplegara mediante el botón “Añadir partidas”, que se ubica en la sección inferior de la

Consola tal como se indica en la figura 113.

Figura 114: Seleccionar acción en formulario “Añadir partidas”.

Al seleccionar el botón “Añadir partidas”, el formulario HTML “Añadir partidas” se desplegara

por sobre el documento Google Sheets como una ventana emergente tal como se indica en

la figura 114.

En el formulario “Añadir partidas”, el usuario deberá seleccionar que acción desea realizar

sobre el menú desplegable “Selección una acción”, el cual constara de las siguientes opciones:

Añadir partidas y eliminar partidas.

Añadir partida

Si usuario a seleccionar la acción “Añadir partidas”, se deberá desplegar una nueva sección

en la parte inferior del formulario, el cual permitirá al usuario seleccionar las partidas de

construcción que desea importar desde la base de datos.

Figura 115: Importar partida mediante el formulario “Añadir partida”

122

Con esta nueva sección ya desplegada, el usuario dispondrá de 3 filtros como se indican en

la figura 115, los cuales permitirá al usuario seleccionar correctamente la partida de

construcción que desea importar desde la base de datos.

• Grupo: En esta opción desplegable, el usuario deberá seleccionar a que grupo

pertenece la partida que desea importar y añadir al proyecto.

• Subgrupo: Una vez el usuario haya selecciona el grupo en el menú anterior, este

menú desplegara los subgrupos que componen al grupo seleccionado en el campo

anterior.

• Partida: Una vez se haya selección en subgrupo del campo anterior, el usuario deberá

seleccionar que partida es la que desea importar desde la base de datos.

Eliminar partida

Al seleccionar la acción “Eliminar partida”, a diferencia de la acción anterior, esta opción

desplegara una nueva sección como se indica en la figura 116, la cual permitirá al usuario

seleccionar que partida de construcción de las ya importadas desea eliminar.

Figura 116: Seleccionar partida que se desea eliminar del proyecto.

Una vez el usuario ya haya selecciona la partida de construcción que desea eliminar del

proyecto. Esta partida de construcción se desplegara mostrando parte de su información como

se indica en la figura 117, permitiendo al usuario saber de mejor forma si la partida de

construcción que se seleccionó anteriormente es en efecto la que desea eliminar.

123

Figura 117: Eliminar partida del proyecto.

Una vez que el usuario se encuentre seguro de la partida de construcción que desea eliminar

del proyecto, deberá realizar la operación mediante el botón “Eliminar partida” que se

encuentra en la parte inferior de la sección. Después que se haya eliminado la partida, esta

de forma automática desaparecerá de la tabla de datos como se indica más en detalle en el

subcapítulo 5.5.4.

Es importante entender que, al eliminar una partida de construcciones mediante el presente

formulario, esta se eliminara solo del proyecto en el cual se encuentra trabajando y no de la

base de datos, por lo que esta partida de construcción puede volver a ser importada de la base

de datos al proyecto si es que el usuario así lo requiera.

Cubicaciones

Ya teniendo importadas de la base de datos cada una de las partidas de construcción que

componen al proyecto de autoconstrucción colaborativa en el cual se está trabajando, la

aplicación web aun es incapaz de generar todos los documentos técnicos y económicos que

se requieren para el de Autoconstrucción Colaborativa. Esto se debe porque para generar

alguno de los documentos, se requiere obligatoriamente contar con las cubicaciones de cada

una de las partidas de construcción importadas.

124

Figura 118: Seleccionar el formulario “Cubicaciones” de la consola.

Para que el usuario pueda añadir las cubicaciones de cada una de las partidas de construcción

importada desde la base de datos, se deberá utilizar el formulario HTML “Cubicaciones”, el

cual se desplegara mediante el botón “Cubicaciones”, que se ubica en la sección inferior de la

Consola tal como se indica en la figura 118.

Figura 119: Seleccionar la partida a la cual se le quiere añadir su cubicación.

Al seleccionar el botón “Cubicaciones”, el formulario HTML “Cubicaciones” se desplegara por

sobre el documento Google Sheets como una ventana emergente tal como se indica en la

figura 119.

En la sección superior del formulario “Cubicaciones”, el usuario deberá seleccionar la partida

de construcción que desea añadir su cubicación (Cantidad).

Figura 120: Añadir cubicación.

125

Una vez el usuario haya selecciona la partida de construcción a la cual desea añadir su

cubicación (Cantidad), se desplegara una nueva sección en la parte inferior tal como se indica

en la figura 120, la cual mostrara la información que se necesita para realizar una correcta

cubicación de la partida de construcción seleccionada anteriormente.

Una vez que el usuario haya realizado la cubicación de la partida seleccionada, esta deberá

ser añadida al formulario mediante el campo “Añada o modifique la cantidad” y confirmada

mediante el botón “Añadir cantidad”.

Ordenar

Ya teniendo todas las partidas de construcción con sus respectivas cubicaciones que

componen al proyecto en el cual se está trabajando, la aplicación web ya es capaz de generar

los documentos técnicos y económicos requeridos por el Programa de Autoconstrucción

Colaborativa, pero quizás el usuario no desea aun generar los documentos debido a que no

se encuentran en la tabla de datos según el orden que se requiere.

Figura 121: Seleccionar el formulario “Ordenar” de la consola.

Para que el usuario pueda ordenar las partidas de construcción importada desde la base de

datos, deberá utilizar el formulario HTML “Ordenar”, el cual se desplegara mediante el botón

“Ordenar”, que se ubica en la sección inferior de la Consola tal como se indica en la figura

121.

126

Figura 122: Ordenar “tabla de datos”.

Tal como se indica en el formulario HTML “Ordenar” de la figura 122, el usuario deberá

seleccionar cuál de las siguientes maneras desea ordenar las partidas de construcción que

componen la proyecto.

• Ordenar por categorías: En esta sección el usuario podrá ordenar las partidas de

construcción según sus categorías (Grupos y subgrupos), tanto de forma ascendente

como descendiente.

• Ordenar por ID: En esta sección el usuario podrá ordenar las partidas de construcción

según sus ID (Identificador), tanto de forma ascendente como descendiente.

• Ordenar por partidas: En esta sección el usuario podrá ordenar las partidas de

construcción según su nombre, tanto de forma ascendente como descendiente.

• Ordenar por unidad: En esta sección el usuario podrá ordenar las partidas de

construcción según su unidad de medida, tanto de forma ascendente como

descendiente.

• Ordenar por cantidad: En esta sección el usuario podrá ordenar las partidas de

construcción según su cantidad (cubicación), tanto de forma ascendente como

descendiente.

127

Es importante tener en cuenta a la hora de crear los documentos técnicos y económicos, que

estos se generasen siguiendo el orden en el cual las partidas están en la tabla de datos, es

por eso la importancia de ordenar siempre la tabla de datos de la manera en que el usuario

necesita que se generan los documentos.

Crear documentos

Una vez se tengan todas las partidas de construcción del proyecto cubicadas y ordenadas,

el usuario podrá generar los documentos técnicos y económicos requeridos por el Programa

de Autoconstrucción Colaborativa.

Figura 123: Seleccionar el formulario “Crear documentos” de la consola.

Para que el usuario pueda crear cada uno de los documentos técnicos y económicos, deberá

utilizar el formulario HTML “crearDocumentos”, el cual se desplegara mediante el botón “Crear

documentos” como se indica en la figura 123.

Figura 124: Creación de documento técnicos y económicos.

128

Una vez que el usuario tenga desplegada la ventana “Crear documentos”, este dispondrá de

un total de 6 opciones como se indican en la figura 124.

• Crear documentos: Al seleccionar esta opción, se comenzaran a generar todos los

documentos. En el caso que alguna de las partidas de construcción no cuente con

una cubicación asignada, la aplicación web no permitirá generar los documentos hasta

que el usuario revierta la situación.

• Crear documento “Presupuesto”: Al seleccionar esta opción, se comenzara a

generar solo el documento “Presupuesto” del proyecto de autoconstrucción

colaborativa. En el caso que alguna de las partidas de construcción no cuente con una

cubicación asignada, la aplicación web no permitirá generar el presupuesto hasta que

el usuario asigne las cubicaciones a todas las partidas de construcción importadas.

• Crear documento “EETT”: Al seleccionar esta opción, se comenzara a crear solo el

documento de especificaciones técnicas del proyecto autoconstrucción colaborativa.

Para crear este documento no es necesario que las partidas de construcción cuenten

con una cubicación asignada.

• Crear documento “APU”: Al seleccionar esta opción, se comenzara a crear solo el

documento de análisis de precio unitario de cada una de las partidas importadas del

para el proyecto de autoconstrucción colaborativa. Para crear este documento no es

necesario que las partidas de construcción cuenten con una cubicación asignada.

• Crear documento “Recurso”: Al seleccionar esta opción, se comenzaran a crear

solo el documento de las listas de recursos que se utilizaran en cada una de las

partidas de construcción importados para el proyecto de autoconstrucción

colaborativa. En el caso que alguna de las partidas de construcción no cuente con una

cubicación asignada, la aplicación web no permitirá generar el presupuesto hasta que

el usuario asigne las cubicaciones a todas las partidas de construcción importadas.

• Crear documento “Rendimientos”: Al seleccionar esta opción, se comenzara a

crear el documento de los plazos que tendrá cada una de las partidas de construcción

importadas para el proyecto de autoconstrucción colaborativa. . En el caso que alguna

de las partidas de construcción no cuente con una cubicación asignada, la aplicación

129

web no permitirá generar el presupuesto hasta que el usuario asigne las cubicaciones

a todas las partidas de construcción importadas.

Es importante tener en cuenta que los documentos se pueden crear de manera indefinida, por

lo que, si el usuario desea importar una nueva partida de construcción al proyecto posterior a

la creación de los documentos, solo debe importar la partida y volver a generar los

documentos. Así de esta forma se volverán a generar los distintos documentos, pero esta vez

incluyendo la nueva partida importada.

130

Conclusiones

De acuerdo con el desarrollo de la memoria en función de los objetivos planteados para el

estudio de ella podemos concluir lo siguiente:

• Con la implementación del sistema propuesto, se logró estandarizar de manera

efectiva todos los procesos internos que son necesarios para confección de los

documentos técnicos y económicos del Programa de Autoconstrucción Colaborativa.

• El sistema propuesto logra generar de manera simple y eficiente los documentos de

presupuesto de obra, especificaciones técnicas, análisis de precios unitarios, listas de

recursos utilizados y plazos de ejecución de cada de una de las partidas que

componen los proyectos del Programa de Autoconstrucción Colaborativa.

• Con el sistema propuesto se logró centralizar toda la información que se requiere en

la confección de los documentos técnicos y económicos, mediante una base de datos.

La cual no solo permite almacenar las partidas de construcción, sino que además

permite recopilar los recursos que serán utilizados en el análisis de precios unitarios

de las partidas de construcción.

• El sistema propuesto además proporciona una interfaz web la cual de forma intuitiva

y sencilla permite al usuario gestionar y administrar tanto las partidas de construcción

como los recursos que se encuentran almacenados en la base de datos.

El objetivo principal del presente documento fue desarrollar una aplicación web que permitiera

a la ONG Vivienda Local confeccionar los documentos técnicos y económicos requeridos por

su Programa de Autoconstrucción Colaborativa, junto al desarrollo de una base datos que

centralice la información necesaria y la implementación de una interfaz web que permita la

gestión y administración de esta. De esta forma se logró solucionar los problemas que se

identificaron en la primera etapa del desarrollo del presente documento.

131

Bibliografías

Corporate Finance Institute. (2019, 27 septiembre). Google Sheets.

https://corporatefinanceinstitute.com/resources/excel/study/google-sheets/

Base de datos en Excel. (2014, 11 abril). Excel Total. https://exceltotal.com/base-de-datos-en-

excel/

Apps Script (2020). Google Developers. https://developers.google.com/apps-script

JavaScript. (2020, 26 octubre). Documentación web de MDN.

https://developer.mozilla.org/es/docs/Web/JavaScript