Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelo Clases
LOGAPP
Versión 1.0
LOGAPP Versión: 1.0
Modelo Clases Fecha: 12 de diciembre de 2023
Documento Modelo Estructural
HISTORIA DE REVISIONES
TABLA DE CONTENIDO
1. INTRODUCCIÓN2
1.1. PROPÓSITO 2
1.2. ALCANCE 3
1.3. REFERENCIAS 3
2. SCRUM 4
1. INTRODUCCIÓN
1.1. PROPÓSITO
Para la industria del servicio público que administra la flota vehicular 100% eléctrica, es de
suma importancia la implementación de una herramienta tecnológica (Software) la cual se
encargue de almacenar, capturar, notificar y modelar los datos correspondientes a la
gestión e información actualizada de sus vehículos 100% eléctricos, etc.
Un control de acceso basado en roles (RBAC) define el acceso en forma de roles y sus
tareas asociadas. Un rol es un conjunto de derechos y capacidades que definen lo que un
usuario puede hacer. Puede pensar en roles como filtros: agrega usuarios a los roles para
aplicar permisos. Por ejemplo, un rol de Cuentas por cobrar tendrá acceso a herramientas
y datos de cuentas por cobrar, mientras que un rol de Cuentas por pagar no lo tendrá.
Hay dos enfoques en los que puede modelar RBAC: central o jerárquico.
RBAC central
Core RBAC está diseñado mediante la definición de roles: grupos de usuarios con
características comunes. Designa tareas específicas para cada rol definido por el usuario,
lo que permite a los usuarios realizar diferentes tareas en función de su(s) rol(es)
asignado(s). Un administrador específico es responsable de definir usuarios, roles y
permisos.
En la figura anterior, puede ver que las principales entidades que participan en el
modelado RBAC incluyen las siguientes:
Desarrollar un sistema informático de tipo SSO (single sign-on), cuyo nombre será
LOGAPP, que permite un inicio de sesión y perfilamiento centralizado, usando como
usuario los correos corporativos de la empresa y su modelo de autenticación
En el siguiente github presentó la versión mvp del sistema con funcionalidades de CRUD,
autenticación, autorización y persistencia.
https://github.com/wgarcia43/logapp
Los equipos de back también usan el swagger para verificar el funcionamiento de sus
métodos, sin recurrir a herramientas de terceros como postman, básicamente generan
colecciones de CURL que permiten simular los llamados entre front y back, la gran ventaja
de swagger es correr desde el navegador y poder adjuntar más información de los
métodos expuestos como medios de autenticación o lógica de negocio.
https://api-auth.bancointernacional.com.ec/swagger/#!/External/ApiExtClaimsPost
● ReactJS.
Es una librería open source de JavaScript para desarrollar interfaces de usuario. Fue
lanzada en el año 2013 y desarrollada por Facebook, quienes también la mantienen
actualmente junto a una comunidad de desarrolladores independientes y compañías.
Hoy en día muchas empresas de primer nivel utilizan React para el desarrollo de sus
aplicaciones, y es que entre ellas podemos encontrar Facebook, Instagram y el cliente
web de WhastApp (todas propiedad de Facebook), y otras como AirBnb, Uber, Netflix,
Twitter, Reddit o Paypal.
React JS es hoy en día una de las librerías más usadas a nivel de front en Colombia, esto
basado para mi en los siguientes puntos:
- Es la evolución natural de los desarrolladores que venimos de tecnologías .net
como asp o C#, al dar el mismo manejo MVC a nivel de patrón de arquitectura.
- La posibilidad de poder saltar a Reac Native y generar aplicaciones móviles
multiplataforma.
Los Hooks son una nueva incorporación en React 16.8. Le permiten usar el estado y otras
características de React sin escribir una clase.
Más fácil de probar: aunque no tiene tanta influencia en los proyectos personales como
en las aplicaciones implementadas públicamente y de alta disponibilidad, las pruebas son
una parte vital del ciclo de vida de desarrollo de software de cualquier organización. Ya
sea que se presente en forma de servicios de integración/desarrollo continuo como
CircleCI o TravisCI o directamente de probar la funcionalidad individual con bibliotecas
como Jest o Selenium, los enlaces hacen que probar los componentes de React.js sea
mucho más fácil que si estuvieran basados en clases.
Más fácil de leer: esto es especialmente útil para proyectos con muchos miembros del
equipo. Aunque uno puede suponer que hay lenguajes de diseño, métodos y guías de
estilo particulares que un equipo podría seguir con respecto a cómo construir la interfaz de
usuario, eliminar la grasa de una arquitectura de componentes basada en clases permite
a los ingenieros volver a escribir programas que se sientan en el núcleo del lenguaje
JavaScript en lugar de abstraer cosas innecesariamente.
Menos código intensivo: esto también podría caer bajo el mismo paraguas que "Más
fácil de leer", pero mi intuición me dice que divida esto en su propio punto basado en un
paradigma en ingeniería de software que he mencionado anteriormente; abstracción.
Aunque normalmente tiene que cambiar algo de rendimiento por la implementación de la
abstracción, es el oxígeno el que alimenta la evolución de un producto la mayoría de las
veces. Tomar algo, en nuestro código de caso, que alguna vez fue intrincado, de escasa
capacidad y duplicado en muchas instancias y convertirlo en una solución que es más
fácil de implementar, ofrece una mejor experiencia de ingeniería en general y produce lo
mismo, si no más favorable, enfoque que iteraciones anteriores es la tesis detrás del ciclo
de vida de cualquier producto. React.js no es una excepción.
● Context API.
La API de contexto de React es una forma en que una aplicación de React produce de
manera efectiva variables globales que se pueden pasar. El contexto también se
promociona como un enfoque más fácil y ligero para la gestión del estado utilizando
Redux.
La API de contexto es una característica nueva agregada en la versión 16.3 de React que
permite compartir el estado en toda la aplicación (o parte de ella) de forma ligera y
sencilla.
Axios es una librería cliente HTTP basada en promesas que se puede usar tanto en Node
JS como en el navegador; por lo que podremos configurar y realizar solicitudes a un
servidor y recibiremos respuestas fáciles de procesar.
Nos ayuda en el envío de peticiones asíncronas HTTP, así ayudándonos a realizar las
operaciones CRUD.
Gracias a la librería react-router-dom, podemos crear rutas fijas, por ejemplo, para mostrar
formularios, listas o tablas de datos, entre otros. También podemos crear rutas dinámicas,
para mostrar los datos de un cliente específico, un producto identificado, alguna orden o
contrato, etc.
Así, podremos ir extendiendo la lista anterior, con problemáticas comunes entre una
aplicación y otra, para ir consolidando hooks y demás componentes reutilizables de un
proyecto a otro.
● Despliegue.