API para obterner avisos en descuentos de maquillaje. Asignatura Infraestructura Virtual (IV) , ETSIIT, UGR.
La idea del proyecto es poder enterarse rápidamente de descuentos, promociones o ofertas rápidas de productos de maquillaje de tiendas Sephora, la cual muchas veces lanza gangas a través de sus redes sociales y demás medios que acaban agotándose de inmediato.
Puedes ver la justificación de por qué he elegido Sinatra como framework y documentación del uso de este aquí
Puedes ver como he diseñado la API y toda la documentación relativa a esta y a los test que se han realizado aquí
Puedes ver como he generado un archivo log en el que se almacenan todos los registros de peticiones aquí
Puedes instalar todas las dependencias haciendo rake install
y pasar los test haciendo rake test
. Puedes ver todas estas instrucciones (task) en el archivo Rakefile
También puedes iniciar el servicio haciendo rackup
🆕 iv.yaml
Puedes consultar el fichero iv.yaml aqui
🆕 config.ru
Puedes consultar el fichero iv.yaml aqui
🆕 sinatra/myapp.rb
Puedes consultar el fichero myapp.rb en el que he desarrollado la gran mayoría de la API con Sinatra aquí
🆕 src/almacen.rb
Puedes consultar el fichero almacen.rb en el que han desarrollado funciones para la HU08 y cuya clase actúa como una de las clases controladoras de la API aquí
🆕 spec/testMyapp.rb
Puedes consultar el fichero con todos los test del fichero myapp.rb aqui
🆕 sinatra/log
Puedes consultar la información recogida durante las peticiones a la api en el fichero info.log
🆕 Ficheros de dependencias
Aquí se encuentran los ficheros Gemfile y Gemfile.lock. En Gemfile especificamos que gemas vamos a usar mientras que Gemfile.lock se encarga de mantener esas versiones actualizadas cuando corremos Bundler.
🆕 Fichero de gestión de tareas
Aquí se encuentra el fichero Rakefile con el que podemos gestionar la tareas y automatizarlas con Rake
Código fuente
Puedes acceder al código fuente del proyecto desde la carpeta /src
Ficheros de test
Todos los test están localizados en la carpeta /spec
5.json
Puedes consultar el fichero 5.json aqui
.travis.yml
Puedes consultar el fichero .travis.yml aqui
Shippable.yml
Puedes consultar el fichero shippable.yml aqui
Dockerfile
Puedes consultar el fichero Dockerfile aqui
También puedes consultar la documentación del dockerfile y la justificación de las ordenes aquí
-
Puedes consultar la documentación y justificación del repositorio con Vercel aquí
-
Puedes acceder a mi respositorio en Vercel aquí
-
Y también puedes consultar la integración dentro del proyecto de nuevo código, todo alojado en la carpeta /api corresponientes a la HU07
-
Puedes consultar toda la información de cómo he creado un bot de telegram con AWS Lambda y he automatizado su despliegue aquí. También se incluye también una explicación del fichero handler.rb y otra del fichero serverless.yml
-
Puedes acceder al bot de telegram desde aquí
-
Y también puedes acceder a todos los archivos necesarios en la carpeta /makeup-iv-bot en la que están, en el archivo handler.rb las funciones corresponientes a las HU07 y HU02 y en el archivo serverless.yml la configuración de dicho serverless
La integración garantiza que los cambios se creen y prueben con la última versión de todo el código base con el fin de encontrar errores lo antes posible y asegurar la calidad del código.
Para configurar la integración continua (CI) disponemos de dos plataformas online, Travis y Shippable.
-
Puedes consultar la documentación y justificación de Travis aquí
- También puedes consultar información sobre una alternativa al travis.yml actual en la que se hace uso del gestor de tareas en vez de aprovecharse Docker aquí
-
Puedes consultar la documentación y justificación de Shippable aquí
Puedes acceder también a mi perfil de Travis y a mi perfil de Shippable
Para ejecutar los test necesitamos tener clonado el respositorio de GitHub y además tener descargado en nuestro repositorio local el contenedor base.
Podemos encontrar el contenedor base tanto en DockerHub como en GitHub Container Registry.
Para descargar desde Docker Hub:
docker pull mariasanzs/makeupiv
Para descargar desde GitHub Container Registry:
docker pull ghcr.io/mariasanzs/makeupiv/packagemakeupiv:latest
Para ejecutar los test desde la carpeta del repositorio se hace:
docker run -t -v
pwd
:/test mariasanzs/makeupiv
Puedes consultar información sobre la comparación de diferentes imágenes y la optimización del tamaño y/o la velocidad del contenedor resultante aquí
Puedes consultar la justificación del contenedor base aquí
Puedes consultar la documentación sobre Docker Hub aquí
Puedes acceder al contenedor en Docker Hub en este enlace
Puedes consultar la documentación sobre Github Container Registry aquí
Puedes acceder al paquete de Github Container Registry en este enlace
Antes de ejecutar el Rakefile deberíamos de tener instalado Bundler y Rake:
gem install bundler
gem install rake
Simplemente debemos de escribir el siguiente comando para instalar las dependencias:
rake -installdeps
- Ejecutamos los test haciendo:
rake test
Como lenguaje de programación se ha elegido Ruby
Se ha elegido RBENV como gestor de versiones, la justificación de la elección y demás información puedes consultarlo aquí
Se utilizará Rspec como herramienta para testear todo nuestro código. Toda la información esta aquí disponible
Para gestionar las dependencias se usará Bundler, para conocer más sobre esta herramienta y su elección consulte el siguiente enlace
Como herramienta para automatizar y gestionar tareas se hace uso de Rake, toda la información relevante se encuentra aquí
Puedes consultar las historias de usuario en la sección "Issues" bajo el label user-stories
Puedes consultar los issues cerrados que se han ido cumpliendo aquí
Enlace a los Milestones del proyecto
Puedes seguir los pasos llevados a cabo durante el proyecto en el siguiente enlace
Configuración de git correctamente incluyendo el archivo config y las claves pública y privada]
- María Sanz Sánchez - mariasanzs