webreactiva-devs / backend-de-la-suerte-2023

#BackendDeLaSuerte 2023
0 stars 6 forks source link

BackendDeLaSuerte 2023

Desafío de programación dividido en tres retos donde los participantes tendrán que trabajar con el backend que les toque en suerte, aunque podrán elegir el lenguaje de programación con el que quieren trabajar.

backenddelasuerte2023

Bienvenid@s a un nuevo reto de programación de la comunidad malandriner.

Propondremos 3 retos en 3 semanas y remataremos con una sesión en directo prime para celebrar una nueva fiesta del código.

Participantes

👉 Ver issues

Nick Backend Plato Reto 1 Reto 2 Reto 3 Directo Total
Karlos Xata Yaguarlocro 20 20 40 20 100
José Ángel Cloudflare D1 20 20
José Manuel CockroachDB Hígado de baby 20 20 40 20 100
Juan Andrés Planetscale Fingers de alicatador 10 20 40 20 90
Sergi Texto Yo soy negan 20 20 60 20 120
Imanol Planetscale Fingers de merluza 20 20 60 20 120
Yuri SurrealDB 20 20
Alfredo EdgeDB
David Pocketbase Backend de la muerte 20 20
SergioPb Xata Carpacho de cerebelo
Andrés FaunaDB
Borja Texto Carpaccio de materia blanca 20 10 20 40 90
Cesar Octavio KeyDB 20 20 40 20 100
Ramón Pocketbase
Oliver Cloudflare D1

 


 

Te contaré una historia

Has abierto una Cocina para Zombies.

Los zombies están hartos de comer cerebros. No han ampliado su dieta desde hace siglos y las redes sociales les han empujado a querer tener una vida más moderna.

Quieren salir por ahí, tener vida social, divertirse sin riesgos.

Y tienen dinero en el bolsillo, siempre que tengan carne en la pierna, claro.

Tu misión va a ser crear un buen sistema para que cuando pidan su menú no se enfaden. Claro, cuando se enfadan ya sabes, te comen el cerebro...

Mecánica del desafío

Se trata de trabajar con las herramientas que más te gusten y solo una impuesta: el backend.

🔴 No es necesario pagar por los backends. La parte gratuita debería ser suficiente para usarla en el desafío.

🔴 No es olbigatorio crear un frontend. Puede ser una API o cualquier otro sistema que te permita trabajar con el backend que no sea el el mismo backend.

🔴 Puedes utilizar el lenguaje o plataforma que quieras para conectarte a tu backend y crear la aplicación.

Punto de inicio

Hemos sorteado entre los participantes una lista de backends poco conocidas.

Retos

Se propondrán 3 retos, uno por semana.

Cada reto se podrá resolver con la tecnología que más te guste salvo la parte del Backend, como ya se ha explicado anteriormente.

En cada reto se ganan unos puntos si es superado.

Los puntos se acumulan en la clasificación y son "boletos" para el sorteo de premios que se celebrará el día de cierre del desafío.


 

Cómo participar en cada reto

Al ser esta una prueba donde cada uno puede realizar el ejercicio como quiera lo haremos de la siguiente forma.

  1. Haz un fork de este repositorio si quieres
  2. Trabaja contra ese repositorio de forma independiente, NO haremos uso del PR para unir las soluciones, las publicaremos como parte de este Readme
  3. La solución debe tener el código público para que podamos verla.
  4. Con cada reto tendrás que enviar una Issue indicando la dirección del repositorio con la solución

 

TeamTroleado

Un Zombie ha entrado en la cocina y se ha merendado la terminal. La confundió con un cerebro, menudo trol tolai...

Así que los "troleados" tenéis que resolver el desafío con estas condiciones de emergencia:


 

6409974cce829832393392

Reto 1: Hasta los zombies tienen cerebro

Te ha tocado un backend en suerte y tienes que ponerlo a trabajar.

El primer reto es muy sencillo.

Tienes que crear una aplicación que se conecte con tu backend para registrar la comanda.

🔴 SOLO vamos a guardar un dato: la fecha y la hora en la que se ha registrado la comanda.

NADA MÁS. Ni platos ni mesas ni nada, ¡¡no te adelantes!!

Dos requisitos:

NADA MÁS.

En el segundo reto haremos más cosas con esto, no te aceleres, que los zombies (al menos los de este mundo) van muuuuy lentos ;)

 

Reparto de puntos

Máximo de puntos en este reto: 20.

¿Qué pasa si el backend que me ha tocado no funciona?

Habla con Dani ;)

 


 

Reto 2: Oído cocina

El sistema está listo, ¡pongámoslo a trabajar!

Tu sistema de captura de comandas tiene que ampliarse y guardar comandas en un formato como este:

Order {
  table: Number
  createdAt: Date
  dishes: [
    {
      name: String,
      quantity: Number
    }
  ]
}

Requisitos

Imprescindible

Interfaz

Requisito memorable

 

Reparto de puntos

Máximo de puntos en este reto: 20 (de momento, durante la próxima semana habrá sorpresa)

 


 

Reto 3: Un zombie entra en la cocina

Hay una opción a ganar 20 puntos sin tocar una línea de código (consulta el grupo de Telegram para saber cómo)

Primera parte:

Una cocina donde las comandas no se despachan ni es cocina ni es nada. Por muy zombie que sea.

Así que es el momento de añadir esa feature 🥳

Consideraremos una cola FIFO: First In, First Out

Para el orden las mismas condiciones vistas en el reto 2:

Las comandas desaparecen de esa lista en orden y se les puede añadir un campo nuevo dispatchedAt para almacenar el momento en el que desaparecen de la comanda.

Tu misión que crear un comando, ruta o lo que sea para que se produzca ese "despacho" de la comanda 1 por 1 y se almacene el cambio en tu #BackendDeLaSuerte.

Segunda parte:

¡¡¡Un zombie se ha colado en tu cocina!!!

Vamos a simular que un zombie se cuela en tu sistema de comandas y altera tus datos. Va a intentar modificar la fecha en la que la comanda ha sido creada en tu sistema.

Tendrás que crear un método usando tu backend que permita protegerse de estos bichos comecerebros...

 

¿Cómo lo haremos?

Como no me puedo colar en tu código, simularemos al zombie haciendo una llamada a una API.

Cada vez que hayas creado una comanda tendrás que llamar a este endpoint:

https://zombie-entrando-cocina.vercel.app/api/zombie/1

Hay dos respuestas posibles:

1- El zombie pasa de largo

2- El zombie te escupe en la cara

En este segundo caso verás un mensaje que contiene una fecha aleatoria de Marzo de 2023. Tendrás que capturarla y asigánrsela a la comanda en el campo createdAt. Al Zombie solo le llega el cerebro para cambiarte el día, no la hora.

El Zombie Trol "ataca" justo después de que almacenes la comanda.

El reto para ti de esta prueba es lograr recuperar la fecha createdAt original si ha sido alterada por el Zombie Trol.

 

Reparto de puntos

Máximo de puntos en este reto: 60


 

Directo (30 de Marzo):