Ir al contenido

biblioteca

·2 mins

Hace aproximadamente 16 años, en 2007, empecé a catalogar los libros en la biblioteca de mi papá.

Django todavía no había alcanzado la versión 1.0 pero logré convencer a mi papá de instalar Python 2.7 y Django en la computadora que tenía en la biblioteca y hacer el catálogo de los libros con una pequeña aplicación Web.

Un par de instalaciones de Windows han pasado, la computadora ha sido remplazada y como resultado, no han quedado rastros del código original del proyecto ni respaldos de los datos.

GitHub todavía no existía y nunca existió un repositorio Git del proyecto. Es posible que haya existido un repositorio Subversion.

Aún así, en algo que se ha convertido recientemente en una especie de tradición, estoy retomando el proyecto que no llegué a completar.

Por un momento pensé en aprovechar la oportunidad para experimentar y aprender algo nuevo, pero la existencia y vigencia actual de Django es argumento suficiente para volver a usarlo.

Esta vez, he decidido dividir el proyecto en dos partes: Primero vamos a introducir todos los libros y publicaciones en la base de datos y luego vamos a ordenar los libros de acuerdo a los códigos de la clasificación Dewey que estamos aplicando.

Estoy empezando con la versión actual de Django (4.1), el plan es seguir a la versión con soporte de largo tiempo (LTS) apenas sea publicada en abril 2023.

Modelos Django #

Estoy iniciando el desarrollo de la aplicación con cuatro modelos:

  • Classification: código y descripción en el sistema de clasificación decimal de Dewey,
  • Author: nombre y apellido,
  • Publisher: nombre de la editora, (para libros publicados sin autor),
  • Book: clasificación, autores o editora, título, subtitulo y año de publicación.

Los modelos son intencionadamente lo más simple posible, para facilitar y así acelerar la primera fase: introducir todos los libros con el mínimo de información necesaria para encontrar un libro en el futuro.

gráfico de los modelos de la aplicación
modelos de la aplicación biblioteca

Es probable que en el futuro sea necesario añadir más tipos de publicaciones y con seguridad será necesario añadir modelos para la ubicación de los libros (estante y nivel) y probablemente alguna manera de hacer el seguimiento del préstamo de los libros.

Proyecto #

Esta vez, hay un repositorio Git del código: el proyecto está en la instancia local de Forgejo que tengo https://git.rico-schmidt.name/ernesto/biblioteca

Esta vez, estoy utilizando Poetry, para el manejo de las dependencias, y estoy desplegando la aplicación con Caddy, Gunicorn y Docker, por el momento, en un Raspberry Pi.