¡Bienvenido a Books App! A continuación, encontrarás una descripción general del proyecto, una lista de los archivos incluidos y las instrucciones para ejecutar la aplicación en tu entorno local.
Books App es una plataforma que te permite buscar libros, obtener detalles sobre ellos y dejar reseñas con calificaciones. Puedes buscar libros por título, autor o ISBN, y la aplicación te proporcionará información detallada sobre cada libro, incluyendo su portada, calificaciones promedio y reseñas de otros usuarios. Además, recibirás recomendaciones aleatorias de libros cuando te encuentres en la pestaña principal. Para comenzar a utilizar la aplicación, puedes registrarte como usuario y, una vez dentro, podrás dejar tus propias reseñas y explorar libros de tu interés.
Youtube: https://youtu.be/es2CdR8Ud64?si=uVSd_oEVmdQbdVP-
-
application.py: Este archivo contiene el corazón de la aplicación Flask, con las rutas y funciones para manejar la funcionalidad de la aplicación web.
-
create.py: Con este archivo, puedes crear las tablas necesarias en tu base de datos para el correcto funcionamiento de la aplicación.
-
database.py: Aquí encontrarás todas las funciones relacionadas con el CRUD de la base de datos.
-
functions.py: En este archivo se encuentran funciones auxiliares que respaldan diversas funcionalidades de la aplicación, como la validación de usuarios, el formateo de resultados de la API de Google Books y la autenticación del usuario.
-
import_books.py: Este script te permitirá cargar los libros desde el archivo books.csv a la base de datos PostgreSQL.
-
templates/: Esta carpeta contiene archivos HTML que definen la estructura y apariencia de las páginas web de la aplicación. En adición, también se encuentra el Javascript de las plantillas HTML.
-
static/: Aquí encontrarás archivos estáticos como hojas de estilo CSS, fuentes y otros recursos utilizados en las plantillas HTML.
-
.env.txt: Un archivo de ejemplo que muestra cómo deben configurarse las variables de entorno, como la URL de la base de datos y la clave de API de Google Books.
-
books.csv: Son los libros que deben contener la base de datos; este mismo fue otorgado en la documentación que define cómo realizar este proyecto.
-
querys.sql: En este archivo SQL se encuentran las consultas para la creación de las tablas que la aplicación requiere para su funcionamiento.
-
Asegúrate de tener Python 3.11 instalado en tu sistema.
-
Instala las dependencias de Python utilizando el siguiente comando:
pip install -r requirements.txt
-
Crea una base de datos PostgreSQL y configura la URL de la base de datos en el archivo
.env.txt
con las credenciales necesarias.export DATABASE_URL="URL de tu base de datos PostgreSQL."
-
Renombra el archivo
.env.txt
a.env
y configura la clave de la API de Google Books.export API_KEY="Tu clave API de Google Books."
-
Al final tu archivo
.env
debe tener la siguiente estructura:export DATABASE_URL="URL de tu base de datos PostgreSQL." export FLASK_APP=application.py export FLASK_DEBUG=1 export API_KEY="Tu clave API de Google Books." export API_URL=https://www.googleapis.com/books/v1/mylibrary/bookshelves/0/clearVolumes
-
Cuando hayas finalizado los pasos anteriores, ejecuta el archivo Python llamado
create.py
, este se encargará de crear las tablas con sus campos necesarios en tu base de datos.python create.py
-
La base de datos necesitará de los libros otorgados en el archivo
books.csv
, por lo tanto, ahora ejecuta el scriptimport.py
y espera a que todos los libros sean subidos a la base de datos.python import.py
-
Ejecuta la aplicación de Flask con el siguiente comando:
flask run
-
Abre tu navegador web y accede a
http://localhost:5000
para comenzar a usar la aplicación. -
Regístrate en el apartado
/sign_in
y luego inicia sesión en/login
y disfruta de la aplicación.
-
Asegúrate de tener los archivos de la aplicación con la siguiente jerarquía:
application.py create.py database.py functions.py import.py books.csv querys.sql .env .gitignore - static - css - fuentes - icons - vectores - templates
-
Recuerda realizar las ejecuciones de la consola desde la carpeta en donde se encuentra el application.py.
-
La aplicación incluye autenticación de usuarios, por lo que los usuarios deben registrarse e iniciar sesión para acceder y poder postear reseñas.
-
La funcionalidad de búsqueda utiliza la API de Google Books para obtener información detallada de los libros.
-
La aplicación proporciona estadísticas sobre reseñas de libros y recomendaciones aleatorias para los usuarios.
-
Las sugerencias de la barra de búsqueda no son precisas debido a que la API (Google Books) para este apartado no cuenta con un filtro de restricción que permita mostrar únicamente los libros que pertenecen a la base de datos.
-
Puede que te encuentres con libros que, al intentar reseñarlos, generen un error 404. Esto se debe a que no forman parte de la base de datos. La razón por la cual aparecen se debe a un simple error en el filtro que no limita los resultados a libros que estén exclusivamente en la base de datos no tiene una precisión del 100%. El problema al diseñar un método con una precisión del 100% es el tiempo de carga, que de por sí ya es lento.
¡Espero que disfrutes utilizando la aplicación de reseñas de libros! Si tienes alguna pregunta o necesitas más información, no dudes en contactarme.
/api/<isbn>
- Devuelve un archivo JSON el cual contiene el título, autor, fecha de publicación, número ISBN, total de reseñas y su puntuación promedio de Google Books.
GET
request: api/<isbn>
Resultado:
{
"author": "Ben Aaronovitch",
"average_score": "N/A",
"isbn": "0345524616",
"review_count": "N/A",
"tittle": "Whispers Under Ground",
"year": 2012
}