# Bitácora del día Jueves 16 de enero de 2025


## ✏️ Notas


## 📝 Documentación
El hecho de reacer este proyecto se debe a que desde el inicio se va a dar prioridad a un grupo de cuestiones y algunas formas en las que se maneja el siste van a cambiar.

Anteriormente se había realizado gran parte del frontend, pero con un éstilo completamente monólitico, lo cuál no brindaba una gran flexibilidad para personalizar diferentes instancias.

En esta ocasión se va a trabajar pensando en la capacidad de modificar ciertos procesos por si es que se necesitarán especializar para algún cliente, aunque claro, siempre manteniendo un concepto inicial claro de como manejar los procesos.

Por lo que se van a listar una serie de puntos que se van a priorizar en el desarrollo del sistema.

- ### Permisos
La gestión de los permisos será el único funcionamiento que se va a reutilizar de las versiones anteriores, aunque claro, vitaminando un poco el proceso.

Es decir, que al igual que en la versión anterior de este sistema, se va a buscar que todos los permisos se manejen especifícamente con los roles y así evitar la necesidad de personalizar individualmente cada perfil de accesos a los usuarios.

La vitaminación rádica en dos puntos:
1) Acciones: El primero se basa en permisos que se puedan asignar directamente al usuario (esto por encima de los roles), esto debido a situaciones especificas donde la creación de un único rol termine relentizando la asignación de permisos.

Este punto está pensado únicamente para permisos que representen acciones específicas en el sistema, todos los permisos que interactuén con las vistas y menús serán únicamente asignables desde los roles.

2) Interfáz: Los permisos especificos del usuario le debe permitir seleccionar la forma en la que desee que se muestre el menú (habrán dos opciones básicas) y también manejar el lenguaje que desee manejar en el sistema.

- ### Modular
El sistema debe tener la capacidad de agregar nuevos módulos sin la necesidad de modificar el CORE del sistema, el cuál incluye la gestión básica del sistema y una versión básica del módulo de usuarios (para permitir realizar cambios).

La capacidad modular no se riñe únicamente a apartados de UI, sino que también debe permitir hacer añadidos en permisos, cambios en la BD y otros.

Los elementos cruciales son:

1) Manejo de permisos: Desde los módulos se deben poder agregar de manera sencilla, permisos a los ya existentes.

2) Manejo de menús: Desde los módules se debe poder especificar menús principales y sub-menús para navegar dentro del sistema.

3) Traducciones: Desde los módulos se debe poder agregar nuevas traducciones al sistema. 

- ### Uniformidad
El sistema se desarrollará pensando en utilizar las mismas tecnologías para la mayoría de opciones posibles, es decir que en todo caso se evitará agregar librerías o código externo para cualquier funcionalidad.

El stack seleccionado es TALL

- ### UI / UX
Se van a establecer unas metas en el apartade de UI y de UX con los que el sistema deberá cumplir.

1) First Movile: El clásico "móvil primero" para que el sistema pueda utilizarse en diferentes dimensiones de pantallas sin ningún problema.

2) Traducciones dinámicas: Para evitar problemas, el sistema debe tener la opción de poder modificar las traducciones dentro del propio sistema.

3) Dos versiones de navegación: Por comodidad se plantea utilizar dos versiones con las cuales el usuario podrá navegar por el sistema, siendo una opción un menú superior que despliegue los diversos módulos con los que cuenta el sistema y el otro un menú lateral.

4) Menú clasificado: A pesar de tener la posiblidad de agregar nuevos menús desde los módulos, se debe establecer una manera en la que se puedan agregar en áreas ya existentes o crear nuevas secciones en el menú principal, siempre y cuando se mantenga una congruencia con la tématica en el área donde se agregué.

5) Integridad: Pese a manejar el menú principal de dos maneras distintas, la navegación en las vistas debe ser exáctamente el mismo para evitar hacer que los usuarios tengan una doble curva de aprendizaje.

6) Búsqueda: El sistema deberá contar con una manera de buscar ventanas en especifico y así ahorrarse el proceso de buscar entre las diversas pestañas del menú (este punto está pensado para instancias con una gran cantidad de módulos activos).

7) #### Notificaciones:
El manejo de notificaciones será exactamente el mismo, sin importar el tipo de navegación que tenga el usuario.

Este debe ser sencillo y fácilmente accesible desde cualquier parte del sistema.

- ### Logs
El sistema tendrá una forma sencilla de guardar logs, esto deberá tener la capacidad de ir de la mano con las notificaciones para así agilizar el proceso de gestión de logs.

- ### Impresión / Exportación
Un punto fundamental de los sistemas son la manera de generar reportes, por lo cuál el sistema deberá contar con una manera sencilla y centralizada para generar desde PDF's, Tickets, CSV's y otros formatos de exportación.

- ### Importación
El sistema deberá contar con una forma de realizar importaciones de diversas funciones, con el fin de evitar procesos tediosos y largos de implementación.

Escencialmente esto se realizará con archivos .csv o .xlsx

## 🐛 Actualizaciones Correctivos


## 💄 Actualizaciones de UI/UX


## ✨ Avances Desarrollo