Skip to content

WORK IN PROGRESS - This repository contains the Prometeo solution application for determining thresholds in toxin exposure measured by the sensor device and sent to the cloud from the smartphone carried by the firefighters.

License

Notifications You must be signed in to change notification settings

JSegrave-IBM/Prometeo-Rules-Decision

 
 

Repository files navigation

Prometeo rules and decision engine

This repository contains the Prometeo 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 fire fighters and compares them to the configured limits.

License Slack

Contents

Prerequisites

  1. Docker
  2. IBM CLI
  3. Kubectl
  4. Helm
  5. Skaffold

Run locally with Python

You can run this solution locally in docker as follows

  1. Set up environment variables in the src/.env file
  2. Install mariadb locally
    1. pull mariadb from dockerhub
        docker pull mariadb
    
    1. run the image
        docker run -p 3306:3306 --name prometeo-mariadb -e MYSQL_ROOT_PASSWORD='' -d mariadb
    
    1. Test the image - TBD
  3. Create python virtual environment
         python3 -m venv python3
    
  4. Activate virtual environment
         source python3/bin/activate
    
  5. Run the application
         python src/core_decision_flask_app.py 8080
    
  6. 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
    

Run locally with Docker

  1. Build the image
        docker build . -t rulesdecision
    
  2. Run the image
         docker run -p8080:8080 -t rulesdecision
    
  3. 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)
    

Run on Kubernetes

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

Troubleshooting

  1. Database does not connect
    1. ensure .env file has the correct values for database connection
  2. Change the db password

Built with

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting Prometeo pull requests.

License

This project is licensed under the Apache 2 License - see the LICENSE file for details.

About

WORK IN PROGRESS - This repository contains the Prometeo solution application for determining thresholds in toxin exposure measured by the sensor device and sent to the cloud from the smartphone carried by the firefighters.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 80.9%
  • Shell 18.7%
  • Dockerfile 0.4%