Skip to content

Concentrate: combine realtime transit files

License

Notifications You must be signed in to change notification settings

mbta/concentrate

Repository files navigation

Concentrate

Elixir CI

Concentrate combines realtime transit information from multiple sources into single output files.

Configuration

Concentrate can either be configured via config/config.exs or a JSON environment variable as CONCENTRATE_JSON: more details are available in configuration.md.

Architecture

See architecture.md for the overall architecture of the system.

Development Setup

# after installing asdf from https://github.com/asdf-vm/asdf..
asdf install

# get Elixir dependencies
mix deps.get

# add pre-commit hook to verify formatting/tests/types
ln -s ../../hooks/pre-commit .git/hooks/pre-commit

# make sure everything passes! (slowest to fastest)
mix format --check-formatted
mix credo
mix test
mix dialyzer

If you run into issues compiling snabbkaffe:

rm -fr deps/quicer
mix deps.get
mix deps.compile

Docker

Concentrate comes with a Dockerfile, allowing you to build an image that can be run anywhere Docker works. It's a multi-stage build, so it requires at least Docker 17.05.

# build
docker build -t concentrate:latest .

# run
docker run concentrate:latest