Giter Club home page Giter Club logo

cube_summation's Introduction

Cube Summation Challenge

Repositorio que contiene la implementación en Laravel del reto planteado en https://www.hackerrank.com/challenges/cube-summation.

Demo: https://cube-summation-miguelcrespo.c9users.io/public/

App

Capas de la aplicacion

Capas de la aplicacion

Capa del cliente: La capa del cliente ejecutada en el navegador se encarga de crear una interfaz interactiva para el usuario, ademas de realizar también las validaciones requeridas en el navegador para dar retroalimentación al usuario más rápidamente y ahorrar carga al servidor (Sin embargo también se realizan las validaciones en el servidor).

Esta capa consiste de:

  • Vue..JS para el data-binding y el manejo de la vista con Javascript.
  • Bootstrap y Jquery para los modals.
  • app.js encargado de configurar el vue.js y procesar las acciones del usuario en el cliente.

Presentacion servidor: Se usa Laravel Blade para pre-renderizar la plantilla y usar una plantilla maestra para evitar la repetición de código HTML.

Logica servidor: Esta capa se encarga de procesar la información que llega mediante peticiones del usuario y dar respuesta a este, consiste en las siguientes clases:

  • **Matrix.php: ** Es la encargada de llevar a cabo toda la lógica respecto a la multiplicación y actualización de datos en la matriz de 3D.
  • CuboController.php: Es el controlador que se encarga de procesar las peticiones del usuario, conectándose a Matrix.php para calcular las respuestas que serán dadas al usuario.

Capa persistencia: Esta capa se encarga de guardar los datos de las respectivas sesiones de cada usuario para asi permitir el juego a diferentes personas con diferentes matrices, se implementaron sesiones para poder realizar un juego paso por paso donde el usuario vea las respuestas a sus comandos inmediatamente en vez de enviar todas los comandos de una vez.

Esta capa consiste en:

  • Datos.php que se encarga de manejar todo lo respectivo a las sesiones, al separar esta capa del resto de la aplicacion se permite que en un futuro sea más fácil cambiar la capa de persistencia sin afectar el resto de la aplicacion.

Ejemplo

Tests: 2
N Matrix: 4
N Comandos: 5

UPDATE 2 2 2 4
QUERY 1 1 1 3 3 3
UPDATE 1 1 1 23
QUERY 2 2 2 4 4 4
QUERY 1 1 1 3 3 3

N Matrix: 2
N Comandos: 4

UPDATE 2 2 2 1
QUERY 1 1 1 1 1 1
QUERY 1 1 1 2 2 2
QUERY 2 2 2 2 2 2

Tests

phpunit

cube_summation's People

Contributors

miguelcrespo avatar

Watchers

James Cloos avatar Wilmer Estrada  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.