Caracteristicas y Especificaciones

Gestión de Biblioteca: Backend Seguro con Python y Control de Acceso por Roles

Desarrollado con Python y Programación Orientada a Objetos (POO), este backend es un claro ejemplo de cómo estructurar una aplicación desde cero con principios de código limpio, organización y seguridad en la lógica interna.

Puntos Destacados:

  • Autenticación y Registro de Usuarios: Gestión segura del acceso al sistema, garantizando que solo usuarios autorizados puedan interactuar con la plataforma.
  • Control de Acceso por Roles: Implementación robusta de permisos para administradores y usuarios estándar. Esta práctica es esencial para minimizar la superficie de ataque y asegurar la granularidad de privilegios, un pilar en el desarrollo de software seguro.
  • Administración de Libros y Gestión de Préstamos: Funcionalidades centrales para el manejo eficiente del inventario de la biblioteca y el seguimiento de los préstamos.
  • Persistencia de Datos: Se implementa  una base de datos MySQL, demostrando un manejo eficiente y organizado de la información optimizando las consultas y evitando sobrecarga
  • Validación de Entradas Rigurosa: Control exhaustivo de todos los datos recibidos para prevenir errores y ataques de inyección, asegurando la integridad y robustez del sistema.
  • Diseño Modular y Extensible: Una arquitectura clara con separación de clases, que facilita la mantenibilidad, escalabilidad y la incorporación de futuras funcionalidades.
Gestión de una biblioteca
def validar_rol(nuevo_rol):
    """
    Verifica si el rol proporcionado es válido.
    Args:
        nuevo_rol (str): Rol a validar.
    Returns:
        bool: True si es válido, False en caso contrario.
    """
    ROLES_VALIDOS = ["usuario", "bibliotecario", "admin"]
    if nuevo_rol not in ROLES_VALIDOS:
        flash("Rol no válido.", "danger")
        return False
    return True

Tecnologías Clave:

  • Python: El lenguaje principal de desarrollo.
  • Programación Orientada a Objetos (POO): Para un diseño estructurado y modular.
  • Manejo de Bases de Datos: Para la persistencia de datos.
  • Validación de Datos: Para garantizar la integridad de la información.
  • Diseño Modular: Facilitando la escalabilidad y el mantenimiento.
  • Bases de datos MySQL o SQLite (Opcional): El proyecto está preparado para futuras integraciones con estas bases de datos relacionales.
Gestión de una biblioteca
@staticmethod
    def _es_isbn10_valido(isbn):
        """
        Verifica si un ISBN-10 es válido.
        Args:
            isbn (str): El ISBN-10 a validar.
        Returns:
            bool: True si es válido, False en caso contrario.
        """
        if (
            len(isbn) != 10
            or not isbn[:-1].isdigit()
            or (isbn[-1] not in "0123456789X")
        ):
            return False
        suma = sum(
            (10 - i) * (10 if digito == "X" else int(digito))
            for i, digito in enumerate(isbn)
        )
        return suma % 11 == 0

Aplicabilidad y Aprendizaje:

Aunque desarrollado en un contexto académico, este proyecto refleja habilidades directamente aplicables en roles de desarrollo backend, diseño de software seguro y automatización de sistemas. Es una demostración sólida de mi capacidad para crear soluciones backend seguras y bien estructuradas.

Gestión de una biblioteca
# Diccionario que asocia roles con las acciones permitidas
ROLES_PERMITIDOS = {
    "admin": ["gestionar_usuarios", "cambiar_rol"],
    "bibliotecario": [
        "agregar_libro",
        "editar_libro",
        "eliminar_libro",
        "gestion_libros",
        "prestar",
        "devolver",
    ],
    "usuario": ["reservar", "historial", "recordatorios"],
}

Para conocer mas:

¿Interesado en la implementación? Explora el código fuente y la documentación detallada del proyecto en mi repositorio de GitHub.

Ver codigo del proyecto