Giter VIP home page Giter VIP logo

pay-up's People

Contributors

dependabot[bot] avatar varrrro avatar

Stargazers

 avatar

Watchers

 avatar  avatar

pay-up's Issues

Definir la arquitectura del sistema

Se debe actualizar la documentación del proyecto, tanto en el archivo README.md como en la página web del mismo, para reflejar la arquitectura y el diseño que se ha decidido para el sistema.

Crear página web del proyecto

Usando la funcionalidad Pages de GitHub y Jekyll, construir una web que sirva para presentar el proyecto y la documentación necesaria.

Preparar entrega del hito 4

Para la entrega del hito 4, se debe añadir al proyecto el fichero YAML que define la evaluación de las prestaciones, ademñas de actualizar la documentación.

Configurar servicio e imagen docker

Para ejecutar el microservicio de grupos gmicro, debemos usar una herramienta como systemd o supervisord con la que lanzar y controlar el proceso. Este proceso debe ejecutarse dentro de un contenedor docker.

Configurar despliegue conjunto de la aplicación

Tanto los microservicios como sus respectivas bases de datos y el gateway se deben poder desplegar de manera sencilla y coordinada. Para ello, podemos usar una herramienta como Docker Compose, por ejemplo.

Añadir despliegue remoto

El sistema se debe desplegar en una serie de máquinas virtuales creadas en algún proveedor cloud.

Enlazar la web en el README

Para hacer más accesible la documentación del proyecto y de los distintos hitos, añadir un enlace a la página web en el archivo README.md.

Eliminar grupos

  • Debo poder eliminar un grupo.
  • Cuando elimine un grupo, todos los datos almacenados sobre el mismo deberán ser eliminados.

Eliminar tecnologías privativas

Se debe eliminar la referencia a Graylog del README y cambiarla por alguna tecnología libre para la gestión de logs. Además, reescribir algunos párrafos para explicar mejor las partes.

Corregir error en el despliegue a Heroku

En Heroku, los contenedores no se ejecutan como root, es por esto que falla la ejecución del proceso con supervisord. Hay que quitar el usuario que se crea actualmente en el Dockerfile.

Añadir pagos

  • Debo poder añadir un pago de un integrante de un grupo a otro.
  • Cuando añada un pago nuevo, se deben recalcular los balances de las personas implicadas.

Eliminar el último gasto

  • Debo poder eliminar el último gasto añadido al grupo.
  • Cuando elimine un gasto del grupo, se debe recalcular el balance de las personas implicadas.

Mejorar logs

Mejorar los logs producidos por las distintas partes de la aplicación.

Añadir personas a un grupo

  • Debo poder añadir una persona nueva a un grupo existente.
  • Debo poder añadir un conjunto de personas nuevas a un conjunto existente.
  • Cuando añada un nuevo integrante/s a un grupo, su balance inicial debe ser cero.

Crear grupos

  • Debo poder crear un grupo vacío.
  • Debo poder crear un grupo a partir de un conjunto de personas.
  • Cuando cree un grupo a partir de un conjunto de personas, su balance inicial debe ser cero.

Usar tipo UUID en modelo de datos de tmicro

Hasta ahora, representábamos los UUIDs como strings en nuestro modelo de datos. Esto provoca una enorme cantidad de trabajo inútil extra ya que hay que estar comprobando que los strings sean válidos.

Se va a cambiar el modelo de datos de tmicro para utilizar UUIDs, por lo que habrá que cambiar también la manera de trabajar en los managers y handlers.

Aprovechando este cambio, también se van a eliminar las funciones New() que permitían construir estos objetos debido a que no se utilizan.

Añadir fichero de configuración inicial

Se debe crear un fichero .travis.yml que permita la ejecución de la herramienta de integración continua. El fichero debe incluir la instalación de dependencias y la ejecución de los tests, así como el envío de los datos de cobertura a la herramienta codecov.

Configurar la creación automática de máquinas virtuales

Para realizar el despliegue final de la aplicación en algún proveedor cloud (Azure, GCP, ...), se va a configurar la creación automática de máquinas virtuales en dicho proveedor usando una herramienta como Terraform.

Además, se configurará también este despliegue automático en la máquina local con motivos de prueba usando Vagrant.

Configurar el provisionamiento de máquinas virtuales

Usando Ansible, se van a crear playbooks para el provisionamiento de las máquinas virtuales donde se ejecutarán las distintas partes del sistema. El ciclo de vida de estas partes (ejecución y finalización) en las máquinas también se tendrá que poder realizar usando Ansible.

Añadir gastos

  • Debo poder añadir un gasto realizado por un integrante de un grupo para el resto.
  • Debo poder añadir un gasto realizado por algunos integrantes de un grupo para el resto.
  • Debo poder añadir un gasto realizado por un integrante de un grupo para algunos de los demás.
  • Debo poder añadir un gasto realizado por algunos integrantes de un grupo para algunos de los demás.
  • Cuando añada un gasto nuevo, se debe recalcular el balance de las personas implicadas.

Eliminar el último pago

  • Debo poder eliminar el último pago añadido a un grupo.
  • Cuando elimine un pago de un grupo, se deben recalcular los balances de las personas implicadas.

Corregir contenido de las respuestas de gmicro

Las respuestas que devuelve el microservicio de grupos no tienen la cabecera Content-Type fijada a application/json. Debemos hacer que todas las respuestas devuelvan esta cabecera y añadir una comprobación para ella a nuestros tests.

Usar tipo UUID en modelo de datos de gmicro

Hasta ahora, representábamos los UUIDs como strings en nuestro modelo de datos. Esto provoca una enorme cantidad de trabajo inútil extra ya que hay que estar comprobando que los strings sean válidos.

Se va a cambiar el modelo de datos de gmicro para utilizar UUIDs, por lo que habrá que cambiar también la manera de trabajar en los managers y handlers.

Aprovechando este cambio, también se van a eliminar las funciones New() que permitían construir estos objetos debido a que no se utilizan.

Documentar la definición del fichero de construcción

Se debe modificar el archivo README.md para incluir la justificación sobre las elecciones de las herramientas de test y construcción, así como la documentación del fichero .travis.yml. También se deben añadir los badges de Travis y Codecov.

La documentación existente en el README.md será movida a un post de la web.

Escribir gateway

Para gestionar las peticiones a los dos microservicios desde un único punto de acceso, escribiremos un API gateway que se ejecutará en un contenedor individual.

Eliminar personas de un grupo

  • Debo poder eliminar una persona de un grupo.
  • Debo poder eliminar un conjunto de personas de un grupo.
  • No debo poder eliminar una persona con un balance distinto de cero.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.