Skip to content

Latest commit

 

History

History
184 lines (115 loc) · 6.95 KB

README_es.md

File metadata and controls

184 lines (115 loc) · 6.95 KB

Java Projects Logo Aplicación de Entrega Java Projects Logo

🌐 Idiomas

Português Español English Русский 中文 العربية

Este repositorio representa el backend en Rails para una aplicación de entrega, incluyendo una interfaz de gestión de datos para usuarios con roles de administrador y desarrollador.

Ilustración del uso de la interfaz de administrador


🔗 Repositorios Relacionados

📚 Conceptos y Gems Utilizadas

🔍 Haz clic para expandir los detalles de las Gems y Conceptos
  • Procesamiento en segundo plano: Utilización de Sidekiq para el procesamiento de tareas asíncronas. Redis se utiliza como cola de almacenamiento para estas tareas.

  • Paginación: Implementación de paginación para el listado de recursos utilizando la gem Kaminari.

  • Pruebas con RSpec y Shoulda Matchers: Utilización de RSpec para escribir pruebas unitarias, de integración y funcionales.

  • Cobertura de Pruebas con SimpleCov: Integración con la gem SimpleCov para el análisis de cobertura de código.

  • Eliminación Suave con Discard: Implementación de eliminación suave utilizando la gem Discard.

  • Bullet para Detección de Consultas N+1: La gem Bullet se utiliza para detectar y prevenir problemas de rendimiento, como consultas N+1.

  • Anonymización de Datos: Aplicación de técnicas para anonimizar datos sensibles, asegurando el cumplimiento de regulaciones de privacidad y seguridad, como la LGPD.

  • API RESTful: Desarrollo de una API RESTful que sigue principios de arquitectura de software para permitir una comunicación eficiente entre el backend y el frontend.

  • Swagger: Documentación automática de la API utilizando la gem Rswag (basada en Swagger).

  • Docker: Opción de contenedorización utilizando Docker para facilitar el desarrollo, las pruebas y el despliegue.

  • Manipulación de Imágenes: Utilización de la gem ImageProcessing para la manipulación de imágenes, como el redimensionamiento y la compresión.

  • WebSockets y SSE: Implementación de comunicación en tiempo real utilizando WebSockets.

  • Cálculo de Distancias: Utilización de la gem Geocoder para implementar el cálculo de distancias entre el cliente y el establecimiento comercial.

  • Hilos: Uso de hilos para mejorar la concurrencia y el rendimiento de la aplicación en operaciones paralelas.

  • Gestión de Sesiones y Autenticación: Implementación de autenticación de usuarios con Devise y autenticación mediante JWT.

  • Control de CORS: Utilización de la gem rack-cors para gestionar permisos de CORS.

  • Máquinas de Estados con State Machines: Utilización de la gem state_machines-activerecord para implementar máquinas de estados en los modelos de ActiveRecord.

  • Faraday para Consumir APIs Externas: Integración con servicios externos utilizando la gem Faraday.

  • Automatización de Tareas y DevOps: La estructura de DevOps está soportada por herramientas como Sidekiq y Docker.


⚙️ Configuración del Proyecto

🛠️ Con Docker

Requisitos Previos

Configuración

  1. Clona los repositorios relacionados:

    git clone https://github.com/SamuelRocha91/consumy.git
    git clone https://github.com/SamuelRocha91/seller_application.git
    git clone https://github.com/SamuelRocha91/paymenty.git
    git clone https://github.com/SamuelRocha91/delivery_back.git
    
  2. Descarga el archivo docker-compose.yml:

  3. En la raíz del proyecto, ejecuta el siguiente comando:

    docker-compose up --build
  4. Haz clic en "RUN PENDING MIGRATES" en la aplicación de backend.

  5. Entra en el contenedor del backend y ejecuta las semillas:

    docker exec -it backendContainerName /bin/sh 
    rails db:seed
  6. Configura las variables de entorno:

    JWT_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxx
  7. Reinicia los contenedores para que las variables se carguen.

🛠️ Sin Docker

Requisitos Previos

  • Asegúrate de tener Redis y Sidekiq configurados y funcionando localmente.

  • Instala las dependencias de R:

    install.packages("FactoMineR")
    install.packages("ggplot2")
    install.packages("reshape2")

Instala las Dependencias

bundle install

Configura la Base de Datos

Crea la base de datos y ejecuta migraciones:

rails db:create
rails db:migrate

Inicia el Servidor Local

rails server

Ejecuta Pruebas

bundle exec rspec

Inicia Redis y Sidekiq

redis-server
bundle exec sidekiq

📝 Otros Proyectos