Avances de código - Blindas31/GRUPO5-2024-PROYINF GitHub Wiki

Se separan los avances según la entrega (Hito) en que se realizaron, a su vez se hace el vinculo para acceder a estas de forma directa.

En esta entrega se busco avanzar con la HU que hace referencia al inicio de sesión/registro por parte de los usuarios de la FIA. Durante esta entrega se implemento dicha HU en HTML y PHP, por lo que se hace necesario el levantamiento de la misma a través de un panel tipo XAMPP. Por ahora se empleo únicamente el registro, pero a futuro se espera unificar las sesiones con la base de datos de la FIA. Es importante mencionar que esto se trata de una maqueta, por lo que a posteriori se buscara la implementación a través de frameworks, en este caso django. Sobre la ejecución del codigo, como ya se menciono en el README, se recomienda lo siguiente:

  1. Instalación de un panel que permita el levantamiento de Apache y MySQL. (En este caso utilizamos XAMPP 3.3.0)
  2. Mover al directorio .../xampp/htdocs la carpeta del main.
  3. Ejecutar en el browser de su selección el archivo index.html.

Se descarto el uso de la HU de inicio de sesion, por lo que pusimos el foco en la migración al framework django. En esta entrega se trabajo principalmente con la HU de envio de requerimientos, así como HU de consulta de requerimientos en proceso. Respecto a la primera se envía de forma genérica, asumiendo inputs correctos. Sobre la segunda, se implemento de forma totalmente satisfactoria, poniendo por ahora a modo de prueba que se muestren todos los requerimientos registrados que aun no se empiezan a procesar. Respecto al modelo de datos (ambas tablas cuentan con ids autoincreméntales únicos) se hicieron las siguientes tablas:

  1. Requerimientos:

    1. Regiones (String): En esta columna se almacenaran las regiones donde se quiere aplicar el estudio realizado por el boletín.
    2. Objetivos (String): Se guardaran los objetivos con que se quiere confeccionar el boletín (por ejemplo: repoblación de la flora).
    3. Descripción (String): Almacena una descripción general que quiera incorporar el usuario, se espera que acá agregue información importante que ayude a la precisión del boletín.
    4. Estado (Int): Se divide según el estado del requerimiento, de la forma: Sí toma valor 1 quiere decir que el requerimiento se tomo y ya se genero el boletín correspondiente; si vale 0 el requerimiento no se ha tomado; si es -1 el requerimiento se tomo pero aun no se termina el proceso de creación del boletín.
  2. Boletines:

    1. Titulo (String): Guarda el titulo del boletín.
    2. Descripción (String): Descripción general del boletín. Podría incluir detalles del contexto de dicho boletín.
    3. Archivo (PDF): Archivo del boletín en particular, se estableció de forma que solo acepte formato PDF.
    4. Requerimiento (Int): Llave foránea que relaciona el boletín con el requerimiento con el se solicito el mismo.

En cuanto a la forma de uso:

  1. Abrir la terminal en la ubicación del archivo del proyecto.
  2. En caso de usar virtualenv escribir "source venv/Scripts/activate", para MacOS y Linux. "venv\Scripts\activate" para Windows.
  3. Escribir "python manage.py runserver" (en caso de que no funcioné escribir "python3 manage.py runserver").
  4. En la terminal se indicara la url de la página web normalmente "http://127.0.0.1:8000/".

(Se recomienda tener virtualenv, en caso de no térnelo instalarlo escribiendo "pip install virtualenv")

Con el fin de testear las modificaciones en la base de datos se recomienda el uso de "http://127.0.0.1:8000/admin" con las siguientes credenciales:

   Usuario: FIA

   Clave: FIA123

El motor de bases de datos empleado por ahora es sqlite3, pero a futuro se desea migrar a postgresql. A su vez, para mejorar las dependencias se espera usar un contenedor durante las próximas entregas. Debido a lo mencionado, las versiones son (Se probo en 2 ambientes de desarrollo distintos):

  1. Python 3.12.5 y 3.10.12
  2. Django 5.1.2 y 4.1.1

Finalmente se adjunta el link al VIDEO explicativo de la ejecución.

Se implemento el inicio de sesión, a la vez que el orden de las paginas y bloqueos en caso de ser necesarios para llegar a la coherencia esperada con el mismo. Sobre las historias de usuario, se completaron HU estado de requerimientos y HU de subir y eliminar boletines, también se mejoro la experiencia usuaria mencionada en HU usuario externo. En cuanto al modelo de datos, con el fin de gestionar de forma mas sencilla el estado de los boletines se agrego un nuevo campo a su tabla, quedando así:

  1. Boletines:
    1. Titulo (String): Guarda el titulo del boletín.
    2. Descripción (String): Descripción general del boletín. Podría incluir detalles del contexto de dicho boletín.
    3. Archivo (PDF): Archivo del boletín en particular, se estableció de forma que solo acepte formato PDF.
    4. Requerimiento (Int): Llave foránea que relaciona el boletín con el requerimiento con el se solicito el mismo.
    5. Es publico (Booleano): Indica si el boletín es publico o no. en caso de ser verdad el boletín se muestra a los usuarios externos en el caso contrario, no.

En cuanto a la forma de uso:

  1. Abrir la terminal en la ubicación del archivo del proyecto.
  2. En caso de usar virtualenv escribir "source venv/Scripts/activate", para MacOS y Linux. "venv\Scripts\activate" para Windows.
  3. Escribir "python manage.py runserver" (en caso de que no funcioné escribir "python3 manage.py runserver").
  4. En la terminal se indicara la url de la página web normalmente "http://127.0.0.1:8000/".

Con el fin de testear las modificaciones en la base de datos se recomienda el uso de "http://127.0.0.1:8000/admin". A su vez las siguientes credenciales se pueden usar como usuario de la FIA (de momento único).

   Usuario: FIA

   Clave: FIA123

El motor de bases de datos empleado por ahora es sqlite3, pero a futuro se desea migrar a postgresql. A su vez, para mejorar las dependencias se espera usar un contenedor durante las próximas entregas. Debido a lo mencionado, las versiones son (Se probo en 2 ambientes de desarrollo distintos):

  1. Python 3.12.5 y 3.10.12
  2. Django 5.1.2 y 4.1.1

En caso de no tener las versiones correspondientes o las dependencias mencionadas con anterioridad se recomienda el uso de los siguientes comandos para windows:

   pip install django==5.1.2

   winget install Python.Python.3 --version 3.12.5

   pip install requests

   pip install virtualenv

En esta entrega se desarrollo la HU de información sobre boletines, así como también la de la modificación de configuraciones del sistema. En cuanto a la primera mencionada, a nivel de base de datos se agregaron los siguientes atributos para lograr llevar una trazabilidad de los mismos:

  1. Boletines:
    1. Titulo (String): Guarda el titulo del boletín.
    2. Descripción (String): Descripción general del boletín. Podría incluir detalles del contexto de dicho boletín.
    3. Archivo (PDF): Archivo del boletín en particular, se estableció de forma que solo acepte formato PDF.
    4. Requerimiento (Int): Llave foránea que relaciona el boletín con el requerimiento con el se solicito el mismo.
    5. Es publico (Booleano): Indica si el boletín es publico o no. en caso de ser verdad el boletín se muestra a los usuarios externos en el caso contrario, no.
    6. Descargas (Int): Contador de descargas del archivo, inicializado en 0 e incremental a medida que se va interactuando con el mismo.
    7. Vistas (Int): Contador de visualizaciones del archivo, inicializado en 0 e incremental a medida que se va interactuando con el mismo.

A partir de estos atributos se logro generar la vista que permite acceder a dichos valores, llegando así a mas información valiosa para los usuarios de la FIA. En lo que respecta a la segunda historia de usuario mencionada se pudo empezar a implementar los controles de acceso, quedando así la siguiente tabla:

Tipo de usuario Funciones disponibles
Super usuario Lo mismo que Staff pero permite cambiar configuraciones
Staff Lo mismo que usuario sin permisos más modificación de requerimientos, administración de boletines y subir boletines
Usuario sin permisos Lo mismo que usuario externo más ver y enviar requerimientos
Usuario externo Únicamente ver boletines públicos

En el contexto del proyecto se asocia Staff a los permisos que tendría la bibliotecaria, mientras que el super usuario seria mas bien el superior de las mismas. Se estimo que el super usuario sea capaz de asignar los roles plasmados en la tabla, permitiendo restringir o liberar accesos a usuarios registrados.

Con el fin de testear se generaron los siguientes usuarios:

Tipo de usuario Usuario Clave
Súper usuario FIA FIA123
Staff Test Prueba123
Sin permisos Prueba Clave123

De la misma forma que la entrega pasada, la forma de uso:

  1. Abrir la terminal en la ubicación del archivo del proyecto.
  2. En caso de usar virtualenv escribir "source venv/Scripts/activate", para MacOS y Linux. "venv\Scripts\activate" para Windows.
  3. Escribir "python manage.py runserver" (en caso de que no funcioné escribir "python3 manage.py runserver").
  4. En la terminal se indicara la url de la página web normalmente "http://127.0.0.1:8000/".

Con el fin de testear las modificaciones en la base de datos se recomienda el uso de "http://127.0.0.1:8000/admin". A su vez las siguientes credenciales se pueden usar como usuario de la FIA (de momento único).

   Usuario: FIA

   Clave: FIA123

El motor de bases de datos empleado por ahora es sqlite3, pero a futuro se desea migrar a postgresql. A su vez, para mejorar las dependencias se espera usar un contenedor durante las próximas entregas. Debido a lo mencionado, las versiones son (Se probo en 2 ambientes de desarrollo distintos):

  1. Python 3.12.5 y 3.10.12
  2. Django 5.1.2 y 4.1.1

En caso de no tener las versiones correspondientes o las dependencias mencionadas con anterioridad se recomienda el uso de los siguientes comandos para windows:

   pip install django==5.1.2

   winget install Python.Python.3 --version 3.12.5

   pip install requests

   pip install virtualenv

Finalmente se adjunta el link al VIDEO explicativo de la ejecución.