GestionTablets/REQUIREMENTS.md
ijuanes d3d1fb1b32 feat(non-loanable-devices): implement non-loanable device management
- Add non_loanable_devices table to database schema
- Add web interface routes: /non_loanable_devices, /add_non_loanable_device, /edit_non_loanable_device, /delete_non_loanable_device
- Add CLI menu options 8-10 for non-loanable device management
- Add templates for non-loanable device CRUD operations
- Update README.md with new feature documentation
- Update REQUIREMENTS.md marking non-loanable devices as implemented
- Add gestiontablets.sh script

Implements: #porDefinir Registrar nuevos dispositivos no prestables
2026-06-09 23:54:38 +01:00

7.1 KiB

Requisitos del Sistema de Gestión de Préstamos de Tablets

Descripción General

El sistema debe permitir la gestión del préstamo y devolución de dispositivos tablets entre un inventario y un conjunto de usuarios. El enfoque principal es el seguimiento del estado de cada dispositivo y su relación con los usuarios que los han tomado prestados.


Requisitos Faltantes

Gestión de dispositivos no prestables

IMPLEMENTADO - El sistema ahora permite:

  • Registrar nuevos dispositivos no prestables en un inventario separado (tabla non_loanable_devices)
  • Gestionar dispositivos no prestables a través de:
    • Interfaz web (app.py): /non_loanable_devices, /add_non_loanable_device, /edit_non_loanable_device, /delete_non_loanable_device
    • Interfaz CLI (minimal_app.py): Opciones 8, 9, 10 del menú
  • La implementación utiliza una tabla separada en la misma base de datos con los siguientes campos:
    • brand, model, serial_number (único), device_type, location, status, notes, purchase_date, purchase_cost

Requisitos Funcionales

Gestión de Dispositivos

El sistema debe permitir:

  • Registrar nuevos dispositivos en el inventario
  • Identificar cada dispositivo de manera única
  • Almacenar información descriptiva de cada dispositivo (marca, modelo, número de serie)
  • Consultar el estado actual de cada dispositivo (disponible, prestado)

Gestión de Usuarios

El sistema debe permitir:

  • Registrar nuevos usuarios
  • Identificar cada usuario de manera única
  • Almacenar información de contacto básica (nombre, identificación)
  • Consultar la información de los usuarios registrados

Gestión de Préstamos

El sistema debe permitir:

  • Asignar un dispositivo disponible a un usuario
  • Registrar la fecha y hora del préstamo
  • Registrar la fecha y hora de la devolución
  • Consultar el historial de préstamos de un dispositivo
  • Consultar el historial de préstamos de un usuario
  • Visualizar todos los dispositivos actualmente prestados

Consulta y Reportes

El sistema debe permitir:

  • Buscar dispositivos por cualquier atributo (marca, modelo, número de serie)
  • Buscar usuarios por cualquier atributo (nombre, identificación)
  • Filtrar préstamos por estado (activos, finalizados)
  • Filtrar préstamos por dispositivo
  • Filtrar préstamos por usuario
  • Ver el historial completo de préstamos y devoluciones

Modelo de Datos

Entidades Principales

  1. Dispositivo

    • Identificador único
    • Marca
    • Modelo
    • Número de serie (único)
    • Estado (disponible, prestado)
  2. Usuario

    • Identificador único
    • Nombre
    • Identificación (única)
  3. Préstamo

    • Identificador único
    • Dispositivo asociado
    • Usuario asociado
    • Fecha de préstamo
    • Fecha de devolución (opcional)
    • Estado (activo, finalizado)

Relaciones

  • Un usuario puede tener múltiples préstamos (relación uno a muchos)
  • Un dispositivo solo puede estar en un préstamo activo a la vez
  • Un préstamo relaciona exactamente un dispositivo con un usuario
  • El historial de préstamos permite rastrear todos los movimientos de cada dispositivo

Reglas de Negocio

  1. Un dispositivo en estado "prestado" no puede ser prestado a otro usuario
  2. Un préstamo finalizado debe registrar fecha de devolución
  3. La identificación de dispositivos y usuarios debe ser única
  4. Al devolver un dispositivo, este vuelve al estado "disponible"

Flujos de Trabajo

Registro de un Nuevo Dispositivo

  1. El sistema solicita la información del dispositivo (marca, modelo, número de serie)
  2. El sistema valida que el número de serie no esté registrado
  3. El sistema registra el dispositivo con estado "disponible"
  4. El sistema confirma el registro

Registro de un Nuevo Usuario

  1. El sistema solicita la información del usuario (nombre, identificación)
  2. El sistema valida que la identificación no esté registrada
  3. El sistema registra el usuario
  4. El sistema confirma el registro

Préstamo de un Dispositivo

  1. El sistema muestra los dispositivos disponibles
  2. El usuario selecciona un dispositivo
  3. El sistema muestra los usuarios registrados
  4. El usuario selecciona un usuario
  5. El sistema registra el préstamo con:
    • Dispositivo seleccionado
    • Usuario seleccionado
    • Fecha y hora actual
    • Estado "activo"
  6. El sistema actualiza el estado del dispositivo a "prestado"
  7. El sistema confirma el préstamo

Devolución de un Dispositivo

  1. El sistema muestra los préstamos activos
  2. El usuario selecciona un préstamo
  3. El sistema registra la fecha y hora de devolución
  4. El sistema actualiza el estado del préstamo a "finalizado"
  5. El sistema actualiza el estado del dispositivo a "disponible"
  6. El sistema confirma la devolución

Consulta de Préstamos por Usuario

  1. El sistema muestra la lista de usuarios
  2. El usuario selecciona un usuario
  3. El sistema muestra:
    • Dispositivos actualmente prestados (préstamos activos)
    • Historial de préstamos pasados (opcional: expandible)
  4. El sistema permite buscar por cualquier campo

Requisitos No Funcionales

Usabilidad

  • La interfaz debe permitir búsqueda eficiente en listas grandes (500+ elementos)
  • La visualización de información debe ser clara y organizada
  • Los estados deben ser fácilmente identificables
  • Las acciones principales deben ser accesibles

Escalabilidad

  • El diseño debe soportar un crecimiento en el número de dispositivos y usuarios
  • La búsqueda debe ser eficiente
  • El historial debe ser consultable sin afectar el rendimiento

Mantenibilidad

  • La estructura de datos debe ser clara
  • Las relaciones entre entidades deben estar bien definidas
  • Los flujos de trabajo deben estar documentados

Diseño de Interfaz (Conceptual)

Vistas Principales

  1. Vista de Inventario

    • Lista de dispositivos
    • Filtros por estado
    • Búsqueda
  2. Vista de Usuarios

    • Lista de usuarios
    • Búsqueda
  3. Vista de Préstamos Activos

    • Lista de préstamos en curso
    • Filtros por dispositivo/usuario
    • Acciones: devolver dispositivo
  4. Vista de Historial

    • Lista completa de préstamos
    • Filtros por fecha, usuario, dispositivo, estado
    • Detalles de cada préstamo
  5. Vista de Préstamos por Usuario

    • Lista de usuarios
    • Para cada usuario: dispositivos actualmente prestados
    • Opcional: historial de préstamos pasados (expandible)

Elementos de Interacción

  • Campos de búsqueda en todas las listas
  • Botones de acción claros (Prestar, Devolver, Registrar)
  • Indicadores visuales de estado (colores, iconos)
  • Confirmación de acciones críticas

Notas de Implementación

Este documento describe los requisitos a nivel de diseño. La implementación específica (lenguaje de programación, base de datos, framework, arquitectura) queda a criterio del equipo de desarrollo y puede variar según las necesidades técnicas.

Los detalles técnicos como:

  • Tecnologías específicas
  • Estructura de base de datos física
  • APIs
  • Autenticación
  • Despliegue

Deberán ser definidos en la fase de diseño técnico y pueden evolucionar sin afectar los requisitos funcionales descritos aquí.