0% encontró este documento útil (0 votos)
11 vistas9 páginas

Lait704 U4 Ai

El documento describe un proyecto final para la asignatura 'Aplicaciones web', que consiste en el desarrollo de un sistema gestor de álbumes de fotos para múltiples usuarios. Se implementan reglas de negocio en formato XML para la funcionalidad de favoritos, asegurando una clara separación entre las reglas y el código, así como la verificación y extensibilidad del sistema. Además, se utiliza una API para garantizar la persistencia de datos, la sincronización entre dispositivos y la seguridad en la autenticación de usuarios.

Cargado por

aikopulido
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas9 páginas

Lait704 U4 Ai

El documento describe un proyecto final para la asignatura 'Aplicaciones web', que consiste en el desarrollo de un sistema gestor de álbumes de fotos para múltiples usuarios. Se implementan reglas de negocio en formato XML para la funcionalidad de favoritos, asegurando una clara separación entre las reglas y el código, así como la verificación y extensibilidad del sistema. Además, se utiliza una API para garantizar la persistencia de datos, la sincronización entre dispositivos y la seguridad en la autenticación de usuarios.

Cargado por

aikopulido
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Nombre: Ximena Aiko Pulido Martínez

Grupo: 710
Materia: Aplicaciones web
Unidad: Actividad Integradora
Maestro/a: DAN OMAR MARRON MUÑOZ
Carrera: TIC’S
Introducción

La actividad integradora tiene como propósito aplicar y demostrar los conocimientos,


habilidades y destrezas adquiridas a lo largo de la asignatura “Aplicaciones web”. Para
ello, se propone retomar y unificar aprendizajes previos mediante el desarrollo de un
proyecto final que dé solución concreta al problema prototípico planteado desde el
inicio del curso.
El reto principal consiste en el diseño y construcción de un sistema gestor de álbumes
de fotos, orientado a múltiples usuarios. Este sistema permitirá a cualquier persona
interesada en almacenar y compartir sus recuerdos fotográficos, contar con una
plataforma web propia, funcional y segura.

El desarrollo de esta aplicación web se basa en una serie de reglas de negocio clave:

 Los usuarios deberán registrarse para utilizar el sistema y tener la posibilidad de


publicar sus fotos.
 Una vez registrados, los usuarios podrán crear múltiples álbumes, sin
limitaciones, y dentro de cada uno, publicar todas las fotografías que deseen.
 La visualización de álbumes y fotos será pública, es decir, no se requerirá registro
para acceder al contenido visual, lo cual amplía el alcance y exposición de las
imágenes.

Este enfoque no solo permite poner en práctica competencias técnicas en el


desarrollo web (como diseño de interfaces, programación del lado del cliente y del
servidor, gestión de bases de datos, etc.), sino también comprender la importancia de
la experiencia del usuario, la seguridad, y la escalabilidad en aplicaciones web reales.
Elementos XML utilizados en la implementación

En el proyecto "Mis Mejores Momentos", implementé un sistema de reglas


basado en XML para definir el comportamiento de la funcionalidad de
favoritos. Estos elementos XML actúan como una documentación
estructurada y un contrato de implementación que garantiza que la
funcionalidad se comporte según lo esperado.

 Estructura de las Reglas XML


Las reglas XML se implementaron como comentarios documentales en el
archivo [Link] (líneas 837-873) y siguen esta estructura:

<rules>

<rule id="favorites-functionality">

<description>El usuario puede guardar en la sección de favoritos los álbumes que más le gusten
dando clic en el icono de corazón.</description>

<conditions>

<condition>El usuario debe hacer clic en el icono de corazón (heart-icon) en cualquier


álbum</condition>

<condition>El álbum debe tener un data-album-id único para identificación</condition>

<condition>El estado de favorito debe persistir durante la sesión del usuario</condition>

</conditions>

<actions>

<action>Cambiar el estado visual del icono de corazón (lleno/vacío)</action>

<action>Agregar o remover el álbum de la lista de favoritos del usuario</action>

<action>Mostrar notificación de confirmación al usuario</action>

<action>Actualizar la sección "Mis Favoritos" con los álbumes guardados</action>

</actions>

</rule>
<rule id="favorites-authentication-required">

<description>El usuario puede guardar los álbumes siempre y cuando este registrado y haya ingresado al
sistema.</description>

<conditions>

<condition>El usuario debe estar autenticado (logged in) en el sistema</condition>

<condition>El usuario debe tener una sesión activa válida</condition>

<condition>Los botones de favoritos tienen la clase "auth-required"</condition>

</conditions>

<restrictions>

<restriction>Si el usuario no está autenticado, mostrar modal de login al hacer clic en


favoritos</restriction>

<restriction>Los usuarios no registrados no pueden acceder a la funcionalidad de favoritos</restriction>

<restriction>Los favoritos solo son visibles para el usuario propietario</restriction>

</restrictions>

<fallback>

<action>Mostrar mensaje de "Inicia sesión para guardar favoritos"</action>

<action>Redirigir al modal de autenticación</action>

<action>Deshabilitar visualmente los botones de favoritos para usuarios no autenticados</action>

</fallback>

</rule>

</rules>
Justificación de la Implementación XML

 La implementación basada en reglas XML se justifica por


estas razones:

 Separación de reglas de negocio y código: Las reglas XML


definen claramente el comportamiento esperado, mientras que el
código JavaScript las implementa, manteniendo una clara separación
de responsabilidades.

 Documentación estructurada: Las reglas XML sirven como


documentación para otros desarrolladores, explicando claramente
cómo debe funcionar el sistema de favoritos.

 Verificabilidad: Las reglas en formato XML permiten una verificación


sistemática de que la implementación cumple con todos los requisitos
establecidos.

 Extensibilidad: Es fácil agregar nuevas reglas o modificar las


existentes sin cambiar la estructura principal del código.

 Trazabilidad: El formato XML permite rastrear fácilmente cada


condición y acción para asegurar que todas estén implementadas en el
código.
Implementación en Código

Estas reglas XML se implementaron en el código JavaScript


(assets/[Link]) principalmente a través de:

 Selector de clase auth-required: Todos los botones de favoritos tienen


esta clase (líneas 395-522) que activa la verificación de autenticación.

 Función toggleFavorite(): Implementa la lógica de alternar estado


(líneas 1105-1155) respetando las condiciones XML.

 Función loadUserFavorites(): Carga los favoritos del usuario (líneas


1157-1190) siguiendo las acciones definidas.

 Sistema de API fallback: Intenta primero usar la API externa y, como


fallback, utiliza localStorage (líneas 1021-1100), implementando así la
lógica de respaldo definida en las reglas.

Este enfoque garantiza que la funcionalidad de favoritos se comporte


exactamente como se especifica en las reglas XML, proporcionando una
experiencia de usuario consistente y confiable.
¿Para qué sirve el uso de API en este proyecto?

El sistema de API (Application Programming Interface) en "Mis Mejores


Momentos" está diseñado para conectar tu aplicación web con un servidor
backend real, permitiendo que los datos se guarden de forma permanente
y segura en lugar de solo en el navegador local.

 Propósitos Principales de la API

 Persistencia Real de Datos


Sin API: Los favoritos se guardan solo en tu navegador (localStorage) y se
pierden si cambias de dispositivo o borras el navegador
Con API: Los favoritos se guardan en una base de datos real y están
disponibles desde cualquier dispositivo
 Sincronización Entre Dispositivos
Puedes iniciar sesión desde tu móvil, tablet o computadora y ver los
mismos favoritos
Los cambios se sincronizan automáticamente en todos tus dispositivos
 Seguridad y Autenticación Real
Sin API: Los usuarios se guardan localmente (menos seguro)
Con API: Autenticación real con tokens de seguridad y validación en
servidor
 Funcionalidades Avanzadas
Álbumes compartidos entre usuarios reales
Sistema de comentarios y calificaciones
Notificaciones cuando alguien favorea tus álbumes
Backup automático de todas tus fotos

Resultado Final

Con la API configurada, la plataforma se convierte en una aplicación web


real donde:

 Los usuarios pueden registrarse y hacer login desde cualquier lugar

 Sus favoritos se guardan permanentemente

 Pueden compartir álbumes con amigos

 Los datos están seguros y respaldados

 La aplicación funciona como las grandes plataformas (Instagram,


Google Photos, etc.)
Referencias

Sydle. (2025, June 5). ¿Qué es API? Ejemplos, ventajas y tipos. Blog SYDLE.
[Link]

Equipo, F. (2023, July 10). Visual & Creative Artists Magazine | Formato.
FORMAT.
[Link]
build-photography-website-guide

Formal-Education. (n.d.). Pregunta sobre cómo guardar datos de un


formulario de registro/inscripción : r/learnprogramming.
[Link]
_about_saving_data_from_a_sign/?tl=es-es

Db2 for Linux, UNIX and Windows. (2025, January 17).


[Link]
support-xml

También podría gustarte