This repository contains the Pyrrha solution application for determining thresholds in toxin exposure measured by the sensor device and sent to the cloud from the Samsung smartphone carried by the firefighters.
This service wakes up every minute and calculates time-weighted average exposures for all firefighters and compares them to the configured limits.
In this repository you'll find a solution that goes beyond just reading the real-time parts-per-million readings that come from the sensor. The code here assesses the cumulative effect of exposure by calculates short-term exposure and time-weighted averages over 10 minute, 30 minute, 60 minute, 4 hour, and 8 hours.
The goals for this project are to:
An excellent top-level summary is available from OSHA Environmental Compliance Systems.
That resource summarizes all the different standards into 3 main concepts. Generally speaking, PEL/TLV/REL have three subcategories:
You can run this solution locally in docker as follows
Set up environment variables in the src/.env
file
Install MariaDB locally
Pull MariaDB from DockerHub
docker pull mariadb
Run the image
docker run --rm -p 3306:3306 --name pyrrha-mariadb -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true -d mariadb
Test the image - TBD
Create Python virtual environment
python3 -m venv python3
Activate virtual environment
source python3/bin/activate
Run the application
python src/core_decision_flask_app.py 8080
You should see the following output
starting application
* Serving Flask app "core_decision_flask_app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on <http://0.0.0.0:8080/> (Press CTRL+C to quit)
Build the image
docker build . -t rulesdecision
Run the image
docker run -p8080:8080 -t rulesdecision
You should see the application logs
starting application
* Serving Flask app "core_decision_flask_app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
You can run this application on Kubernetes. The skaffold.yaml file let's you quickly run the application on the cluster by using Skaffold. There are two profiles provided. To run the solution on the test
namespace use:
skaffold dev -p test
Database does not connect
.env
file has the correct values for database connectionChange the db password
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting Pyrrha pull requests.
This project is licensed under the Apache 2 License - see the LICENSE file for details.