GithubHelp home page GithubHelp logo

leugin / php-backend-challenge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from talently-oficial/php-backend-challenge

0.0 0.0 0.0 26 KB

PHP Backend Challenge

Dockerfile 2.66% Shell 2.35% PHP 94.99%

php-backend-challenge's Introduction

Talently Challenge

Configuración

Este repositorio incluye la configuración inicial para este problema, incluyendo los specs. Usa la librería de Kahlan, que probablemente no has usado. Pero no te preocupes, no hay mucho que aprender. Revisa los specs y entenderás la sintaxis básica en menos de un minuto.

Tu tarea es:

  1. Refactorizar el código en la clase VillaPeruana.php.
  2. Agregar un nuevo typo de elemento, "Café". Las especificaciones para este elemento están comentadas en el archivo VillaPeruanaScpec.php.

Flujo

Debes tener instalado docker en tu computadora para usar nuestros comandos del flujo de trabajo

  • Usa el comando ./start para inicializar el docker
  • Usa el comando ./test para correr los tests
  • Usa el comando ./finish para desactivar el docker

Reglas

Hola y bienvenido al equipo La Villa Peruana. Como sabes, somos una pequeña posada, con una excelente ubicación en una ciudad importante, administrada por nuestra amigable Allison. También compramos y vendemos los más finos productos. Desafortunadamente, nuestros productos se van desgradando constantemente en calidad conforme se acercan a su fecha de vencimiento. Tenemos un sistema que actualiza nuestro inventario por nosotros. Fue desarrollado por un desarrollador llamado Elmo, quien ha ido en busca de nuevas aventuras.

Queremos agregar una nueva categoría de productos al sistema y para ello necesitamos tu ayuda.

Primero, una introducción a nuestro sistema:

  • Todos los productos tienen un SellIn que denota el número de días que se tienen para vender el producto
  • Todos los productos tienen un Quality que denota cuán valioso es el producto
  • Al final de cada día, nuestro sistema disminuye los ambos valores para cada producto

Bastante simple, ¿verdad? Bueno, acá se pone interesante:

  • Cuando la fecha de venta ha pasado, el Quality se degrada dos veces más rápido
  • El Quality de un producto nunca es negativo
  • Los productos "Pisco Peruano", en realidad, incrementan en Quality mientras más viejos están
  • El Quality de un producto nunca es mayor a 50
  • Los productos "Tumi", siendo un producto legendario, nunca debe ser vendido o bajaría su Quality
  • Los "Tickets VIP", así como "Pisco Peruano", incrementan su Quality conforme su SellIn se acerca a 0, el Quality incrementa en 2 cuando faltan 10 días o menos y en 3 cuando faltan 5 días o menos, pero el Quality disminuye a 0 después del concierto.

Recientemente hemos firmado un contrato con un proveedor de productos de "Café". Esto require una actualización para nuestro sistema:

  • Los productos de "Café" se degradan en Quality el doble que los productos normales

Para dejarlo claro, un producto nunca puede incrementar su Quality mayor a 50, sin embargo "Tumi" es un producto legendario y como tal su Quality es 80 y nunca cambia.

Entregable o Expectativa del reto

  • La limpieza y legibilidad del código será considerada.
  • La eficiencia del código en cuestiones de rendimiento sumarán para esta prueba.
  • Será indispensable uso de principios S.O.L.I.D.
  • Al finalizar el reto, enviar el enlace de la solución a [email protected] con copia a [email protected] con título "Reto Talently Backend"

Preguntas de conocimiento en Laravel

  1. Qué paquete o estrategia utilizarías para levantar un sistema de administración rápidamente? (Autenticación y CRUDs)
  2. Una breve explicación de cómo laravel utiliza la injección de dependencias
  3. En qué casos utilizarías un Query Scope?
  4. Qué convenciones utilizas en la creación e implementación de migraciones?

php-backend-challenge's People

Contributors

emmanuelbarturen avatar leugin avatar

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.