Arquitectura del Sistema - G10-ISPC/Frontend-Mobile GitHub Wiki

La arquitectura del sistema para nuestra aplicación móvil está diseñada para asegurar una integración eficiente entre sus componentes y ofrecer una experiencia de usuario fluida. A continuación se detallan los elementos principales que conforman la arquitectura del sistema, junto con sus restricciones y requerimientos.

Componentes Principales

1. Frontend (Aplicación Móvil)

El frontend de la aplicación será desarrollado en Java para dispositivos Android, garantizando una experiencia de usuario nativa y optimizada. La interfaz de usuario estará diseñada específicamente para dispositivos móviles, asegurando que sea responsiva y adaptativa a diferentes tamaños de pantalla. La aplicación requerirá una conexión activa a Internet para la mayoría de sus operaciones, aunque algunas funcionalidades limitadas, como la visualización de la lista de productos, estarán disponibles sin conexión.

2. Backend (Servidor)

El backend de la aplicación será desarrollado utilizando Django con Python, implementando API REST para facilitar la comunicación y sincronización de datos entre la aplicación móvil y el servidor. Este componente será responsable de gestionar la lógica de negocio y manejar las solicitudes de la aplicación. Se integrará con una API externa para la sincronización de datos, asegurando que la información esté actualizada en tiempo real.

3. Persistencia de Datos

Para la persistencia de datos en el dispositivo móvil, se utilizará SQLite, permitiendo que la aplicación funcione con funcionalidades limitadas sin conexión a Internet. Esta elección mejora la experiencia del usuario al permitir el acceso a información previamente cargada sin necesidad de conexión constante.

4. Seguridad

La seguridad de la aplicación se garantizará mediante la implementación de un sistema de autenticación seguro utilizando JWT (JSON Web Tokens). Este método permitirá gestionar el acceso de usuarios y proteger sus datos de manera eficaz.

5. Base de Datos

El sistema contará con una base de datos, que se utilizará para almacenar datos de usuarios y productos. La estructura de la base de datos será diseñada teniendo en cuenta los requerimientos funcionales, garantizando que se puedan realizar operaciones como el registro, la visualización y la gestión de productos.

Requerimientos Funcionales y No Funcionales

La aplicación cumplirá con los siguientes requerimientos funcionales:

  • Permitir el registro de nuevos usuarios, incluyendo validaciones de datos.
  • Facilitar el inicio y cierre de sesión.
  • Mostrar una lista de productos disponibles.
  • Permitir a los usuarios modificar sus datos de perfil.
  • Brindar la opción de eliminar la cuenta del usuario de forma segura.
  • Integrarse con APIs externas para la sincronización de datos.
  • Administrar productos para usuarios con privilegios de administrador.

Los requerimientos no funcionales incluyen:

  • Compatibilidad con dispositivos Android 5 o superior.
  • Seguridad en la gestión de datos personales mediante JWT.
  • Optimización del rendimiento para dispositivos móviles.

Diagrama de Arquitectura básico

image