vire / hlad

Feed your favourite lunch menus from web into a slack channel with zero pain
MIT License
2 stars 0 forks source link

HLAD

an application for managing & executing crawl jobs and piping results to Slack channels.

Build Status codecov

This repo is proposed to be cloned/forked & modified to fit your needs

Architecture

Recipe: is the minimal abstraction & data-structure required to define a remote resource (HTML page containing lunch menu) that can be crawled, transformed and published

Firebase: remote data-store which stores recipes, jobs in queues, results

Tried to use a most simple and lightweight solution for storing data. Firebase handles such use-case very good + offers real-time out-of-the-box.

Agent: run locally, observes firebase for changes, reacts to such changes.

Executors: stream pipelines, that handle e2e when event arrives, execute pre-defined steps, publish result to desired endpoint (firebase, slack). 2 basic types of executors:

Triggers: events that trigger jobs


Deploy with Heroku

Deploy to your server using Docker

  1. build the image docker build -t hlad . <-- don't forget the dot!

  2. run a container from image docker run --rm -it --env DEBUG="hlad-*" --env-file ./.env hlad npm start