Tecnologia Web
Tecnologia Web
Tecnologia Web
TEMA:
Diseño De La Arquitectura Y Selección De Tecnologías Para El
Desarrollo De Una Aplicación Web
AUTORES:
Ramirez Obando Johnny Mauricio
Arteaga Franco Abid Abraham
Padilla Valverde Steven David
Sanchez Lino Cristhian Alfredo
Trejo Herrera Karla Fernanda
Zuñiga Ochoa Valentina Katherine
ASIGNATURA:
Tecnologías para la web
CURSO: C4
DOCENTE:
Castillo Villegas Kevin Gabriel
FECHA DE ENTREGA:
12/10/24
PERIODO:
Agosto 2024 a Diciembre 2024
MILAGRO-ECUADOR
Contenido
Introducción .......................................................................................................... 3
Desarrollo ............................................................................................................. 4
Analizar: ............................................................................................................... 4
Anexos ................................................................................................................ 14
Introducción
La heladería "El Sitio Frío" enfrenta un problema de gestión y operación de sus cuatro
sucursales, que actualmente llevan sus procesos de forma manual. La digitalización de
estos procesos es crucial para aumentar la eficiencia y la precisión en la gestión de
inventarios, el control de ventas, la facturación en tiempo real, y la generación de
reportes de pérdidas y ganancias. La empresa no cuenta con infraestructura tecnológica,
por lo que el desarrollo de una aplicación web adaptada a sus necesidades es esencial.
Esta aplicación deberá permitir gestionar usuarios y roles, facilitando el acceso y uso
de la herramienta de manera segura por el personal de la empresa.
El objetivo es diseñar una solución tecnológica que automatice y optimice los procesos
actuales, garantizando una adecuada integración de todos los locales y una plataforma
centralizada para la toma de decisiones. Se analizarán dos opciones: el despliegue en
la nube o la implementación de un pequeño data center, buscando la mejor opción
según las necesidades y recursos de la heladería.
https://drive.google.com/file/d/1clHpbWbqy2ow5zTJuKHdUBdakWZOb7GB/vi
ew?usp=sharing
Desarrollo
Analizar:
Una heladería “El sitio frio” de una determinada ciudad, cuenta con 4 locales en
diferentes sitios, cada uno de ellos cuenta con personal, que está dividido en heladeros,
ayudantes de heladería, meseros que atienden, cajeros u otros cargos propios del
negocio. Cada trabajador cobra quincenal, se hacen compras para todos los locales,
pero en forma general y son repartidos para cada local los materiales para la preparación
de los helados y postres, cada local realiza sus ventas.
Para ello es importante recalcar que la empresa no dispone de infraestructura para alojar
sus aplicaciones, es decir se consideran como “cero tecnologías”. En función a lo
anterior se necesita desarrollar una aplicación web que solucione dicho problema sin
importar que se despliegue en las instalaciones de la sucursal principal “El sitio frio” o
en la nube. Para ello es necesario diseñar la arquitectura y seleccionar las tecnologías
adecuadas (software libre). Además, es necesario analizar de manera general qué le
conviene al local “El sitio frio”, o contratar el servicio en la nube para alojar su
infraestructura o invertir en un pequeño data center.
¿Qué solución en cuanto a la arquitectura de la aplicación y tecnologías le
brindaría al gerente del local “El sitio frio”?
2. Control de ventas en tiempo real: Cada local debe poder registrar sus ventas
en tiempo real, permitiendo que la información se sincronice en una base de
datos centralizada.
3. Facturación electrónica: Generación de facturas electrónicas para cada venta
realizada, con soporte para integrarse con sistemas fiscales locales.
En cambio, nos inclinamos por una arquitectura en capas (n-tier), ya que permite una
mejor separación de responsabilidades y facilita tanto la escalabilidad como el
mantenimiento. Esta arquitectura divide la aplicación en tres capas:
Optamos por esta arquitectura porque nos ofrece la posibilidad de escalar cada capa de
manera independiente y nos permite que diferentes equipos trabajen simultáneamente
en distintas partes del sistema sin interferencias. Esto fue especialmente importante, ya
que queríamos una solución que pudiera adaptarse al crecimiento del negocio a medida
que abran más sucursales o aumenten sus ventas.
Opciones de Tecnologías
Backend: Para el backend, una de las primeras opciones que se plantearon fue Django
debido a su robustez y las múltiples funcionalidades integradas. Sin embargo, dado que
queríamos un backend altamente escalable y con capacidad para manejar múltiples
solicitudes en tiempo real, optamos por utilizar Node.js con Express. Node.js es una
excelente opción cuando se trata de gestionar aplicaciones web que requieren alta
capacidad de respuesta, como el control en tiempo real de ventas y facturación.
Además, su naturaleza no bloqueante nos pareció ideal para manejar las interacciones
simultáneas provenientes de las diferentes sucursales de la heladería. Express, como un
framework minimalista, nos permitió tener control total sobre el backend y mantener
la simplicidad del código.
Base de datos: Otra parte crucial del sistema era la base de datos. Inicialmente,
barajamos entre bases de datos relacionales y NoSQL. Consideramos MongoDB por
su flexibilidad con datos no estructurados, pero finalmente nos decidimos por
PostgreSQL. La razón fue que PostgreSQL nos ofrecía una estructura más robusta para
gestionar las relaciones complejas entre ventas, inventarios y empleados, características
fundamentales para nuestro sistema. Además, al ser una base de datos relacional,
facilita las consultas SQL tradicionales, lo que hace que la gestión de datos sea más
sencilla y eficiente.
c. Selección de la arquitectura
d. Selección de tecnologías
Permite separación de
responsabilidades,
Arquitectura en capas (n-
Arquitectura escalabilidad y facilita el
tier)
mantenimiento a largo
plazo.
Proporciona flexibilidad y
modularidad, ideal para
Frontend React.js
interfaces dinámicas y en
tiempo real.
Maneja múltiples
solicitudes en tiempo real
Backend Node.js con Express
con alta eficiencia y
escalabilidad.
Facilita el despliegue, la
portabilidad y la
Contenedores Docker
escalabilidad en la nube o
en local.
Ligero y eficiente,
adecuado para servir
Servidor Web Nginx contenido estático y como
proxy inverso para
Node.js.
f). - ¿Es necesario implementar en la nube o implementar un pequeño data
center? Explicar el porqué.
1. Escalabilidad:
2. Costos Iniciales:
3. Mantenimiento y Soporte:
4. Seguridad y Respaldo:
• Con la nube, "El Sitio Frío" puede acceder a su sistema desde cualquier lugar,
lo cual es beneficioso para la gestión de múltiples sucursales en tiempo real.
Esto proporciona flexibilidad operativa y permite que el sistema esté disponible
24/7.
Conclusión y Recomendaciones
A lo largo del desarrollo de este proyecto, adquirimos una serie de experiencias valiosas tanto a
nivel técnico como organizativo. La selección de la arquitectura y las tecnologías implicó un
proceso exhaustivo de análisis de las necesidades del negocio, así como de evaluación de
diferentes opciones tecnológicas. Estas son algunas de las principales lecciones aprendidas:
1. Importancia de una arquitectura escalable: Al optar por una arquitectura en capas (n-
tier), comprendimos la relevancia de diseñar sistemas que no solo solucionen problemas
actuales, sino que también estén preparados para el crecimiento y la expansión futura del
negocio. Esta experiencia nos hizo valorar la flexibilidad y adaptabilidad que ofrecen las
arquitecturas modulares.
Referencias Bibliográficas
• Tanenbaum, A. S., & Van Steen, M. (2016). Distributed systems: Principles and
paradigms. Pearson Education.
• Fowler, M. (2012). Patterns of enterprise application architecture. Addison-
Wesley.
• Jansen, S., & Bosch, J. (2010). Software Architecture. Springer.
• Freeman, E., & Robson, E. (2014). Head First JavaScript Programming.
O'Reilly Media.
• Duckett, J. (2014). JavaScript and JQuery: Interactive Front-End Web
Development. Wiley.
• Sholtz, J. (2021). Mastering Node.js. Packt Publishing.
• Kurniawan, B. (2020). Mastering Express.js. Mercury Learning.
• Meehan, E. (2019). React.js Essentials. Packt Publishing.
• Valentin, S., & Tarasov, S. (2017). Pro PostgreSQL Database for Engineers.
Springer.
• Merkel, D. (2014). Docker: Lightweight Linux containers for consistent
development and deployment. Linux Journal.
Anexos
React.js
Funciones