:book: ReadBook :book:
Proyecto para la asignatura de Cloud Computing del Máster En Ingeniería Informática de la UGR.
Sistema de análisis de libros basado en opiniones de lectores
:pencil2: Descripción :pencil2:
El proceso de decisión sobre el libro a leer siempre es un procedimiento tedioso y en la mayoría de ocasiones agotador para el lector, el cual llega a abandonar este proceso de búsqueda. Por consiguiente, con el objetivo de suplir este problema, se llevará a cabo un sistema para la gestión de libros que permita añadir, eliminar o editar los diferentes libros y novedades que se vayan lanzando al mercado con distintos parámetros como pueden ser el editor, autor, título, número de ISBN, tipo de libro, temática y sinopsis. La aplicación permitirá buscar libros a través de diferentes filtros como los mencionados anteriormente así como la posibilidad de establecer diversos estados para un libro como por ejemplo, "Favoritos", "Visto recientemente", "Leer ahora" o "He leído", entre otros.
De esta manera, en el sistema existen dos tipos de usuarios:
- Un usuario administrador el cual podrá realizar funciones como añadir, eliminar, actualizar o editar los parámetros de los libros mencionados anteriormente.
- Un usuario lector que puede consultar las novedades existentes en la actualidad, seleccionar libros favoritos y visualizarlos, qué libros ha visto recientemente, el idioma en el que se encuentra, la categoría a la que pertenece, qué autor/es han escrito el libro, etc.
Lógica de negocio
La solución propuesta para resolver este problema es la creación de un sistema que recibirá una colección de libros con sus diferentes parámetros obtenidos de API's como Google Books o Goodreads a partir de las cuales se podrá recuperar una gran cantidad de información (autor, editor, fecha de publicación, comentarios...) que le resultará de gran utilidad al lector.
¿ A quién beneficia?
El sistema beneficiaría a:
- Usuarios lectores ya que podrán visualizar información relevante sobre una gran cantidad de libros, temáticas, autores, editores o fecha de publicación facilitando en gran medida el proceso de búsqueda.
- Empresas editoriales o administradores. Las editoriales o administradores podrán modificar o agregar información de manera sencilla e intuitiva sobre cualquier artículo.
:pushpin: Descripción del problema a resolver y usos de git y GitHub:
- En el siguiente enlace se podrá acceder al Hito 0 donde se lleva a cabo toda la configuración y creación del repositorio así como del par de claves (pública y privda) y de la licencia empleada.
:computer: Elaboración de código, HUs e hitos:
- En el siguiente enlace se podrá acceder al Hito 1 donde se define la estructura inicial del proyecto, elaborando distintas historias de usuario e hitos con el objetivo de describir un producto mínimamente viable. Además, se lleva a cabo la implementación de alguna de las clases el proyecto.
:pencil2: Tests:
- En el siguiente enlace se podrá acceder al Hito 2 donde se define la elección y configuración del gestor de tareas, el uso de la biblioteca de aserciones así como el marco de pruebas empleado. Además, se proporciona diferente información como los tests unitarios realizados y su correspondencia con el avance de código.
:whale: Docker:
- En el siguiente enlace se podrá acceder al Hito 3 donde se define la elección y justificación del contenedor base y la creación del archivo Dockerfile siguiendo las buenas prácticas y adaptándolo de manera correcta a las clases y módulos del proyecto. Además, se proporciona la documentación asociada tanto a la subida del contendor a DockerHub como a la actualización automática así como el uso de registros alternativos y públicos como GitHub Container Registry.
:scroll: CI - Integración Continua:
- En el siguiente enlace se podrá acceder al Hito 4 donde se define la elección y justificación de los distintos sistemas de integración continua así como la configuración de algunos de ellos. Además, se proporciona la documentación asociada tanto a la creación del archivo de configuración de Circle CI como de GitHub Actions, todo ello haciendo uso y aprovechando el contenedor de Docker creado en el hito 3.
:book: Microservicios
- En el siguiente enlace se podrá acceder al Hito 5 donde se define la elección y justificación de los distintos frameworks utilizados para microservicios, se ha llevado a cabo la documentación y diseño completo de la API, se ha levantado un conjunto de contenedores para la realización y visualización de logs haciendo uso del Stack Elastic así como la continuación con la implementación del proyecto.
:electron: Composición de servicios
- En el siguiente enlace se podrá acceder al Hito 6 donde se define la elección y justificación del clúster de contenedores utilizados con su respectiva imagen. Además, se ha llevado a cabo la documentación y justificación de la configuración de cada uno de los contenedores que lo componen así como la documentación paso a paso del fichero de composición. Por otro lado, dado que en hitos anteriores se construyeron todos los tests y funcionalidades, se ha comprobado que estos pasan correctamente.