Giter VIP home page Giter VIP logo

test's Introduction

Software developer test

Una prueba para unirse al equipo de desarrollo de Euromillions.com

Que es la lotería EuroJackpot?

EuroJackpot es una lotería transnacional de Europa que cuenta con un bote mínimo de 10 millones de euros cada viernes.

El bote puede acumularse hasta llegar a un tope de 90 millones de euros, en caso de no haber ganadores.

Para completar un juego de EuroJackpot se seleccionan cinco números principales del 1 al 50 y dos números adicionales del 1 al 10.

Ejemplo de resultados

Ejemplo para jugar

Como empezar

Necesitas tener docker, docker-compose y PHP7 instalado en tu entorno.

Haz un clone del proyecto y lanza el fichero bootstrap.sh(entendemos que trabajas con Linux, Mac, BSD).

Que hace el fichero bootstrap.sh ?

Descarga dos imágenes docker y arranca dos contenedores, mysql y phpunit, que mediante un alias podrás llamarlo desde la línea de comandos y así ejecutar los tests.

Cuando el contenedor mysql arranca, crea una base de datos llamada euromillions con una tabla para almacenar el draw que recojas de la API. Puedes acceder la bbdd por el puerto 3306 de tu máquina local.

Seguramente necesites añadir algún contenedor para hacer caching de los resultados, pero si no te da tiempo, no te preocupes.

Si necesitas alguna aclaración o encuentras algún error, escribe una issue en el repositorio.

Que hay que hacer

Como tenemos muchas integraciones con diferentes Apis, el test estará relacionado con estas.

Queremos recuperar los resultados del último sorteo de EuroJackpot. Para esto necesitarás invocar a una API.

Por favor, cuando inicies la prueba, te pones en contacto con nosotros y te envíamos el endpoint y la api key necesaria para tener acceso.

Tienes que diseñar sabiendo que esta api puede fallar en algún momento y necesitamos poder invocar a otra API para recuperar los resultados(esta segunda API que implementes puede ser un fake).

El último resultado se visualiza en la home y recibimos muchas visitas(evita consultar a la bbdd para mostrar el resultado).

Este último resultado lo mostrarás por el terminal cuando invoquemos el script de inicio.

Puedes utilizar cualquier patrón de diseño que necesites, VO y sobretodo, test unitarios y de integración.

Intenta sobretodo centrarte en recuperar los datos que devuelva la API y almacenarlos para después visualizarlos. Sino te da tiempo de implementar el caching del resultado o no tienes más ganas de seguir, no pasa nada, no te preocupes.

Dudas

Puedes abrir una issue en este repositorio.

Como enviar tu solución

Haz un pull request al repositorio.

test's People

Contributors

panamedia avatar rmrbest avatar

Watchers

 avatar  avatar  avatar  avatar

test's Issues

Duda, sobre alcance del proyecto.

Chicos buen Dia.

1.- Referente al proyecto, asumo se usa TDD por tal: el mismo trata de solo hacer las pruebas (unitarias, integracion) a lo solicitado? o despues de las pruebas generar una aplicacion para mostrar en pantalla (browser) el resultado del sorteo??.

2.- Puedo usar Laravel como Framework de desarrollo?.

Gracias.

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.