EL RETO

Hace calor y vamos a buscar dónde refugiarnos este verano. El reto consiste en hacer un servicio de Symfony que devuelva las 10 localizaciones más frescas entre las mediciones de AEMET, en orden ascendente por temperatura media de tres días. Nada más. Muy fácil, ¿verdad? Algunas explicaciones y ayudas

LAS REGLAS

  • Para facilitar el trabajo, hemos dejado en http://reto.acilia.es/api-cache/aemet-data.json una cache estática de los datos del API de AEMET con los que trabajar. En el fichero json encontrarás un elemento por medición. Por ejemplo, para la estación de DON BENITO hay mediciones de tres días. Usaremos la clave "tmed" de cada día para hacer el cálculo: "32,8", "32,0" y "31,5". El valor medio en este caso sería "32,1". Ése es el que nos vale.
  • Para faciitar más todavía la tarea, hemos dejado el proyecto de Symfony sobre el que implementar el servicio en https://github.com/aciliainternet/reto-acilia. Hay un Docker por si quieres levantar una instancia Docker. Además te dará pistas del entorno en el que se ejecutará el servicio.
  • Como verás, en src/AciliaChallengeBundle/Service hay un fichero dummy llamado FresquitoService.php. Este sevicio deberá devolver un array con tres columnas:
    * Orden del elemento: (1,2,3.... 10)
    * Ciudad: la clave "nombre" en el json de datos
    * Temperatura media: La media de los tres valores de la clave "tmed" de cada medición
    Facilísimo, ¿no?
  • Para participar, sube el archivo FresquitoService.php en el formulario de participación más abajo. El servicio FresquitoService debe implementar la interfaz FresquitoServiceInterface. Sólo tienes que aportar ese archivo.
  • Existirá una ruta donde ver los resultados, estamos preparándola.
  • Debe cumplir PSR-2.

LOS PREMIOS

Primer premio a la mejor solución

Se valorará el uso de buenas prácticas, la robustez del código, el orden y la utilización de herramientas adecuadas. Ganará la solución que más se acerque a la perfección.

El premio consistirá en una tarjeta de regalo de Amazon por valor de 200€

Segundo premio a la solución más concisa

Valoraremos la solución que menos ocupe en bytes. Recuerda que debe cumplir PSR-2.

El premio consistirá en una tarjeta de regalo de Amazon por valor de 100€

Tercer premio al hack más terrible

Valoraremos soluciones creativas al problema, implementaciones que nos hagan temblar, pero que cumplan con el resultado esperado.

El premio consistirá en una tarjeta de regalo de Amazon por valor de 50€


FAQs
o PREGUNTAS FRECUENTES

¿ALGUNA DUDA?

 

¿Cómo se eligen los premios?

Hay un comité de jueces formado por @aglejberman, @andres_montanez, @menrod y @esmiz. Tienen fama de no aceptar sobornos a no ser que sean enormemente suculentos.

Ya he enviado mi respuesta, ¿puedo actualizar mi participación?

Cada vez que envíes una propuesta, se sobreescribirá tu participación anterior con el último envío. Puedes actualizar tantas veces como quieras hasta la hora límite de participación.

No voy a deSymfony, ¿puedo optar al premio?

Los premios sólo se entregarán entre los asistentes de deSymfony. A lo mejor te puedes aliar con algún asistente, just an idea

¿Se puede participar en equipo?

Las participaciones son individuales. No vamos entrar en cómo llegaste a la solución, si recibiste ayuda y si vas a compartir el premio. No nos importa.

¿Mi solución puede constar de más de un fichero?

No, la solución debe estar contenida en un sólo fichero, FresquitoService.php.

No tengo cuenta de GitHub, ¿puedo participar?

¿No tienes? Si quieres participar tendrás que crear una.

La participación está cerrada!,
Alea jacta est!.