Giter Site home page Giter Site logo

clicoh-challenge's Introduction

Prueba de conocimiento con Django Rest Framework

Objetivo

Analizar el nivel de conocimiento de los postulantes a desarrollador de backend Clicoh.

Prueba lógica

Crear una API REST utilizando DJANGO REST FRAMEWORK, que brinde la siguiente funcionalidad básica y acotada de un Ecommerce.

El sistema debe tener los modelos Product, Order, OrderDetail con los siguientes atributos:

Product:

  • id PK [string]
  • name [string]
  • price [float]
  • stock[int]

Order:

  • id PK
  • date_time [datetime]

OrderDetail:

  • order [Order]
  • cuantity [int]
  • product [Product]

La misma debe proporcionar los siguientes end points:

  • Registrar/Editar un producto
  • Eliminar un producto
  • Consultar un producto
  • Listar todos los productos
  • Modificar stock de un producto
  • Registrar/Editar una orden (inclusive sus detalles). Debe actualizar el stock del producto
  • Eliminar una orden. Restaura stock del producto
  • Consultar una orden y sus detalles
  • Listar todas las ordenes

La clase Order debe exponer un método get_total el cual calcula el total de la factura y retornar ese valor en el serializer correspondiente. También debe exponer el método get_total_usd, utilizando el API de https://www.dolarsi.com/api/api.php?type=valoresprincipales, con “dólar blue” para que te tire el precio en dolares.

Al crear o editar una orden validar q haya suficiente stock del producto, en caso no contar con stock se debe retornar un error de validación.

Para la implementación de la API se debe utilizar ModelViewSet, ModelSerializer. El código fuente de la api debe ser subido a un repositorio público, el cual debe ser proporcionado para su correcta examinación.

A la hora de crear una orden se debe validar:

  • que la cantidad de cada producto sea mayor a 0
  • que no se repitan productos en el mismo pedido
  • Implementar autenticación basada en tokens (JWT)
  • Deployar la api en producción, por ejemplo en heroku o https://www.pythonanywhere.com/,
  • Implementar test unitario para validar los endpoints.

clicoh-challenge's People

Contributors

vulturarg avatar

Watchers

 avatar

clicoh-challenge's Issues

Validaciones

A la hora de crear una orden se debe validar:

  • que la cantidad de cada producto sea mayor a 0
  • que no se repitan productos en el mismo pedido

Crear modelos

El sistema debe tener los modelos Product, Order, OrderDetail con los siguientes atributos:

Product:

  • id PK [string]
  • name [string]
  • price [float]
  • stock [int]

Order:

  • id PK
  • date_time [datetime]

OrderDetail:

  • order [Order]
  • cuantity [int]
  • product [Product]

Crear endpoints orden

  • Registrar/Editar una orden (inclusive sus detalles). Debe actualizar el stock del producto
  • Eliminar una orden. Restaura stock del producto
  • Consultar una orden y sus detalles
  • Listar todas las ordenes

Crear endpoints producto

  • Registrar/Editar un producto
  • Eliminar un producto
  • Consultar un producto
  • Listar todos los productos
  • Modificar stock de un producto

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.