top of page

📚 Proyecto: Sistema de Biblioteca

  • Foto del escritor: Coachs Desarrollo
    Coachs Desarrollo
  • 19 ago
  • 3 Min. de lectura

Este proyecto te guiará en la creación de una aplicación para gestionar libros, aplicando los principios de la Programación Orientada a Objetos (POO) en JavaScript. El enfoque principal está en el modelado de clases y el uso de estructuras de datos para organizar la información de forma eficiente.


Objetivo del proyecto


Al finalizar este proyecto, serás capaz de:

  • Aplicar los principios fundamentales de la POO en JavaScript.

  • Crear clases y objetos para representar entidades del mundo real como Libro y Usuario.

  • Implementar encapsulamiento usando propiedades privadas y métodos públicos.

  • Utilizar getters y setters para un acceso controlado a los datos.

  • Gestionar colecciones de objetos de manera eficiente usando arreglos de objetos y métodos como push(), find(), filter(), y forEach().

  • Entender el contexto de this dentro de una clase.



🧪 Desarrollo paso a paso



Paso 1 – Estructura de clases


El primer paso es modelar las entidades principales de nuestro sistema.

  1. Crea la clase Libro: Esta clase servirá como plantilla para cada libro en la biblioteca.

    • Define un constructor que acepte el título, autor, y año de publicación.

    • Utiliza propiedades privadas para el título, autor, y año (e.g., #titulo, #autor, #anio). Esto asegura que solo se puedan modificar a través de métodos definidos en la clase.

    • Opcionalmente, puedes añadir una propiedad privada disponible con un valor inicial de true.


JavaScript


ree

Crea la clase Biblioteca: Esta clase se encargará de gestionar toda la colección de libros.

  • Define un constructor que inicialice un arreglo vacío para almacenar los libros (e.g., this.libros = [] ).


JavaScript

ree

Paso 2 – Métodos y lógica principal


Ahora, vamos a dotar a nuestras clases de funcionalidad.

  1. Métodos en la clase Libro:

    • Crea un método mostrarInformacion() que devuelva una cadena de texto con los detalles del libro.

    • Incluye métodos para cambiar el estado de disponibilidad, por ejemplo, prestar() y devolver().


    JavaScript

ree

2. Métodos en la clase Biblioteca:


  • Crea un método agregarLibro(libro) que use push() para añadir una nueva instancia de Libro al arreglo this.libros.

  • Crea un método buscarPorTitulo(titulo) que use find() para buscar y devolver un libro por su título.

  • Crea un método buscarPorAutor(autor) que use filter() para devolver todos los libros de un autor específico.

  • Crea un método mostrarInventario() que use forEach() para iterar sobre el arreglo y mostrar la información de cada libro (puedes usar el método mostrarInformacion() de la clase Libro).


Paso 3 – Implementación de getters y setters 


Los getters y setters nos permiten controlar cómo se accede y se modifica una propiedad privada.

  1. En la clase Libro, implementa getters para las propiedades privadas (#titulo, #autor, #anio).

  2. Implementa un setter para la propiedad #anio. Dentro del setter, puedes incluir una validación para asegurarte de que el año sea un número válido.


JavaScript

ree

Paso 4 – Funcionalidades de manipulación de datos


Ahora, en tu archivo principal de JavaScript, vamos a usar las clases que creaste.

  1. Instancia la clase Biblioteca: const miBiblioteca = new Biblioteca();

  2. Crea instancias de Libro: const libro1 = new Libro("Cien años de soledad", "Gabriel García Márquez", 1967);

  3. Agrega los libros a la biblioteca: miBiblioteca.agregarLibro(libro1);

  4. Usa los métodos de búsqueda y visualización:

    • miBiblioteca.mostrarInventario();

    • const libroEncontrado = miBiblioteca.buscarPorTitulo("Cien años de soledad");

    • libroEncontrado.prestar(); (Ejecuta un préstamo para probar la funcionalidad).

  5. Puedes simular la interacción en la consola del navegador o en un archivo HTML básico.


Paso 5 – Pruebas y presentación


Verifica que el código funcione como se espera.

  • Asegúrate de que los libros se añadan correctamente al inventario.

  • Confirma que los métodos de búsqueda (find, filter) devuelvan los resultados correctos.

  • Prueba el setter de la clase Libro con un valor no válido para ver si la validación funciona.

  • Explica cómo la POO hizo que el código fuera más organizado y fácil de mantener.


✅ Criterios de logro


  • Estructura de clases clara y lógica.

  • Uso correcto del encapsulamiento (# y this).

  • Implementación de getters y setters para controlar el acceso a las propiedades.

  • Utilización eficiente de métodos de arreglo (push, find, filter, forEach).

  • Código bien organizado y con comentarios explicativos.

  • Todas las funcionalidades básicas (agregar, buscar, mostrar) operan sin errores.


🚀 Retos adicionales


  • Implementar la clase Usuario con métodos para registrar préstamos y devoluciones.

  • Añadir un sistema de préstamos que verifique la disponibilidad del libro antes de prestarlo.

  • Crear una interfaz de usuario básica con HTML y CSS para interactuar con la biblioteca visualmente.

  • Persistir los datos en el navegador usando localStorage.



(Blog hecho por Frank Iglesias)

 
 
 

Comentarios


bottom of page