Pequeña aplicación CRUD simple desarrollada en Laravel 11 para la gestión de una biblioteca escolar. Incluye la administración de libros (con precarga por ISBN desde OpenLibrary), la gestión de préstamos y el listado de préstamos, además de autenticación con Laravel Breeze.
Este es un proyecto educativo, desarrollado con el objetivo de practicar y afianzar conocimientos en Laravel y bases de datos.
📸 Capturas de pantalla
- Laravel 11 (
laravel/framework ^11.31), PHP ≥ 8.2 - Laravel Breeze (autenticación con Blade + Tailwind + Alpine)
- Vite, TailwindCSS, AlpineJS
- Base de datos: MySQL/MariaDB
- API externa: OpenLibrary (para precargar datos de libros por ISBN)
- Modelos:
Libro(hasManyPrestamo)Curso(hasManyPrestamo)Prestamo(belongsToLibro, belongsToCurso)
- Controladores:
GestionarLibros: búsqueda por ISBN en OpenLibrary, registro de libros, listado y eliminación.PrestamoController: gestión de préstamos por ISBN, alta y baja de préstamos, listado de todos los préstamos.
- Vistas:
dashboard,gestionarLibros,registroLibro,isbnPrestamo,todosLosPrestamos
- JS público:
public/js/eliminarLibro.jsypublic/js/borrarPrestamo.js(borrado vía fetch + JSON)
Implementada con Laravel Breeze.
Incluye login, registro y perfil de usuario.
Todas las funcionalidades están protegidas con middleware auth.
- libros:
id,isbn,titulo,autor,num_ejemplares,nivel - cursos:
id,curso,grupo - prestamos:
id,id_libro,id_curso,fecha,nombre_alumno,apellido1_alumno,apellido2_alumnoRelación: un libro tiene muchos préstamos y un curso tiene muchos préstamos.
Los cursos se añaden manualmente en base de datos.
GET /libros→ mostrarLibrosGET /libro→ formulario de ISBN + precargaPOST /guardarLibro→ guardarLibroGET /isbn-prestamo→ formulario por ISBNPOST /isbn-prestamo→ procesar formularioPOST /crear-prestamo→ alta de préstamoGET /prestamos→ listado de todos los préstamos
- Clonar repositorio y entrar en la carpeta del proyecto.
- Instalar dependencias PHP:
composer install
- Copiar el archivo de entorno y generar clave:
cp .env.example .env php artisan key:generate
- Configurar conexión a base de datos en
.env. - Ejecutar migraciones:
php artisan migrate
- Instalar dependencias de Node y compilar assets:
npm install npm run dev
- Iniciar servidor:
php artisan serve
- Alta de libros con precarga automática desde OpenLibrary por ISBN.
- Gestión de stock: préstamos decrementan unidades, devoluciones las incrementan.
- Listado de todos los préstamos con orden por fecha.
- Autenticación y autorización con Laravel Breeze.
- Cambiar métodos de borrado a DELETE con protección CSRF.
- Añadir índice único a
libros.isbn. - Bloqueo de préstamos cuando
num_ejemplaressea 0. - SoftDeletes en
prestamospara conservar histórico.
Este proyecto está bajo la Licencia MIT.
También puedes consultar la traducción al español (solo con fines informativos; la versión oficial es la inglesa).







