📚 Proyecto: Sistema de Biblioteca
- 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.
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

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

Paso 2 – Métodos y lógica principal
Ahora, vamos a dotar a nuestras clases de funcionalidad.
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

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

Paso 4 – Funcionalidades de manipulación de datos
Ahora, en tu archivo principal de JavaScript, vamos a usar las clases que creaste.
Instancia la clase Biblioteca: const miBiblioteca = new Biblioteca();
Crea instancias de Libro: const libro1 = new Libro("Cien años de soledad", "Gabriel García Márquez", 1967);
Agrega los libros a la biblioteca: miBiblioteca.agregarLibro(libro1);
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).
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