Caracteristicas y Especificaciones

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.

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.

@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.

# 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