Sistema de gestión de bibliotecaLibrary management system
Aplicación Django construida sobre un modelo de diez entidades. El peso del proyecto no estuvo en la interfaz sino en las decisiones de modelado, que resuelven problemas reales de una biblioteca.
Préstamos y reservas apuntan al ejemplar físico y no al libro como entidad abstracta, y cada ejemplar mantiene su propio estado —disponible, prestado, reservado, mantenimiento—. El socio se identifica por DNI como clave primaria y se vincula de forma opcional a un usuario del sistema, separando la persona del acceso. La multa es una relación uno a uno con el préstamo, cuyo vencimiento se resuelve como propiedad calculada en lugar de guardarse.
A Django application built on a ten-entity data model. The interesting part wasn't the interface — it was the modeling decisions, which answer problems a real library actually runs into.
Loans and reservations point at the physical copy, not at the book as an abstract entity, and every copy carries its own status: available, on loan, reserved, in maintenance. Members are keyed by national ID instead of a surrogate key, and link to a system user only optionally — the person and the login stay separate. A fine is one-to-one with its loan, and the due date is computed on the fly rather than stored.