domingolopez / charge-your-travel Goto Github PK
View Code? Open in Web Editor NEWRepositorio principal de la asignatura Cloud Computing del Master Profesional en Ingeniería Informática de la ETSIIT - UGR.
License: GNU General Public License v3.0
Repositorio principal de la asignatura Cloud Computing del Master Profesional en Ingeniería Informática de la ETSIIT - UGR.
License: GNU General Public License v3.0
Quiero saber cuales son los tipos de dispensadores/conectores eléctricos predominantes de los usuarios del sistema, con lo que podré incorporar estos dispensadores en el futuro si observo tendencia de uso al alza en alguno de ellos.
Criterios de aceptación:
Se debe poder obtener los siguientes agrupados:
Para realizar los tests, su automatización y gestionar las dependencias del proyecto se han de estudiar y elegir las herramientas y frameworks oportunos.
Se ha de documentar la opción escogida.
Mejorar la documentación e investigar otras herramientas de testeo y automatización
Referencia #7
Al realizar trayectos continuos con coche eléctrico y sabiendo que los precios de las estaciones de servicio cambian continuamente necesito minimizar costes de recarga en desplazamientos largos.
Criterios de aceptación:
Corregir el formato del cc.yaml : Supongo que es referido al array en formato [ .. , .. , .. ]. Según aparece en la documentación oficial de yaml: https://yaml.org/spec/1.2.2/ , los arrays pueden formatearse así también. La otra forma es indicando cada uno de los valores del array como una lista:
key:
Así puede que parezca más legible, pero no veo incorrecto el formato anterior.
Implementar clase Impresion
Referencia a #10
Realizar backup del README del Hito 3 en el project log y preparar nueva rama para realizar el Híto 4 referente a la integración continua.
Añadir criterios de elección de la imagen base. De forma implícita se indica que es el tamaño el criterio de elección, pero también es el número de paquetes o paquetes inútiles que traen algunas imágenes y que no nos sirven para nuestro caso.
Justificar un poco más la elección.
Arreglar algunos fallos ortográficos en el README
Corregir el título del PMV1 por PMV 0 - Interno ya que no es realmente un PMV que se le pueda aportar a un cliente, simplemente un producto interno.
Refactorizar tests y posibles errores de escritura para que el código use buenas prácticas de Typescript.
Referencia #7
Los tests escritos deben testar la lógica de negocio que se ha desarrollado. Aunque sí que se prueba cierta lógica de negocio, los tests se han de vincular con las historias de usuario y los criterios de aceptación de las mismas.
En el PMV 1 se desarrolla la HU 1 : #7.
Debe comprobarse en los tests que:
Para ello se deben realizar los tests del Agrupado de las estaciones de servicio que contiene la entidad EstacionServicio y los objetos de valor FiltroPrecio y Coordenadas. Se realizarán tests unitarios para cada una de estas clases, siendo EstacionServicio la más relevante a la hora de testar la HU 1.
Para una correcta implementación de la lógica deben seguirse las siguientes pautas:
Referencia #7
Corregir error de tecleo en la función describe de los Tests de EstacionServicio. Se indica FiltroPrecio tests y debe ser EstacionServicio tests
Referencia #7
Necesito conocer las estaciones de servicio más cercanas a mi posición que dispongan de cargadores eléctricos con el tipo de conector de mi vehículo eléctrico sin que el coche me deje tirado, intentando minimizar el coste que tendrá la recarga.
Criterios de aceptación:
Quitar los getters y setters de las clases, construyendo los constructores de tal forma que no sean necesarios.
Referencia a #7
Es necesario investigar y estudiar Docker para poder realizar este PMV. Así mismo se debe recopilar la información suficiente para poder documentar la elección del contenedor base para la creación del Dockerfile
Agregar a la carpeta del proyecto doc/project_log el README actual correspondiente al Hito 1. Tener en cuenta los enlaces que apuntan a otras zonas del proyecto
Referencia a #7
Corregir cc.yaml poniendo las entidades en un array tal y como deben estar. Agregar lo que se indica en el hito 2.
Referencia a #7
Tras el cambio en los directorios del proyecto se hace necesario hacer un fix de las rutas que utiliza el Gruntfile.js y que no transpile los tests por ejemplo
Referencia #7
Implementar la funcionalidad de la clase EstacionServicio. Esta, junto con la clase FiltroPrecio y el enumerado TipoConector formarán un agregado para la gestión de Estaciones de Servicio y sus precios. Este agregado podrá ofrecer información referente a las estaciones de servicio próximas a unas coordenadas dadas, así como la referente a los precios de las distintas Estaciones.
Métodos como agregarFitroPrecio(...) o métodos de clase como obtenerEstacionesServicio(radio_km, lat_actual, long_actual) (que obtiene las estaciones de servicio en un radio a la redonda desde la posición actual) son necesarios.
Tras una investigación adicional se necesita actualizar la documentación para incluir otras posibles imágenes base candidatas.
Se debe crear un workflow que permita hacer uso de Github Container Registry y actualizar automáticamente la imagen creada cuando se haga push sobre la rama main.
Se ha de documentar el proceso seguido, igual que lo realizado para DockerHub, así como realizar testeos con push en main y PR sobre main.
La clase Coordenadas es un objeto de valor que sirve a distintas entidades del sistema. Nos servirá para validar las latitudes y longitudes de las entidades así como para aplicar algunas operaciones como cálculo de distancia entre dos puntos geográficos.
Los métodos calculaDistanciaEuclidea y calculaDistanciaManhattan son primordiales.
Se debe configurar la cuenta de DockerHub y subir la imagen creada al mismo a través de actualizaciones via Github Actions. Para ello se debe investigar en la documentación de DockerHub y Github Actions para tal propósito.
Se debe además documentar el proceso seguido para llevar a cabo esta tarea.
Escribir los tests para la clase Coordenadas, así como los métodos de cálculo de distancia que están expresados en ella.
Referencia a #7
La clase FiltroPrecio es un objeto de valor de la entidad EstacionServicio que define el filtro o descuento que debemos aplicar al precio. Es un filtro porque podría dar lugar a concatenar distintos descuentos.
Al ser un objeto de valor la implementación se resume a obtener y actualizar los valores de este objeto, salvo por métodos como applyFilters(..) que aplica los filtros activos en función del tiempo de recarga, la fidelidad del usuario (recurrente o esporádico) tipo de conector (El conector de carga rápida es un 50% más caro), y si el filtro se encuentra activo y en las fechas de activación indicadas.
Comparar y documentar las distintas herramientas de integración continua disponibles en el mercado, comparando precios, descargas/uso y ventajas/desventajas de cada una.
Implementación de la clase Ruta, clase que permitirá obtener la ruta óptima de viaje.
Referencia a #8
Se debe crear un Dockerfile que permita la instalación de las distintas dependencias del proyecto, siguiendo para ello las mejores prácticas en cuanto a la creación de este archivo. Es muy importante aplicar buenas prácticas en la creación del Dockerfile ya que conseguiremos una imagen mucho más mantenible y de menor tamaño.
Escribir los tests para la clase EstacionServicio siguiendo TDD.
Referencia #7
Implementar enum TipoImpresion
Referencia a #10
Y no parece que llamar a uno classes
esté dentro de las mismas.
Redactar el proceso de creación de los tests y mostrar capturas de pantalla de tests en rojo, escritura de código y tests verdes.
Ref #7
Instalar y jugar un poco con Grunt y Jest para saber qué se está haciendo y coger soltura. Obtener experiencia para automatizar tareas de tests, transpilado de .ts a .js y creación de tareas para build y clean
Escribir los tests necesarios para la clase FiltroPrecio y sus métodos.
Referencia a #7
Necesito fidelizar clientes a través de un sistema de descuentos para aquellos que recargan asiduamente en mi estación de servicio. Ejemplo: Quisiera poder ofertar un 5% de descuento en la primera recarga y que esa cantidad se incremente un 3% por cada recarga adicional hasta un máximo de un 20% durante un periodo de tiempo concreto. Este ejemplo refleja perfectamente lo que se necesita realizar.
Criterios de aceptación:
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.