Volver a proyectos

Caso de estudio · 2025

Book&Go

Sistema de préstamo de libros

Aplicación de escritorio para gestionar préstamos, devoluciones, sanciones y reposición de stock en una biblioteca física. La desarrollé de punta a punta como trabajo final de la carrera de Analista en Sistemas.

  • C#
  • .NET Framework 4.8.1
  • WinForms
  • SQL Server
  • UML
Ver repositorio
Pantalla de inicio de Book&Go, el sistema de gestión de biblioteca desarrollado en C# WinForms
Rol
Desarrollo completo: análisis, diseño, implementación y documentación
Alcance
2 procesos de negocio · 5 roles de usuario
Interfaz
WinForms sobre .NET Framework 4.8.1, con cambio de idioma sin reiniciar
Base de datos
SQL Server 2022, con dígito verificador, bitácora y backup
01

Contexto

Qué es y de dónde salió.

Book&Go digitaliza la operación diaria de una biblioteca física: quién se lleva cada ejemplar, cuándo lo devuelve, qué pasa si vuelve tarde o dañado y cómo se repone el stock cuando un título escasea.

Nació como trabajo final de tercer año de la carrera de Analista en Sistemas, con un alcance cerrado: dos procesos completos con sus casos borde, en lugar de un catálogo de pantallas a medio terminar.

Es una aplicación de escritorio en C# con WinForms sobre .NET Framework 4.8.1, con la base de datos en SQL Server 2022. Incluye el modelo de datos, la arquitectura por capas, la documentación técnica y los manuales de uso.

02

Alcance

Los dos procesos que cubre el sistema y los roles que los ejecutan.

Procesos

Préstamos y devoluciones

Alta de clientes, consulta de disponibilidad, cobro de seña en efectivo o tarjeta, registro de la devolución con el estado del ejemplar y aplicación de sanciones por atraso o daño.

Stock y reposición

Stock por estado (disponible, prestado, dañado, desaparecido), generación automática de la orden de compra al tocar el mínimo, registro de proveedores y alta de ejemplares al recibir el pedido.

Roles

  • Bibliotecario

    Préstamos, devoluciones, sanciones y alta de clientes.

  • Encargado de reposición

    Consulta de stock, órdenes de compra y alta de ejemplares.

  • Repositor

    Verificación de facturas y órdenes, y registro de la recepción.

  • Administrador

    Usuarios, perfiles, familias y permisos.

  • Usuario final

    Inicio de sesión y cambio de contraseña.

03

Arquitectura

Cinco proyectos en la solución, uno por responsabilidad.

  1. Presentación GUI

    Formularios WinForms agrupados por proceso: préstamos, reposición, maestros, reportes y administración.

  2. Negocio BLL

    Reglas de préstamo, sanción, reposición, dígito verificador y bitácora.

  3. Entidades BE

    Objetos que viajan entre capas sin conocer la base de datos.

  4. Datos DAL

    Acceso a SQL Server con Microsoft.Data.SqlClient sobre una clase base común.

  5. Servicios Services

    Lo transversal: patrones de diseño, sesión, idioma, encriptación y eventos.

Los servicios transversales viven en su propio proyecto a propósito: ni la lógica de negocio ni el acceso a datos dependen de ellos, y la interfaz nunca ejecuta SQL. Las entidades viajan entre capas sin saber de dónde salen los datos.

04

Decisiones

Las cinco que definieron el sistema.

01

Permisos como árbol, no como lista

Perfiles, familias y permisos se modelan con el patrón Composite: un perfil contiene familias y cada familia contiene permisos. La autorización se resuelve recorriendo el árbol en lugar de mantener condiciones fijas por pantalla.

02

Una sola sesión, accesible desde cualquier capa

El usuario logueado vive en un Singleton con inicialización diferida y bloqueo, así que cualquier formulario consulta la sesión sin recibirla como parámetro. El resultado del login se modela con LoginResult y LoginException, no con códigos sueltos.

03

Cambio de idioma sin reiniciar

El patrón Observer conecta los formularios con un LanguageManager: al cambiar de idioma, el manager notifica a cada formulario suscripto y este vuelve a leer sus textos desde archivos JSON. La aplicación quedó en español e inglés, incluida la ayuda en línea.

04

La cadena de conexión no vive en el código

La clase base de la capa de datos lee la cadena de conexión de un archivo JSON externo y falla con un mensaje explícito si falta o está incompleta. El build no arrastra credenciales.

05

Detección de alteraciones en la base

Cada registro sensible guarda dígitos verificadores horizontal y vertical, calculados al persistir. Un formulario dedicado recalcula y repara la tabla cuando el control detecta una diferencia.

05

Resultado

Qué quedó entregado y funcionando.

  • Los dos procesos completos sobre SQL Server 2022: préstamos con seña, devoluciones con estado del ejemplar, sanciones, stock por estado y órdenes de compra automáticas.
  • Control de acceso por rol con perfiles, familias y permisos, y contraseñas guardadas con SHA-256.
  • Bitácora de eventos y backup y restore de la base desde la propia aplicación.
  • Documentación de entrega: diagramas UML en Enterprise Architect, manual de instalación y ayuda en línea por pantalla, en español e inglés.
  • Repositorio público con el código de las cinco capas.

El proyecto completo, con su código, sus diagramas y sus manuales, está en el repositorio.