Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prueba Técnica, Distribuciones AXA SAS

Este es el proyecto realizado para el cumplimiento de la prueba técnica ofrecida por la empresa Distribuciones AXA SAS. El proyecto es una aplicación web escalable para una tienda online, que haga uso de las tecnologías de Laravel, JavaScript, React.js, Roles y Permisos.

A continuación se muestra una lista de requerimientos y su estado actual de desarrollo:

  • Servidor web: Nginx
    • Nginx con despliegue para un posible balanceo de cargas.
    • Balanceo de cargas probado con más de una aplicación.
  • API REST:
    • Productos.
      • Crear producto.
      • Actualizar producto.
      • Editar producto.
      • Eliminar producto.
    • Categorías.
      • Crear categoría.
      • Actualizar categoría.
      • Editar categoría.
      • Eliminar categoría.
    • Usuarios.
      • Crear usuario.
      • Actualizar usuario.
      • Editar usuario.
      • Eliminar usuario.
  • Sistema de autenticación con JWT.
  • Sistema de autorización con JWT.
  • Sistema de roles y permisos.
  • Almacenar imágenes subidas con el producto en el servidor local.
  • Mostrar una lista de productos con imágenes, categorías y precios.
  • Permitir a los usuarios buscar productos por nombre, categoría o precio.
  • Permitir a los usuarios usar un carrito de compra.
  • Permitir a los usuarios realizar pedidos.
  • Mostrar historial de pedidos.
  • Pruebas.
    • Pruebas unitarias.
    • Pruebas funcionales.

Por otra parte, se explican diversas partes del proyecto, como:

Arquitectura General

Para la arquitectura general del sistema, se busca desde un principio que sea escalable tanto vertical como horizontalmente. Para esto, se hace uso de Docker y Nginx. Toda la configuración es realizada de manera que se pueda escalar haciendo uso de los contenedores de Docker, y del balanceo de carga de Nginx.

También se usa Docker para hacer el despliegue de la base de datos relacional PostgreSQL, para realizar el almacenamiento de la información.

Por el momento, el proyecto solo hace uso de una (1) instancia del servicio.

General Architecture
Imagen: Arquitectura General del Sistema.

Casos de Uso

Los casos de uso del sistema se pueden observar en la Imagen: Casos de Uso del Sistema. Se pueden observar todas las funcionalidades principales que se desean realizar en el sistema y cómo estas interactúan entre si.

General Architecture
Imagen: Casos de Uso del Sistema.

Nota: Los casos de uso marcados con el símbolo ✅, están completados.

JWT-Auth

La autenticación a través de tokens tipo JWT, se hace utilizando la librería para Laravel: https://github.com/tymondesigns/jwt-auth. Los tokens son guardados como cookies, haciendo uso de la funcionalidad de los cookies encriptados de Laravel.

Cabe resaltar que, haciendo uso de la librería, se encuentra que falta documentación que sería útil para el desarrollo del proyecto. Mientras se realizaba la prueba técnica, se encontró un problema con la librería, que ha sido documentado en el repositorio correspondiente. Si se quiere saber más sobre el estado de esta petición, referirse a: tymondesigns/jwt-auth#1972. El problema que se encuentra en la librería imposibilita la salida del usuario del sistema invalidando el token. En la conversación se muestra una solución a este problema.

Seeders

Se utilizaron Seeders para todas las funcionalidades presentes en la aplicación. Además, se hace uso de la API: https://fakestoreapi.com/, para hacer una carga inicial de diferentes productos para su prueba.

Diagrama Entidad/Relación

El diseño de la base de datos se realizó pensando en su escalabilidad y su flexibilidad. Sin embargo, en el diagrama se encuentran unos comentarios que se tuvieron que realizar para reducir el tiempo de desarrollo de la prueba.

General Architecture
Imagen: Diagrama de Entidad Relación.

About

Distribuciones AXA SAS Tech Review

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages