varrrro / pay-up Goto Github PK
View Code? Open in Web Editor NEWSistema para la gestión de pagos en grupo y automatización de deudas.
Home Page: https://varrrro.github.io/pay-up
License: GNU General Public License v3.0
Sistema para la gestión de pagos en grupo y automatización de deudas.
Home Page: https://varrrro.github.io/pay-up
License: GNU General Public License v3.0
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.
Escribir una presentación del proyecto en el archivo README.md
.
Se debe añadir la documentación relativa al despliegue de máquinas virtuales y su provisionamiento.
Usando la funcionalidad Pages de GitHub y Jekyll, construir una web que sirva para presentar el proyecto y la documentación necesaria.
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.
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
.
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.
El sistema se debe desplegar en una serie de máquinas virtuales creadas en algún proveedor cloud.
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
.
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.
Se debe incorporar una cola de mensajes para el microservicio de gastos/pagos, ya que es importante que estos se procesen en orden.
Se debe mejorar el porcentaje de cobertura de los tests a un nivel más aceptable, como puede ser el 80%.
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
.
Con la nueva descripción del proyecto, el diagrama contiene algunos errores que se deben solventar.
Mejorar los logs producidos por las distintas partes de la aplicación.
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.
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
.
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.
Faltan algunos detalles de la implementación del proyecto, como son el protocolo de comunicación o el almacén de pares clave-valor.
Para aportar documentación a este primer hito, escribir un nuevo post en la web sobre la configuración de Git llevada a cabo.
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.
En vez de implementar funciones separadas para la adición/eliminación de uno o varios usuarios, usar una única función a la que se llame en un bucle.
Actualmente, se copian tambien los ficheros de test a la imagen, lo cual no es necesario.
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.
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.
El contenedor del microservicio de gestión de grupos, gmicro
, debe desplegarse a Heroku.
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.
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.
Mover el contenido actual del READM.md
a posts de la web del proyecto y redactar el nuevo contenido sobre la creación del servicio, la imagen Docker y el despliegue a Heroku.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.