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