{"id":22550917,"url":"https://github.com/douglasac/gestion-de-libros","last_synced_at":"2026-04-24T23:31:29.807Z","repository":{"id":265332615,"uuid":"895315777","full_name":"DouglasAC/Gestion-de-Libros","owner":"DouglasAC","description":"Aplicación de escritorio para gestionar libros, desarrollada en Python utilizando Tkinter y SQLite.","archived":false,"fork":false,"pushed_at":"2024-11-29T00:41:44.000Z","size":68,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-17T05:03:30.152Z","etag":null,"topics":["crud","learning","python","sqlite","tkinter"],"latest_commit_sha":null,"homepage":"","language":"Python","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/DouglasAC.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}},"created_at":"2024-11-28T01:19:33.000Z","updated_at":"2024-11-29T00:41:47.000Z","dependencies_parsed_at":"2024-11-29T02:17:58.058Z","dependency_job_id":null,"html_url":"https://github.com/DouglasAC/Gestion-de-Libros","commit_stats":null,"previous_names":["douglasac/gestion-de-libros"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DouglasAC/Gestion-de-Libros","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasAC%2FGestion-de-Libros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasAC%2FGestion-de-Libros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasAC%2FGestion-de-Libros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasAC%2FGestion-de-Libros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DouglasAC","download_url":"https://codeload.github.com/DouglasAC/Gestion-de-Libros/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasAC%2FGestion-de-Libros/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260294453,"owners_count":22987622,"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","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":["crud","learning","python","sqlite","tkinter"],"created_at":"2024-12-07T17:08:59.153Z","updated_at":"2026-04-24T23:31:29.767Z","avatar_url":"https://github.com/DouglasAC.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gestión de Libros 📚\n\nEste proyecto es una aplicación de escritorio simple para gestionar libros, desarrollada en Python utilizando **Tkinter** para la interfaz gráfica y **SQLite** para la base de datos.\n\n## Propósito del Proyecto\n\nEste proyecto fue desarrollado como parte del curso **\"The Python Mega Course: Build 10 Real World Applications\"** en Udemy. Su objetivo principal es practicar el lenguaje Python y las bibliotecas que se utilizan en el desarrollo de aplicaciones de escritorio. Además, es una forma de reforzar conceptos como la conexión a bases de datos y la interacción entre un frontend y un backend.\n\n---\n\n## Características\n\n- **Ver todos los libros:** Muestra todos los libros registrados en la base de datos.\n- **Buscar un libro:** Permite buscar libros por título, autor, año o ISBN.\n- **Agregar un libro:** Agrega nuevos libros a la base de datos.\n- **Actualizar un libro:** Actualiza la información de un libro seleccionado.\n- **Eliminar un libro:** Borra un libro de la base de datos.\n  - incluye confirmación antes de borrar.\n- **Cerrar la aplicación:** Cierra la interfaz gráfica.\n- **Manejo de errores:**\n  - Notificación si se intenta eliminar o actualizar sin seleccionar un registro.\n\n## Requisitos\n\n- Python 3.8 o superior\n- Paquetes utilizados:\n  - `tkinter` (incluido en Python)\n  - `sqlite3` (incluido en Python)\n\n## Instalación y Uso\n\n### 1. Clona este repositorio o descarga los archivos.\n\n### 2. Crear el ejecutable (opcional)\n\nSi deseas generar un ejecutable:\n\n1. Instalar PyInstaller\n\n    ```bash\n    pip install pyinstaller\n    ```\n2. Genera el ejecutable:\n\n    ```bash\n    pyinstaller --onefile --noconsole app.py\n    ```\n    El archivo ejecutable estará en la carpeta `dist/.`\n\n### 3. Ejecutar aplicación \n\nPuedes ejecutar la aplicación directamente con Pytho:\n\n```bash\npython frontend.py\n```\n\n## Estructura del proyecto\n\n```bash\ngestion-de-libros/\n│\n├── frontend.py      # Frontend y lógica de la interfaz gráfica encapsulada en una clase\n├── backend.py       # Backend (clase Database para conexión con SQLite)\n├── README.md        # Documentación del proyecto\n├── libros.db        # Base de datos SQLite (se crea automáticamente)\n└── .gitignore       # Ignora archivos innecesarios (build/, dist/, etc.)\n```\n\n## Funcionalidades principales\n\n| Botón                | Descripción                                        |\n| -------------------- | -------------------------------------------------- |\n| Ver todos\t           | Muestra todos los registros de la base de datos.   |\n| Buscar entrada       | Busca libros por título, autor, año o ISBN.        |\n| Agregar entrada      | Añade un nuevo libro a la base de datos.           |\n| Actualizar selección | Modifica un libro seleccionado.                    |\n| Borrar selección     | Elimina un libro seleccionado de la base de datos. |\n| Cerrar               | Cierra la aplicación.                              |\n\n### Backend\nEl backend está implementado en el archivo `backend.py` y utiliza SQLite como base de datos. Ahora, el backend se organiza en una clase llamada `Database`. Para utilizarlo, debes importar la clase y crear una instancia con el nombre del archivo de la base de datos. Ejemplo:\n\n```python\nfrom backend import Database\n\n# Crear instancia de la base de datos\ndb = Database(\"libros.db\")\n\n# Métodos disponibles\ndb.insertar(\"Titulo\", \"Autor\", 2024, 123456)\nlibros = db.ver()\nprint(libros)\n```\n\n#### Métodos de la clase `Database`\n- `inicializar()`: Crea la tabla `libros` si no existe.\n- `insertar(titulo, autor, anio, isbn)`: Inserta un nuevo libro en la base de datos.\n- `ver()`: Retorna todos los registros de la tabla.\n- `buscar(titulo=\"\", autor=\"\", anio=\"\", isbn=\"\")`: Busca registros en la base de datos.\n- `eliminar(id)`: Elimina un registro por su `id`.\n- `actualizar(id, titulo, autor, anio, isbn)`: Actualiza un registro existente.\n\n\n### Captura de pantalla\n\n![Libros](imgs/libros.png)\n\n## Contribución\n\nEste proyecto no está pensado para uso comercial ni como un producto terminado. Es únicamente un ejercicio de aprendizaje. Sin embargo, si deseas realizar mejoras, puedes:\n\n* Hacer un fork del repositorio.\n* Realizar tus cambios en una nueva rama.\n* Enviar un pull request con una descripción clara de tus cambios.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdouglasac%2Fgestion-de-libros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdouglasac%2Fgestion-de-libros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdouglasac%2Fgestion-de-libros/lists"}