{"id":30120988,"url":"https://github.com/tonigith/bookreviews","last_synced_at":"2026-04-11T12:03:53.543Z","repository":{"id":309037551,"uuid":"1023760217","full_name":"toniGitH/BookReviews","owner":"toniGitH","description":"Aplicación de gestión de reseñas de libros (CRUD) desarrollada con Laravel 12 y Livewire 3. Permite crear, listar y eliminar reseñas (título, autor, rating) y buscar por título. Se comporta como una SPA gracias a `wire:navigate` y utiliza componentes de página completa de Livewire (Create y BookList).","archived":false,"fork":false,"pushed_at":"2025-08-20T08:22:59.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-20T10:25:57.061Z","etag":null,"topics":["blade","crud","crud-application","laravel","livewire","php","php8","spa","sqlite","tailwind","tailwind-css","vite"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toniGitH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-21T16:45:31.000Z","updated_at":"2025-08-20T08:23:03.000Z","dependencies_parsed_at":"2025-08-20T10:12:31.650Z","dependency_job_id":"4142011e-ccf7-483c-972e-20d92bee84c9","html_url":"https://github.com/toniGitH/BookReviews","commit_stats":null,"previous_names":["tonigith/libros","tonigith/bookreviews"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/toniGitH/BookReviews","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toniGitH%2FBookReviews","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toniGitH%2FBookReviews/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toniGitH%2FBookReviews/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toniGitH%2FBookReviews/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toniGitH","download_url":"https://codeload.github.com/toniGitH/BookReviews/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toniGitH%2FBookReviews/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272335788,"owners_count":24916529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blade","crud","crud-application","laravel","livewire","php","php8","spa","sqlite","tailwind","tailwind-css","vite"],"created_at":"2025-08-10T13:01:53.842Z","updated_at":"2026-04-11T12:03:48.514Z","avatar_url":"https://github.com/toniGitH.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://livewire.laravel.com\" target=\"_blank\"\u003e\u003cimg src=\"https://laravel-livewire.com/img/logo.svg\" width=\"400\" height=\"100\" alt=\"Livewire Logo\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://laravel.com\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg\" width=\"400\" height=\"100\" alt=\"Laravel Logo\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n---\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![PHP 8.x](https://img.shields.io/badge/php%208.x-%23777BB4?style=plastic\u0026logo=php\u0026logoColor=black)](https://www.php.net/) [![Laravel 12](https://img.shields.io/badge/Laravel%2012-%20%23FF2D20?style=plastic\u0026logo=laravel\u0026logoColor=white)](https://laravel.com/) [![Blade templates](https://img.shields.io/badge/Blade%20templates%20-%20%23FF2D20?style=plastic\u0026logo=laravel\u0026logoColor=white)](https://laravel.com/docs/blade) [![Livewire 3](https://img.shields.io/badge/Livewire%203%20-%234E56A6?style=plastic\u0026logo=livewire\u0026logoColor=white)](https://livewire.laravel.com/) [![Tailwind CSS 4.x](https://img.shields.io/badge/Tailwind%20CSS%204.x-%2306B6D4?style=plastic\u0026logo=tailwind%20css\u0026logoColor=white)](https://tailwindcss.com/) [![Vite 6.x](https://img.shields.io/badge/Vite%206.x-%23646CFF?style=plastic\u0026logo=vite\u0026logoColor=yellow)](https://vitejs.dev/) [![HTML 5](https://img.shields.io/badge/HTML%205-white?style=plastic\u0026logo=html5)](https://developer.mozilla.org/es/docs/Web/HTML) [![SQLite](https://img.shields.io/badge/SQLite-%230e80cc?style=plastic\u0026logo=sqlite)](https://www.sqlite.org/) [![Composer](https://img.shields.io/badge/Composer%20-%20%23885630?style=plastic\u0026logo=composer\u0026logoColor=white)](https://getcomposer.org/)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub repo size](https://img.shields.io/github/repo-size/toniGitH/BookReviews?style=plastic\u0026logo=github)](https://github.com/toniGitH/BookReviews) [![GitHub code size](https://img.shields.io/github/languages/code-size/toniGitH/BookReviews?style=plastic\u0026logo=github)](https://github.com/toniGitH/BookReviews) [![GitHub file count](https://img.shields.io/github/directory-file-count/toniGitH/BookReviews?style=plastic)](https://github.com/toniGitH/BookReviews) [![GitHub watchers](https://img.shields.io/github/watchers/toniGitH/BookReviews?style=plastic\u0026logo=github)](https://github.com/toniGitH/BookReviews) [![GitHub forks](https://img.shields.io/github/forks/toniGitH/BookReviews?style=plastic\u0026logo=github)](https://github.com/toniGitH/BookReviews)\n\n\u003c/div\u003e\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub followers](https://img.shields.io/github/followers/toniGitH?style=plastic\u0026logo=GitHub\u0026logoColor=black\u0026labelColor=white\u0026color=red)](https://github.com/toniGitH?tab=followers)\n\n\u003c/div\u003e\n\n\n\n\u003cbr/\u003e\n\n# 📚 Aplicación de Reviews de Libros\n\nEsta es una aplicación web para gestionar **reviews de libros**.  \nPermite **crear, listar y borrar** reseñas que incluyen:\n\n- **Título**  \n- **Autor**  \n- **Rating**\n\n\u003e ℹ️ **Nota:** Actualmente no está implementada la función de **actualizar o editar** las reviews.\n\n---\n\n## 🔍 Funcionalidades\n\n- **Crear** nuevas reviews de libros.  \n- **Listar** todas las reviews existentes.  \n- **Borrar** reviews.  \n- **Buscar** reviews por título del libro.\n\n---\n\n## 🛠️ Tecnologías utilizadas\n\n- **Laravel 12**  \n- **Livewire 3**  \n- **Tailwind CSS** (incluido en la plantilla por defecto de Laravel + Vite)  \n- **Vite** para compilación de assets\n\n---\n\n## 🧩 Estructura de la aplicación\n\nLa aplicación está construida utilizando **2 componentes de Livewire 3 de página completa**:\n\n1. **Create** → Componente para crear nuevas reviews.  \n2. **BookList** → Componente para listar, buscar y borrar reviews.\n\nEstos componentes **de página completa** se renderizan dentro del layout por defecto:\n\n`resources/views/layouts/app.blade.php`\n\n---\n\n## ⚡ Comportamiento como SPA\n\nGracias a la directiva [`wire:navigate`](https://livewire.laravel.com/docs/navigation), la aplicación **se comporta como una SPA** (Single Page Application):  \n- La navegación entre páginas es fluida y sin recargas completas.  \n- Los assets y la estructura principal se mantienen cargados en memoria.\n\n---\n\n## 📦 Instalación y ejecución\n\n1️⃣ Haz un **fork** de este repositorio.\n\nPulsa el botón **Fork** arriba a la derecha.\n\nAl hacer esto, tendrás una **copia** de este repositorio **en tu cuenta de GitHub**.\n\n2️⃣ Clona tu nuevo repositorio fork en tu máquina local:\n\nElige la ubicación donde se creará la carpeta con el proyecto (por ejemplo, en htdocs, o en una carpeta Proyectos, etc...), y dentro de esa ubicación, ejecuta:\n\n```\ngit clone \u003curl-de-tu-fork\u003e\n```\n\nDentro de la ubicación que hayas elegido se creará la copia del proyecto, dentro de una carpeta con el nombre del repositorio que has copiado.\n\nPara continuar, debes entrar en esa nueva carpeta (en el proyecto) ejecutando:\n\n```\ncd \u003cnombre-de-la-carpeta-del-proyecto\u003e\n```\n\nTras hacer el Fork y clonar el repositorio, tendrás el proyecto en tu máquina local y en tu cuenta de GitHub, con seguimiento de git y vinculados el uno con el otro (podrás hacer pull, fetch, etc...).\n\nPuedes comprobar esto ejecutando:\n\n```\ngit remote -v\n```\nEste comando mostrará las URLs de los repositorios remotos asociados a tu copia local, normalmente con el nombre origin. Por ejemplo:\n\n`\norigin  https://github.com/tu-usuario/tu-fork.git (fetch)\n`\n\n`\norigin  https://github.com/tu-usuario/tu-fork.git (push)\n`\n\n\n3️⃣ Instala las dependencias de PHP:\n\n```\ncomposer install\n```\n\n4️⃣ Instala las dependencias de Node.js:\n\n```\nnpm install\n```\n\n5️⃣ Configura el archivo .env\n\nDuplica el archivo **env.example** y renómbralo como **.env**.\n\nPuedes hacerlo ejecutando esta instrucción:\n\n```\ncp .env.example .env\n```\n\nEn el nuevo archivo .env (el .env.example puedes dejarlo tal cual está), configura la conexión a la base de datos según tu entorno local.\n\n\u003e 💡 A partir de Laravel 11 (marzo de 2024), la base de datos por defecto es SQLite, así que para probar el proyecto puedes dejarlo así si quieres.\n\nGenera la clave de la aplicación:\n\n```\nphp artisan key:generate\n```\n\n6️⃣ Ejecuta las migraciones y los seeders (el proyecto viene con datos de prueba):\n\n```\nphp artisan migrate --seed\n```\n\nTe saldrá un mensaje avisando que no existe esa base de datos y te preguntará si quieres crearla:\n\n`\nWARN The SQLite database configured for this application does not exist: database/database.sqlite  \n`\n\nSelecciona: **YES**.\n\n7️⃣ Levanta el servidor de desarrollo y compila los assets:\n\nEn una terminal:\n\n```\nphp artisan serve\n```\n\nEn otra terminal (para compilar assets en tiempo real):\n\n```\nnpm run dev\n```\n\n\u003e ⚠️ Debes levantar ambos servidores para visualizar la aplicación correctamente.\n\nTras levantar ambos servidores, podrás acceder a la aplicacion haciendo clic en el enlace que aparecerá en la terminal, que será algo así:\n\n`\nINFO  Server running on [http://127.0.0.1:8000].  \n`\n\n\u003cbr\u003e\n\n\u003e 💡 A partir de Laravel 11.28 (octubre de 2024), ya puedes usar una sola instrucción para hacer ambas cosas:\n\n```\ncomposer run dev\n```\n\n\u003e 💡 Para producción, compila los assets con:\n\n```\nnpm run build\n```\n\n---\n\n## 📺 Tutorial de referencia\n\nEsta aplicación fue creada siguiendo el tutorial de YouTube:  \n[Curso de Livewire 3 - The Net Ninja](https://youtube.com/playlist?list=PL4cUxeGkcC9htKcjQPGQQL3fQHbIxXowN\u0026si=8idib--aopV2Ihlf)\n\n\u003cbr\u003e\n\n---\n\n## About Laravel\n\nLaravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:\n\n- [Simple, fast routing engine](https://laravel.com/docs/routing).\n- [Powerful dependency injection container](https://laravel.com/docs/container).\n- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.\n- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).\n- Database agnostic [schema migrations](https://laravel.com/docs/migrations).\n- [Robust background job processing](https://laravel.com/docs/queues).\n- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).\n\nLaravel is accessible, powerful, and provides tools required for large, robust applications.\n\n## Learning Laravel\n\nLaravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.\n\nYou may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch.\n\nIf you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.\n\n## Laravel Sponsors\n\nWe would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).\n\n### Premium Partners\n\n- **[Vehikl](https://vehikl.com)**\n- **[Tighten Co.](https://tighten.co)**\n- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**\n- **[64 Robots](https://64robots.com)**\n- **[Curotec](https://www.curotec.com/services/technologies/laravel)**\n- **[DevSquad](https://devsquad.com/hire-laravel-developers)**\n- **[Redberry](https://redberry.international/laravel-development)**\n- **[Active Logic](https://activelogic.com)**\n\n## Contributing\n\nThank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).\n\n## Code of Conduct\n\nIn order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).\n\n## Security Vulnerabilities\n\nIf you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.\n\n## License\n\nThe Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonigith%2Fbookreviews","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonigith%2Fbookreviews","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonigith%2Fbookreviews/lists"}