Proyecto Repositorio Web Josefa Manuela Gandarillas
Proyecto Repositorio Web Josefa Manuela Gandarillas
COCHABAMBA - BOLIVIA
2024
AGRADECIMIENTOS
Al: Todo, que nos da la oportunidad de existir y seguir adelante con las
oportunidades que nos comparte.
A la: Lic. Maria Cristina Puente Lara, por su tutela y apoyo con el desarrollo de este
proyecto.
A la: Lic. Beatriz, por ser una excelente profesora y asesora en el tiempo que
cursamos cuarto y quinto de secundaria, de la misma forma, por ser un ejemplo para
nosotros en muchos aspectos de la vida
Al: Lic. Alfaro, por ser un profesor dedicado y apasionado por su trabajo, que se
demuestra en nuestra pasión por la filosofía.
Asi tambien, el estudiante Colque Velasco Ricardo Israel expresa sus agradecimientos:
A: Mis amigos que me apoyaron y me enseñaron indirectamente sobre esta vida.
Del mismo modo, el estudiante Gonzales Ortiz Isaac Matias expresa sus agradecimientos:
A: Mis mascotas, tanto las ahora presentes, como las que ya no me acompañan;
por haberme brindado momentos llenos de alegría en los momentos inciertos para
este proyecto.
A: Mis amigos por brindarme tiempos de alegría y distracción, incluso en los más
estresantes.
Al: Colegio por hacerme entender que las riendas de mi educación las debo
tomar yo, y que ningún profesor se hará responsable de ello.
DEDICATORIA
CAPÍTULO 1. INTRODUCCIÓN............................................................................................... 1
CAPÍTULO 2. PLANTEAMIENTO DEL PROBLEMA...............................................................2
2.1. DIAGNÓSTICO Y DESCRIPCIÓN DE LA REALIDAD................................................. 2
2.2. IDENTIFICACIÓN DEL PROBLEMA............................................................................ 7
2.3. ANÁLISIS CAUSA-EFECTO.........................................................................................8
2.4. FORMULACIÓN DEL PROBLEMA.............................................................................. 8
2.5. OBJETIVOS..................................................................................................................9
2.5.1. Objetivo general...................................................................................................9
2.5.2. Objetivos específicos y acciones......................................................................... 9
2.6. JUSTIFICACIÓN......................................................................................................... 11
2.7. ALCANCES.................................................................................................................12
CAPÍTULO 3. MARCO REFERENCIAL................................................................................. 13
3.1. ESQUEMA DEL MARCO REFERENCIAL................................................................. 19
3.2. CONTENIDO DEL MARCO REFERENCIAL..............................................................19
3.3. TÉCNICAS Y MÉTODOS DE INVESTIGACIÓN........................................................ 21
3.3.1. Métodos de recolección de datos en la investigación........................................22
3.3.2. Técnicas de recolección de datos en la investigación....................................... 23
3.3.3. Instrumentos de recolección de datos en la investigación.................................24
3.4. PROGRAMACIÓN WEB.............................................................................................25
3.4.1. HyperText Markup Language (HTML)................................................................25
3.4.1.1. Estructura base en HTML......................................................................... 26
3.4.2. Cascading Style Sheets (CSS).......................................................................... 29
3.4.2.1. Selectores................................................................................................. 30
3.4.2.2. Modelo de caja..........................................................................................30
3.4.2.3. Posicionamiento........................................................................................31
3.4.2.4. Display...................................................................................................... 31
3.4.2.5. Diseño responsivo.....................................................................................31
3.4.2.6. Animaciones..............................................................................................32
3.5. PROGRAMACIÓN CON JAVASCRIPT...................................................................... 32
3.5.1. Object Oriented Programming (OOP)................................................................35
3.5.1.1. Herencia....................................................................................................36
3.5.2. Document Object Model (DOM).........................................................................37
3.5.3. Programación asincrónica................................................................................. 37
3.6. BASE DE DATOS....................................................................................................... 38
3.7. PROGRAMACIÓN BACK-END.................................................................................. 40
3.7.1. Lenguajes de programación del back-end.........................................................40
3.7.1.1. Javascript.................................................................................................. 40
3.7.1.2. C#..............................................................................................................41
3.7.1.3. Python....................................................................................................... 42
3.7.2. Node.js...............................................................................................................44
3.7.2.1. Express.js..................................................................................................45
3.8. (VCS) SISTEMA DE CONTROL DE VERSIONES GIT..............................................45
3.8.1. Registro de cambios (Commit).......................................................................... 47
3.8.2. Ramas (branches)............................................................................................. 47
3.8.3. Fusiones (merges)............................................................................................. 47
3.8.4. Fork....................................................................................................................48
3.9. DESARROLLO COLABORATIVO GITHUB................................................................48
3.9.1. Cómo funciona Git y GitHub juntos....................................................................49
3.10. ENTORNOS DE DESARROLLO INTEGRADO (IDE).............................................. 49
3.10.1. Visual Studio Code (VS Code).........................................................................51
3.10.1.1. Extensiones en Visual Studio (VS Code)................................................51
3.11. HOSTING DE SITIOS WEB......................................................................................52
3.11.1. Dominio.................................................................................................................. 52
CAPÍTULO 4. DESARROLLO DE LA INNOVACIÓN.............................................................54
4.1. PLANIFICACIÓN Y ORGANIZACIÓN........................................................................ 54
4.1.1. Cronograma de actividades............................................................................... 54
4.2. DESARROLLO DEL PRODUCTO O SERVICIO........................................................ 55
4.2.1. Identificación de los requerimientos del sistema............................................... 55
4.2.1.1. Requerimientos funcionales......................................................................55
4.2.1.2. Requerimientos no funcionales.................................................................57
4.2.2. Estructuración de base de datos e interacción con el servidor..........................61
4.2.2.1. Selección del lenguaje.............................................................................. 61
4.2.2.2. Servicios de Almacenamiento...................................................................62
4.2.2.3. Diseño back-end....................................................................................... 63
4.2.2.4. Definición de Autenticación y Autorización............................................... 65
4.2.2.5. Modelo de Datos (Esquemas MongoDB)..................................................66
4.2.3. Diseño de la interfaz de usuario y estilo visual.................................................. 68
4.2.3.1. Desarrollo y estructura de la interfaz........................................................ 68
4.2.3.2. Prototipos y Herramientas Utilizadas........................................................ 71
4.2.3.3. Adaptación a Dispositivos......................................................................... 72
4.2.3.4. Estilo Visual...............................................................................................73
4.3. RECURSOS................................................................................................................74
4.3.1. Humanos............................................................................................................74
4.3.1.1. Estudiante 1.............................................................................................. 74
4.3.1.2. Estudiante 2.............................................................................................. 75
4.3.1.3. Tutor del proyecto..................................................................................... 77
4.3.1.4. Profesor de BTH....................................................................................... 77
4.3.2. Materiales.......................................................................................................... 78
4.3.3. Financieros........................................................................................................ 79
4.3.3.1. Gastos realizados hasta el momento........................................................79
4.3.3.2. Gastos futuros estimados......................................................................... 79
4.4. PRESUPUESTO.........................................................................................................80
CAPÍTULO 5. METODOLOGÍA.............................................................................................. 81
5.1. ENFOQUE DE LA INVESTIGACIÓN..........................................................................81
5.2. TIPO DE INVESTIGACIÓN........................................................................................ 81
5.3. MÉTODO DE INVESTIGACIÓN................................................................................. 81
5.4. TÉCNICAS E INSTRUMENTOS DE RECOLECCIÓN............................................... 81
CAPÍTULO 6. CONCLUSIONES Y RECOMENDACIONES...................................................82
6.1. CONCLUSIONES....................................................................................................... 82
6.2. RECOMENDACIONES...............................................................................................83
BIBLIOGRAFÍA.........................................................................................................................1
ANEXOS....................................................................................................................................5
ANEXO A: Encuesta a la promoción de la Unidad Educativa Técnico Humanístico Josefa
Manuela Gandarillas............................................................................................................ 5
ANEXO B: Encuesta a la pre-promoción de la Unidad Educativa Técnico Humanístico
Josefa Manuela Gandarillas................................................................................................ 1
ANEXO C: Entrevista a la ex-estudiante Velásquez Espíndola Cleisabeth Rashely...........1
1
En los últimos años, muchas instituciones educativas del nivel secundario se han
estado sumando en la implementación del Bachillerato Técnico Humanístico (BTH),
modalidad de educación en la cual se brindan talleres y laboratorios de una especialidad en
específico a los estudiantes para así poder titularse como “Técnico medio” en dicha área.
Dicho proyecto se debe documentar por un medio escrito, donde se pone en evidencia todo
el contexto en el que se desarrolla el proyecto, los problemas que pretende solucionar, la
fundamentación teórica, así como también los pasos que se realizaron para la ejecución del
ya antes mencionado. En otras palabras, el documento será aquello que atestiguará todo lo
concerniente a dicho proyecto.
La labor de documentación va más allá de la sola idea de una impresión escrita, pues
siempre ha de existir el riesgo de la pérdida de aquel medio escrito o en su defecto, del
acceso permanente a pesar de la existencia del material susodicho, material que a su vez
juega una labor importante a la hora de aportar conocimientos e información para más
proyectos futuros y explotables.
En el nivel educativo en el que se plantea el BTH, resulta menester contar con métodos de
preservación de la información, ya que en el último tramo de esta etapa se trabaja en gran
medida en el proyecto de grado, haciendo habitual la consulta de información relacionada a
los mismos.
El 46,3% de los encuestados tardó entre 1 y 7 días para decidir el tema de su proyecto.
El 55,2% de los estudiantes utiliza Google como su principal medio de consulta, como se
logra apreciar en la Figura 1.
Un 53,7% de los estudiantes se inspiró en otros proyectos de distinto origen, como muestra
la Figura 3.
Y por último, el 70,1% de los encuestados identificó la falta de tiempo como la mayor
dificultad en el desarrollo de su proyecto.
De esta manera, podemos objetar que, para la mayoría de los estudiantes encuestados el
tiempo no es un factor que los acompañe; entre las labores educativas, evaluaciones,
representaciones obligatorias y una gran cantidad de actividades esparcidas a lo largo del
año, no son sino el lapso de los últimos cuatro meses en el caso de más de las tres cuartas
partes de los encuestados cuando inician el proceso del desarrollo de su proyecto, esto a su
vez, debido al tardío actuar de parte de la institución educativa ante el proceso de
elaboración de proyectos, de esa manera siendo el problema más presente en los
estudiantes de promoción, la falta de tiempo, que se ve condimentada con falta de
conocimiento para dicha acción y como tercer punto, problemas con el asesoramiento.
Pese a esto, cerca a la mitad de los estudiantes encuestados han tomado como inspiración
otros proyectos, ya sean de la misma unidad educativa u otras instituciones de índole
académica, pero sobre todo, proyectos de gestiones pasadas de la ya mencionada
institución educativa, denotando en ella la necesidad que se tiene por el acceso a proyectos
guías que sirvan como ayuda o como punto de inicio para la elaboración de otros proyectos,
es así como, poco más de la mitad de encuestados, siendo más exactos, solamente el
56,7% de los interpelados tuvieron acceso a algunos documentos pertenecientes a proyectos
de gestiones pasadas de la Unidad Educativa Técnico Humanístico Josefa Manuela
Gandarillas, de los cuales un 73,7% de las personas que señalaron tener acceso a dichos
documentos lo usaron como inspiración para sus propios proyectos.
5
El 42,0% de los estudiantes cuenta con el apoyo familiar para la realización de su proyecto,
como se puede apreciar en la Figura 4.
El 34,8% de los estudiantes utilizaría la información de Google como guía principal para la
realización de su proyecto.
6
En esta entrevista podemos rescatar que disponía tiempo en su planificación y análisis del
tema de su proyecto, posteriormente en la previa elaboración de su informe tuvo dificultades
con la falta de comunicación como también coordinación con su grupo de proyecto, ya que la
mayor parte de la elaboración de su proyecto la realizó la ex-estudiante de la Unidad
Educativa Técnico Humanístico Josefa Manuela Gandarillas, Velásquez Espíndola
Cleisabeth Rashely.
De igual modo, no presentó mucha comunicación de parte del tutor, dado que por esa razón
tuvo aquella dificultad de mala coordinación y comunicación con su grupo de proyecto, así
mismo, de esa manera solo tuvo 3 revisiones con su tutor en todo ese año.
Se puede destacar que aunque sea poco más de la mitad de estudiantes que tienen
acceso a la información de proyectos anteriores, la naturaleza de la misma se presume
ineficiente, limitada, desorganizada y descentralizada; lo que, apoyado con el factor limitado
de tiempo y un claro desconocimiento del tema arrastrado desde cursos anteriores, obliga a
los estudiantes a recurrir a medios más informales para la recolección de información.
2.5. OBJETIVOS
2.6. JUSTIFICACIÓN
Por una parte el presente proyecto lleva por intención ofrecer la información de los
proyectos elaborados por estudiantes de gestiones pasadas, esto así mismo conlleva a un
lugar de consulta y, por lo tanto, una praxis más eficiente y fácil a la hora de elaboración de
más proyectos, otorgando con el tiempo, práctica y tutela de los mismos maestros una mejor
calidad de documentación de proyectos.
Por otra parte, es posible que la persona autora del proyecto vea en la misma puntos que se
pueden mejorar, pero que, por los costos o la complejidad de dicha idea no son realizables.
Por lo tanto el autor puede dar los puntos explotables para otro proyecto por medio del
acápite de recomendaciones dentro del mismo documento, el repositorio al mejorar la
consulta de los proyectos, permitiría así que otros estudiantes puedan optar por continuar
sobre el trabajo ya hecho anteriormente por el autor original, mejorándolo o
complementándolo.
Eso lleva al siguiente punto, y es que al haber un espacio de consulta gestionado por los
maestros en la materia de BTH, habría una supervisión más grande de la coincidencia de
material respecto con el de gestiones pasadas, pues es probable encontrar dicho fenómeno
tras repetir ese proceso anualmente, es así que tras la selectividad y un proceso largo de
evaluación-aprobación mejorará la calidad de los proyectos con el pasar de los años, por el
método de prueba y error.
Así también beneficiaría a aquellos estudiantes que decidan emprender la elaboración del
proyecto desde una etapa más temprana de la gestión escolar, al tener ejemplos variados,
pero bajo una misma estructura del cómo deben manejar el proceso de elaboración de los
mismos; más aún sabiendo que el período de tiempo respectivo a la elaboración de los ya
mencionados coincide convenientemente con el intervalo de tiempo en el que se realiza
actividades de la promoción, actividades que gozan de más atención por parte de la
dirección que los ya mencionados trabajos necesarios para la titulación, pese a ser un
proceso largo y tendido.
Por ello se vuelve menester que los documentos de dichos trabajos de grado presenten una
sola estructura sólida para catalogarlos de manera más eficiente y redactarlos de maneras
más cómodas como también prácticas.
2.7. ALCANCES
● Electromecánica ● Electrónica
•Máquinas, equipos
•Transformación
• Técnicas y y
• Potencialidades y de la matriz
tecnologías herramientas
vocaciones productiva.
propias y de la (simples y
productivas de la •Métodos y
diversidad semicomplejos).
región. técnicas de
cultural. •Lectura y análisis
investigación
de productos
comunitaria.
tecnológicos.
• Elaboración y
• Seguridad y salud • Economía
gestión de
• Los materiales y ocupacional comunitaria y
proyectos
sus (seguridad finanzas públicas.
socioproductivos
propiedades industrial). • Gestión y cultura
• Costos de
• D. L. N°. 16998. tributaria.
producción.
15
• Gestión y
• Dibujo técnico establecimiento
• Contabilidad
• Derecho laboral. básico de
básica
• Seguridad • Software aplicado entidades
aplicada a unidades
social. al dibujo socioproductivas.
productivas.
técnico (CAD) • El
cooperativismo.
• Sistema de • Especialidades
gestión de técnica
la calidad iso • Planificación tecnológicas
9001 • Liderazgo estratégica según
• Sistema de comunitario. comunitaria. vocaciones y
gestión potencialidades
ambiental iso productivas.
14001.
La fundamentación teórica necesaria para realizar las acciones dirigidas a cumplir los
objetivos específicos propuestos se presenta en la Tabla 4.
20
OBJETIVOS FUNDAMENTACIÓN
ACCIONES
ESPECÍFICOS TEÓRICA
Analizar la situación
actual y los ● Encuestar a los estudiantes de
Gandarillas. sistema.
OBJETIVOS FUNDAMENTACIÓN
ACCIONES
ESPECÍFICOS TEÓRICA
Las investigaciones se originan por ideas, sin importar qué tipo de paradigma fundamente
nuestro estudio ni el enfoque que habremos de seguir. Las ideas constituyen el primer
acercamiento a la realidad objetiva y subjetiva. Sin embargo y debido a las diferentes
premisas que sustentan, desde el siglo pasado tales corrientes se han “polarizado” en dos
aproximaciones principales para indagar: el enfoque cuantitativo y el enfoque cualitativo de la
investigación. (Hernández Sampieri et al., 2010, pág 4)
Conversaciones
estructuradas o Profundidad
semiestructurad en las
Entrevistas Cualitativo respuestas Subjetividad
as para obtener
información Flexibilidad.
detallada.
Conjunto de
preguntas Respuestas
estandarizadas Rápido superficiales
enviadas a una
Encuestas Cuantitativo Análisis Depende de la
muestra para
obtener estadístico comprensión del
respuestas encuestado.
cuantificables.
TIPOS DE
CLASIFICACIÓN EJEMPLO CARACTERÍSTICA
VARIABLES
Variables cualitativas o no métricas.
Nacionalidad o Limita las
cualquier otro que posibilidades de
1) Nominales.
denota cualidad de análisis
algo. estadísticos.
Clase social, nivel Posibilidad de
de estudios, “ordenar”, en el
2) Ordinales.
ideología política, sentido de “mayor
Niveles de entre otros. que” o “menor que”.
medición. Variables cuantitativas o métricas.
40 - 50 minutos. Se realizan
3) De intervalo. 1 – 2 horas. operaciones
180–270 grados. aritméticas.
Se puede
establecer un cero
4) De razón o Edad: 0 a 17 años.
absoluto lo que
proporción. Calificación: 0 a 10.
permite el cálculo
de proporciones.
Puede hallarse
12.6 Kg
valores intermedios
1) Continuas. 3.8 m
entre dos valores
Escala de 4.5 ml
dados.
medición.
No cabe la
2) Discretas. 3 estudiantes posibilidad de hallar
valores intermedios.
25
TIPOS DE
CLASIFICACIÓN EJEMPLO CARACTERÍSTICA
VARIABLES
Influye en los
1) Independientes Causa de un atributos que
. problema adopta una variable
dependiente.
Función en la Efecto de una serie Constituye el objeto
2) Dependientes.
investigación. de causas. de análisis.
Si el efecto de estas
Velocidad, tiempo,
se llega a controlar
3) Cambiantes distancia, entre
pasan a ser
otros.
variables de control.
No pueden ser
Dolor, estabilidad,
1) Generales. directamente
Nivel de entre otros.
medidas.
abstracción.
Expresan alguna
2) Intermedias. Nivel educativo
dimensión.
Fuente: (Izquierdo Escribano Antonio, 2012).
El término "hipertexto" se refiere a los enlaces que conectan diferentes páginas web,
tanto dentro de un mismo sitio como entre sitios diferentes. Estos enlaces son
fundamentales para la Web, y al crear y enlazar contenido en línea, te integras
activamente en la «World Wide Web». (MDN web docs, 2024b)
HTML fue creado por Tim Berners-Lee en 1989 para compartir contenidos
científicos, con la versión inicial de 18 etiquetas para texto e hipertexto. Se fundaron
la Internet Engineering Task Force y el World Wide Web Consortium en 1993 para
establecer características del HTML. En 1996 se presentó la versión HTML 3. 2,
26
● <html>
● <head> Define la estructura y el
Estructura básica
● <body> contenido principal.
● <title>
● <p>
● <br> Organiza el texto en párrafos,
Párrafos y texto
● <strong> negritas, cursivas, etc.
● <em>
● <a
Crea enlaces entre páginas o
Enlaces href="URL">Texto
dentro de la misma página.
</a>
A medida que se avanza con HTML, se complementa con CSS para mejorar el
diseño visual, y JavaScript para añadir funcionalidad dinámica a los proyectos.
29
Según Oregoom (s. f.), acerca del lenguaje CSS y su trayecto en el mundo de
la programación web:
CSS fue desarrollado por el World Wide Web Consortium (W3C) en 1996 para
separar la presentación visual de una página web de su contenido estructural. La
primera versión, CSS1, permitía modificar elementos como color de fondo, tamaño de
fuente y márgenes, aunque con capacidades limitadas.
3.4.2.1. Selectores
Con esto se puede decir que los selectores en CSS son herramientas
que permiten seleccionar elementos HTML a los que se les aplicarán estilos.
Incluyen selectores de diferentes tipos,proporcionando flexibilidad y precisión
en la aplicación de estilos en una página web.
el modelo de caja en CSS hay que tomar en cuenta todos los espacios que
puede tener un elemento en CSS. Estos espacios son los siguientes:
3.4.2.3. Posicionamiento
3.4.2.4. Display
3.4.2.6. Animaciones
Las animaciones CSS tienen tres ventajas principales sobre las técnicas
tradicionales de animación basada en scripts:
1. Son muy fáciles de usar para animaciones sencillas, puedes hacerlo
incluso sin tener conocimientos de Javascript.
2. La animación se muestra correctamente, incluso en equipos poco
potentes. Animaciones simples realizadas en Javascript pueden verse
mal (a menos que estén muy bien hechas). El motor de renderizado
puede usar técnicas de optimización como el "frame-skipping" u otras
técnicas para que la ejecución de la animación se vea tan suave como
sea posible.
3. Al ser el navegador quien controle la secuencia de la animación,
permitimos que optimice el rendimiento y eficiencia de la misma, por
ejemplo, reduciendo la frecuencia de actualización de la animación
ejecutándola en pestañas que no estén visibles.
Según Haverbeke (2024), JavaScript fue introducido en 1995 como una forma de
agregar programas a páginas web en el navegador Netscape Navigator. Desde entonces, el
lenguaje ha sido adoptado por todos los demás navegadores web gráficos principales. Ha
33
hecho posibles aplicaciones web modernas, es decir, aplicaciones con las que puedes
interactuar directamente sin tener que recargar la página para cada acción.
Por otro lado, JavaScript casi no tiene nada que ver con el lenguaje de programación
llamado Java. El nombre similar fue inspirado por consideraciones de marketing, pues
cuando JavaScript estaba siendo introducido, el lenguaje Java estaba siendo fuertemente
comercializado y estaba ganando popularidad.
También hay versiones de JavaScript del lado del servidor más avanzadas, como
Node.js, que te permiten agregar más funcionalidad a un sitio web que simplemente
descargar archivos (como la colaboración en tiempo real entre varias computadoras). Dentro
de un entorno (por ejemplo, un navegador web), JavaScript se puede conectar a los objetos
de su entorno para proporcionar control programático sobre ellos. (Haverbeke, 2024)
MDN web docs (2023a) indica que, el núcleo de JavaScript se puede extender para una
variedad de propósitos completándolo con objetos adicionales; por ejemplo:
● JavaScript de lado del cliente extiende el núcleo del lenguaje al proporcionar objetos
para controlar un navegador y su Modelo de objetos de documento (DOM por
Document Object Model). El DOM define la forma en que los objetos de documentos
HTML se exponen al «script». Para tener una mejor idea de las diferentes tecnologías
que se utilizan al programar con JavaScript. Por ejemplo, las extensiones de lado del
cliente permiten que una aplicación coloque elementos en un formulario HTML y
responda a eventos del usuario, como clics del mouse, formularios para ingreso de
datos y navegación de páginas.
34
● JavaScript de lado del servidor amplía el núcleo del lenguaje al proporcionar objetos
relevantes para ejecutar JavaScript en un servidor. Por ejemplo, las extensiones de
lado del servidor permiten que una aplicación se comunique con una base de datos,
brinde continuidad de información de una invocación a otra de la aplicación o realice
manipulación de archivos en un servidor.
Esto significa que en el navegador, JavaScript puede cambiar la apariencia de la página web
(DOM). Y, del mismo modo, el JavaScript de Node.js en el servidor puede responder a
solicitudes personalizadas desde el código escrito en el navegador, en la tabla 8 se aprecia
una descripción del uso de JavaScript en páginas web.
- Alta interactividad
y control del
Se usa JavaScript del lado
DOM.
Frontend del cliente para gestión de - React.js
- Compatible con
(Cliente) la interfaz de usuario y la - Angular
todos los
experiencia interactiva.
navegadores
modernos.
35
- MEAN
(MongoDB,
Se puede usar JavaScript - El uso del mismo
Express,
en ambos, frontend y lenguaje para
Lenguaje Angular,
backend, para crear todo el stack.
Universal Node.js)
aplicaciones completas de - Fácil integración
(Full Stack) - MERN
una sola página o con APIs RESTful
(MongoDB,
sistemas completos. y microservicios.
Express, React,
Node.js)
Este lenguaje es versátil y se utiliza tanto en el cliente como en el servidor, lo que permite
crear aplicaciones ricas y dinámicas que responden a las acciones del usuario en tiempo
real. Además, su capacidad de integrarse con el Modelo de Objetos de Documento (DOM) lo
hace fundamental para manipular elementos en las páginas web, brindando un control total
sobre la experiencia del usuario.
Podemos imaginar un objeto como un gabinete con archivos firmados. Cada pieza de
datos es almacenada en su archivo por la clave. Es fácil encontrar un archivo por su
nombre o agregar/eliminar un archivo. (javascript.info, 2024)
Esto es conocido como abstracción —crear un modelo simple de algo complejo que
represente sus aspectos más importantes y que sea fácil de manipular para el
propósito de nuestro programa. En algunos lenguajes de POO, esta definición de tipo
de objeto se la llama clase— esto no es en realidad un objeto, en vez de esto es un
modelo que define las características que un objeto debería tener. (MDN web docs,
2024c)
3.5.1.1. Herencia
Un objeto prototipo del objeto puede tener a su vez otro objeto prototipo, el
cual hereda métodos y propiedades, y así sucesivamente. Esto es conocido
con frecuencia como la cadena de prototipos, y explica por qué objetos
diferentes pueden tener disponibles propiedades y métodos definidos en otros
objetos. (MDN web docs, 2024d)
Una base de datos de documentos es un tipo de base de datos NoSQL que se puede
usar para almacenar y consultar datos como documentos tipo JSON. La notación de objetos
de JavaScript (JSON) es un formato abierto de intercambio de datos legible tanto por los
humanos como por las máquinas. Los desarrolladores pueden usar documentos JSON en su
código y guardarlos directamente en la base de datos de documentos. La naturaleza flexible,
semi-estructurada y jerárquica de los documentos y las bases de datos de documentos
permite que evolucionen según las necesidades de las aplicaciones. (Amazon Web Services,
s. f.)
SQL es un lenguaje de programación que utilizan casi todas las bases de datos relacionales
para consultar, manipular y definir los datos, y para proporcionar control de acceso. El SQL
se desarrolló por primera vez en IBM en la década de 1970 con Oracle como uno de los
39
principales contribuyentes, lo que dio lugar a la implementación del estándar ANSI SQL. El
SQL ha propiciado muchas ampliaciones de empresas como IBM, Oracle y Microsoft.
Aunque el SQL se sigue utilizando mucho hoy en día, están empezando a aparecer nuevos
lenguajes de programación. (Oracle, 2020)
Ejemplos
Base de Datos Ventajas Desventajas
Populares
- Estructura bien
definida. - Escalabilidad
MySQL,
- Soporta limitada
PostgreSQL,
Relacional (SQL) transacciones horizontalmente
SQLite, Microsoft
ACID. - Requiere
SQL Server
- Escalabilidad esquema fijo.
vertical.
- No siempre
- Escalable garantiza
horizontalmente consistencia. MongoDB,
No Relacional
- Flexible para - Menor soporte Cassandra,
(NoSQL)
manejar varios para CouchDB, Redis
tipos de datos. transacciones
complejas.
Backend es el lado del servidor del sitio web. Almacena y organiza datos, y también se
asegura de que todo en el lado del cliente del sitio web funcione bien. Es la parte del sitio
web que no puede ver ni interactuar. Es la parte del software que no entra en contacto
directo con los usuarios. Los usuarios acceden indirectamente a las partes y características
desarrolladas por los diseñadores de back-end a través de una aplicación de front-end. Las
actividades, como escribir API, crear bibliotecas y trabajar con componentes del sistema sin
interfaces de usuario o incluso sistemas de programación científica, también se incluyen en
el backend. (Filipova & Vilao, 2018)
3.7.1.1. Javascript
Ventajas:
Desventajas:
Ventajas:
Desventajas:
Ventajas:
Desventajas:
Toda la teoría que se menciona en este título servirá para poder escoger las
herramientas que mejor se adapten a los requerimientos del sistema para la parte lógica y
funcional.
Mapeo Validación
Tipos de Curva de
Framework Lenguaje relacional de
proyectos aprendizaje
de objetos formularios
Por Plugin
NodeJS JavaScript Sí Medianos Media
(express.js)
Mapeo Validación
Tipos de Curva de
Framework Lenguaje relacional de
proyectos aprendizaje
de objetos formularios
Por Plugin
Visual Basic
.Net Sí (windows Medianos Baja
/ .Net / C#
forms)
3.7.2. Node.js
3.7.2.1. Express.js
Según Chacon & Straub (2024), acerca del sistema de control de versiones Git:
Como muchas de las grandes cosas en esta vida, Git comenzó con un poco de
destrucción creativa y una gran polémica. El kernel de Linux es un proyecto de
software de código abierto con un alcance bastante amplio. Durante la mayor parte
del mantenimiento del kernel de Linux (1991-2002), los cambios en el software se
realizaban a través de parches y archivos. En el 2002, el proyecto del kernel de Linux
empezó a usar un DVCS propietario llamado
● Velocidad
● Diseño sencillo
● Gran soporte para desarrollo no lineal (miles de ramas paralelas)
● Completamente distribuido
● Capaz de manejar grandes proyectos (como el kernel de Linux)
eficientemente (velocidad y tamaño de los datos)
Con esto se puede decir que, Git surgió en 2005 como respuesta a la necesidad de la
comunidad del kernel de Linux de encontrar una nueva herramienta de control de versiones
tras la ruptura con BitKeeper, un sistema propietario que habían utilizado desde 2002.
Cuando BitKeeper dejó de ser gratuito, Linus Torvalds, creador de Linux, decidió desarrollar
una herramienta propia que cumpliera con los requisitos que habían aprendido al trabajar
con el kernel: velocidad, simplicidad, soporte para un desarrollo no lineal y la capacidad de
manejar grandes proyectos de manera eficiente.
47
Un commit en Git es una acción que registra los cambios realizados en los
archivos de un repositorio. Cada commit es como un punto de control, permitiendo
que los desarrolladores documenten y rastreen el progreso del proyecto de manera
organizada.
Cada rama es como una "copia" del proyecto en un punto determinado, y los
desarrolladores pueden hacer commits en ella sin interferir con el trabajo de otras
ramas. Al finalizar el trabajo en una rama, se puede fusionar (merge) con otra rama,
generalmente la principal, para incorporar los cambios.
El fork es útil, sobre todo en proyectos de código abierto, ya que permite que
contribuyas a un proyecto realizando cambios o mejoras. Una vez que completes tu
trabajo, puedes solicitar que esos cambios sean integrados en el repositorio original
mediante un pull request. Esto permite que el mantenedor del proyecto revise y
acepte o rechace las modificaciones.
Según GitHub Docs (s. f.), acerca del desarrollo colaborativo con GitHub:
GitHub es una plataforma donde se puede almacenar, compartir y trabajar junto con
otros usuarios para escribir código.
Hay muchas acciones relacionadas con Git que puedes completar en GitHub
directamente en el navegador, como crear un repositorio de Git, crear ramas y cargar
y editar archivos.
Sin embargo, la mayoría de las personas trabajan en sus archivos localmente (en su
propio ordenador), luego sincroniza continuamente estos cambios locales y todos los
datos de Git relacionados, con el repositorio central "remoto" en GitHub. Hay muchas
herramientas que puedes usar para hacerlo, como GitHub Desktop. (GitHub Docs,
s. f.)
Por otro lado, un editor de código es más ligero, centrado únicamente en la edición de
texto y sin muchas de las herramientas que tiene un IDE. Un editor de código como Sublime
Text o Visual Studio Code "se especializa en la edición rápida y sencilla de código, siendo
personalizable mediante plugins" (Stack Overflow, 2024).
En resumen, los IDEs son más adecuados para proyectos grandes y complejos,
mientras que los editores de código ofrecen una experiencia más ligera y personalizable para
tareas de programación más simples.
Lenguajes Características
Herramienta Tipo
Soportados Principales
● Depurador avanzado
C#, C++, VB.NET, ● Integración con Azure
Visual Studio IDE Python, JavaScript, ● Diseño visual de
etc. interfaces (WPF,
WinForms)
● Asistencia de código
para PHP
PHP, JavaScript, ● Integración con
PHPStorm IDE
HTML, CSS, etc. herramientas de
desarrollo web
(MySQL, Docker, etc)
3.11.1.Dominio
Según se dice en Habil Web (s. f.), el dominio es el identificador del sitio web.
Se puede contratar un dominio y renovarlo periódicamente, pero no serviría si no se
tiene un hosting detrás porque solo se vería la dirección, pero no los archivos,
formularios de contacto o productos. Ejemplo: «www.tumarca.com».
Semana 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Elaboración del
perfil
Recopilación de
información
Elaboración
de Marco
Referencial
Elaboración
del desarrollo
de la
innovación
Realización del
tercer objetivo
Pre-defensa del
proyecto
Defensa del
proyecto
Solo el administrador
puede crear nuevas
cuentas de profesor o
Crear cuentas administrador. Estas
cuentas deben incluir un
Gestión de
nombre de usuario y
cuentas de
contraseña.
usuarios (CRUD)
El administrador puede
ver la lista completa de
Leer cuentas cuentas de profesores y
gestionar todas las
cuentas.
57
Facilidad de uso
El sistema debe
proporcionar
documentación clara para
Documentación clara los profesores y el
administrador, explicando
cómo usar la plataforma
eficientemente.
En base a los requerimientos damos con un sistema que necesita crear, leer y
actualizar información de proyectos; de la misma forma, se debe permitir la creación,
lectura, actualización y eliminación de cuentas para profesores. Es de esa manera
que dividimos los permisos en tres tipos de usuario: Administrador, profesor y
visitante. Solo dos de los tres tipos de usuario poseerán cuenta, el visitante no la
necesita por la mera necesidad de solo consultar la información de proyectos.
JAVASCRIPT
CRITERIO PYTHON PHP
(NODE.JS)
JAVASCRIPT
CRITERIO PYTHON PHP
(NODE.JS)
Arquitectura no
Compatible con
bloqueante y Manejo sincrónico
programación
asincrónica, de solicitudes,
Desempeño y asincrónica, pero
excelente para menos eficiente en
Concurrencia menos eficiente
manejar múltiples aplicaciones de alto
en concurrencia
solicitudes tráfico.
que Node.js.
simultáneamente.
Ampliamente
Amplio soporte en la Compatible con soportado en
nube (AWS, Heroku, servicios en la servidores, pero
Despliegue y Azure), con gran nube, pero menor necesita
Ecosistema variedad de enfoque en adaptaciones
bibliotecas de código microservicios de adicionales para
abierto. tiempo real. despliegue en
nube.
● Rutas API: Las rutas definen las URL y métodos HTTP (GET, POST,
PUT, DELETE) que permiten interactuar con el servidor.
Por otro lado, las rutas que se planean usar para la comunicación entre
cliente - servidor y el uso de los respectivos métodos se detallan en la
tabla 17.
65
Crear un nuevo
POST /proyectos
proyecto
Obtener todos
GET /proyectos
los proyectos
CRUD
PROYECTOS Obtener un
GET /proyectos/:id proyecto
específico
Actualizar un
PUT /proyectos/:id
proyecto
Obtener todas
GET /cuentas
las cuentas
CRUD
CUENTAS
Actualizar una
PUT /cuentas/:id
cuenta
Eliminar una
DELETE /cuentas/:id
cuenta
Para asegurar que cada usuario pueda acceder solo a las funciones
permitidas por su rol, el sistema usa middleware, el cual verificará el token del
usuario. De esta forma, el sistema confirmará que solo los usuarios
autenticados y autorizados accedan a ciertas rutas y funciones según sus
permisos, manteniendo así la seguridad y la estructura de permisos del
sistema.
El nombre del
Título String
proyecto
Una breve
Resumen String descripción del
proyecto
El año en que se
presentó el
Gestión Number
proyecto
67
Los nombres de
Tutores Array of String los tutores
asignados
Clasificación del
Categorías Array of String
proyecto
Palabras que
ayudan en la
Palabras clave Array of String
búsqueda de
proyectos
Se iniciará como
`null`, ya que los
proyectos no
Calificación Number tendrán
calificación hasta
el día de la
defensa
El nombre o
Nombre de
String identificación del
usuario
profesor
MODELO DE
DATOS DE
La contraseña
CUENTAS
con la que se
Contraseña String
podrá acceder a
la cuenta
INTERFAZ DE
INTERFAZ DESCRIPCIÓN
USUARIO Y VISUAL
Nombre de la web,
generalmente enlazado
a la página principal,
Inicio de la página que sirve como un
ancla visual y facilita
regresar al inicio con un
solo clic.
INTERFAZ DE
INTERFAZ DESCRIPCIÓN
USUARIO Y VISUAL
Proyectos publicados
ordenados de acuerdo
Temas a su tema principal para
una mejor facilitación
de la búsqueda.
Información de
proyectos por gestión
publicados en una
Gestiones jerarquía desde el
primer proyecto público
hasta el último proyecto
publicado.
71
INTERFAZ DE
INTERFAZ DESCRIPCIÓN
USUARIO Y VISUAL
Ayuda e información
Acerca de sobre los creadores de
la página y el sitio web.
Estas herramientas fueron esenciales para cubrir todas las etapas del
desarrollo, desde la planificación y la organización de los elementos hasta la
implementación y control de versiones del código.
Este diseño responsivo asegura que la página web sea accesible y fácil de
usar en todos los dispositivos, manteniendo una experiencia de usuario
coherente y eficiente.
● Tipografía
Títulos en serif: Se utilizó una tipografía con serif para los títulos y
encabezados. Las serifas (pequeñas líneas o detalles al final de las
letras) añaden un toque de formalidad y profesionalismo, además de
crear un contraste visual que facilita la identificación rápida de las
secciones principales en la interfaz.
● Paleta de colores:
● Iconografía y gráficos:
4.3. RECURSOS
4.3.1. Humanos
4.3.1.1. Estudiante 1
● Estudiar el desarrollo
colaborativo con control de
versiones por vía de Git y
GitHub.
● Realizar pruebas de
4.3.1.2. Estudiante 2
● Entrevistar a alumnos
Analizar la situación actual y los
graduados de la Unidad
requerimientos del proceso de
Educativa Técnico
elaboración de proyectos de
Humanístico Josefa Manuela
titulación por la cual pasan los
Gandarillas.
estudiantes de la Unidad Educativa
Técnico Humanístico Josefa ● Identificar los requerimientos
Manuela Gandarillas. del sistema.
76
● Estudiar la elaboración de
bases de datos, creación de
servidores y lenguajes de
programación usados en el
back-end.
Planificar la estructura, diseño y
funcionalidad con la que contará el ● Estructurar la base de datos y
repositorio web. su interacción con el servidor
● Estudiar el desarrollo
colaborativo con control de
versiones por vía de Git y
GitHub.
● Realizar la programación y
conexión de servidor con base
de datos y el resto del
repositorio.
Implementar el repositorio web para
el uso libre de los estudiantes y ● Realizar pruebas de
profesores de la Unidad Educativa funcionamiento del sitio web.
Técnico Humanístico Josefa
● Realizar ajustes y correcciones
Manuela Gandarillas.
al sistema completo.
Tareas específicas:
De la misma forma, ayudó a los estudiantes a definir los objetivos del proyecto
y a crear un cronograma realista respecto al arte de la programación, con
plazos para cada fase: investigación, diseño, pruebas y presentación final.
4.3.2. Materiales
● Computadoras y laptops
● Dispositivos móviles
EQUIPOS TECNOLÓGICOS
● Dispositivos de respaldo (unidades
externas, servicios en la nube)
4.3.3. Financieros
PRECIO
CANTIDAD DESCRIPCIÓN TOTAL
UNITARIO
PRECIO TOTAL 53 bs
PRECIO
CANTIDAD DESCRIPCIÓN TOTAL
UNITARIO
4.4. PRESUPUESTO
6.1. CONCLUSIONES
BIBLIOGRAFÍA
Amazon Web Services. (s. f.). ¿Qué es una base de datos de documentos? - Explicación de
las bases de datos y los almacenes de documentos - AWS. Amazon Web Services,
https://aws.amazon.com/es/nosql/document/
Best of web. (2024). Express Overview, Examples, Pros and Cons in 2024.
https://best-of-web.builder.io/library/expressjs/express
Elmasri, R., & Navathe, S. B. (2015). Fundamentals of Database Systems (7th ed.).
Express. (2024, octubre 15). Introducing Express v5: A New Era for Node.js Framework.
https://expressjs.com
Filipova, O., & Vilao, R. (2018). Software Development From A to Z. Berlin: Apress.
doi:978-1-4842-3945-2
Flores, J. L. (2019, septiembre 4). Qué es NodeJS y para qué sirve | OpenWebinars.
OpenWebinars.net. https://openwebinars.net/blog/que-es-nodejs/
https://capacitateparaelempleo.org/
GitHub Docs. (s. f.). Acerca de GitHub y Git—Documentación de GitHub. GitHub Docs.
https://docs.github.com/es/get-started/start-your-journey/about-github-and-git
HABIL WEB. (s. f.). ¿Qué necesitas? Para iniciar tu PROYECTO WEB.
2
https://www.webhosting.com.bo/wp-content/uploads/2021/10/PDF-Explicativo.pdf
https://pub-97d2f14809854ff1870055724c829992.r2.dev/book.pdf
Hernández Sampieri, R., Fernández Collado, C., & Baptista Lucio, P. (2010). Metodología de
la investigación (5a ed). McGraw-Hill.
López Ramírez, V. A. (s. f.). BTH - Bachillerato Técnico Humanístico. RESEÑA HISTÓRICA
DE LA EDUCACIÓN TÉCNICA EN BOLIVIA:
https://sites.google.com/view/bachilleratotecnico/inicio
MDN web docs. (s. f.). Introducción—Referencia de la API Web | MDN. Recuperado 18 de
octubre de 2024, de
https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction
MDN web docs. (2023a, agosto 2). Selectores CSS - Aprende desarrollo web | MDN.
https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors
https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Introduction
https://developer.mozilla.org/es/docs/conflicting/Web/JavaScript
MDN web docs. (2024b, julio 28). HTML: Lenguaje de etiquetas de hipertexto | MDN.
https://developer.mozilla.org/es/docs/Web/HTML
MDN web docs. (2024c, julio 28). JavaScript orientado a objetos para principiantes | MDN.
https://developer.mozilla.org/es/docs/conflicting/Learn/JavaScript/Objects/Classes_in_
JavaScript
MDN web docs. (2024d, julio 28). Prototipos de objetos—Aprende desarrollo web | MDN.
3
https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects/Object_prototypes
MDN web docs. (2024e, julio 30). Usando animaciones CSS - CSS | MDN.
https://developer.mozilla.org/es/docs/Web/CSS/CSS_animations/Using_CSS_animati
ons
https://www.minedu.gob.bo/files/publicaciones/unicom/Avanzamos/2018/Avanzamos-
56a1.pdf
Nivardo. (2023, enero 22). CSS Position Cómo usar en CSS. Oregoom.com.
https://oregoom.com/css/position/
https://www.oracle.com/cl/database/what-is-database/
Oregoom. (s. f.). CSS Display Cómo usar en CSS. Recuperado 19 de octubre de 2024, de
https://oregoom.com/css/display
https://blog.back4app.com/es/los-diez-mejores-lenguajes-de-backend/#Tipos_de_leng
uajes_de_programacion
Robbins, J. N. (2012). Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript,
https://codingtube.dev/docs/html/etiquetas-html/
https://codingtube.dev/docs/css/modelo-de-caja-en-css/
Serna Group. (2021). HTML | Historia | Para qué sirve | Características—Serna Group.
https://sernagrp.com/blog/html/
Visual Studio Code. (s. f.). Visual Studio Code—Code Editing. Redefined. Recuperado 20 de
ANEXOS
4. ¿Qué tipo de guía tiene para la realización de su proyecto? (Puede seleccionar
más de una opción)
a. Información de Google 24
b. Inteligencia artificial 21
c. Libros 16
d. Proyectos anteriores 14
e. Consulta a profesores 13
f. Ninguno 16
17
5. ¿Tuvo alguna guía para la elaboración del informe y del proyecto?
Nos dieron desde el principio una estructura que debíamos respetar, pero
sobre todo, nos ayudó el internet para guiarnos en cómo hacer nuestro proyecto, al
haber muchos proyectos en ella.