Aplicación para recepción de reportes y monitoreo de cambios de estado de dispositivos de hardware. Backend (servidor) desarrollado con Ruby on Rails, Sidekiq y Redis. Desarrollado por Mauricio Oyarzún.
- Ruby (versión 2.7 o superior)
- Rails (versión 6.0 o superior)
- Node.js (versión 14 o superior)
- npm (versión 6 o superior)
- Base de datos (PostgreSQL recomendado)
- Redis
-
Clonar el repositorio de GitHub:
git clone https://github.com/moyarzun/niufoods-device-monitor-backend.git cd niufoods-device-monitor-backend
-
Instalar las dependencias del proyecto:
bundle install
-
Editar el archivo
config/database.yml
con los datos de conexión a la base de datos. -
Asegurar que la base de datos esté en ejecución y accesible desde la ubicación del servidor.
-
Configurar la base de datos con migraciones y semillas para ambiente de desarrollo:
rails db:create rails db:migrate rails db:seed
-
Editar el archivo
config/initializers/sidekiq.rb
con la dirección del servidor Redis.
```bash
rails s
```
-
Configurar la base de datos para producción:
RAILS_ENV=production rails db:create RAILS_ENV=production rails db:migrate RAILS_ENV=production rails db:seed
-
Asegurar que los servidores PostgreSQL y Redis se encuentran en ejecución y son alcanzables por el servidor Ruby on Rails de producciíon.
-
Iniciar el servidor en modo producción:
RAILS_ENV=production rails s
-
Ejecutar script desde terminal:
ruby scripts/device_simulator.rb
-
Seguir las instrucciones en pantalla para iniciar la simulación.
- Seleccionar locación de la lista ingresando el ID de la locación. Si no hay locaciones disponibles o se desea crear una nueva, presionar ENTER y luego ingresar el nombre de la nueva locación.
- Seleccionar dispositivo de la lista ingresando el ID del dispositivo. Si no hay dispositivos disponibles en la locación o se desea crear uno nuevo, presionar ENTER y luego ingresar el nombre del nuevo dispositivo.
-
El script enviará solicitudes HTTP a http://localhost:3001 (ubicación del servidor Backend local), el servidor responderá con el
job_id
del Job encolado en Redis con Sidekiq.
Para observar los reportes generados y almacenados en Backend, es necesario ejecutar el cliente de Frontend una vez que el servidor de Backend se encuentra operativo. Visite https://github.com/moyarzun/niufoods-device-monitor-frontend para descargar el cliente y siga las instrucciones para ejecutarlo.