The Wallet Plannifier Es un servicio web que pretende ser la aplicación que se encargue de la gestión de la logica de la aplicación mobil asi como ser eje central para la seguridad de los datos de los usuarios.
El software está siendo desarrollado en .NET Core 3.1, utilizando una base de datos con MySQL con una arquitectura de cebolla.
La arquitectura de cebolla o onion architecture es un patrón arquitectónico que permite sistemas empresariales evolutivos y mantenibles. Está diseñado para ser usado a nivel de capas, las cuales mantienen la aplicación desacoplada, testeable y mantenible garantizando la simpleza sin perder escalabilidad
Desarrollo guiado por pruebas de software, o Test-driven development (TDD) es una práctica de ingeniería de software que involucra otras dos prácticas: Escribir las pruebas primero (Test First Development) y Refactorización (Refactoring). Para escribir las pruebas generalmente se utilizan las pruebas unitarias (unit test en inglés)
El ambiente de publicación que estamos utilizando es hosteado en heroku. Heroku es una plataforma como servicio (PaaS) de computación en la Nube que soporta distintos lenguajes de programación. Nuestra aplicacion es hospedada allí gracias a que la tenemos en un contenedor de docker.
Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos
El proyecto es publicado por medio a lo que se conoce como continous delivery o deployment, lo cual consiste en un enfoque de la ingeniería del software en que los equipos de desarrollo producen software en ciclos cortos, asegurando que el software puede ser liberado en cualquier momento, de forma confiable en cualquier momento
La aplicación cuenta con una seguridad utilizando lo que es Json web tokens que es un estándar abierto basado en JSON propuesto por IETF (RFC 7519) para la creación de tokens de acceso que permiten la propagación de identidad y privilegios o claims en inglés. Por ejemplo, un servidor podría generar un token indicando que el usuario tiene privilegios de administrador y proporcionarlo a un cliente.
La persistencia de datos en la aplicación la manejamos utiliznado el gestor de bases de datos MySQL el cual es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual; una de las más populares en general junto a Oracle y Microsoft SQL Server, todo para entornos de desarrollo web. El servicio lo utilizamos a traves de Jaws que es ofrecido por heroku.