Track planes with Elixir and GenStage
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
apps
config
rel
.credo.exs
.dockerignore
.formatter.exs
.gitignore
Dockerfile
Makefile
README.md
mix.exs
mix.lock

README.md

Aircraftspotter

Project to collect and visualize data collected from a ADS-B source.

The main goal of this project is to play around with the different features of Elixir.

If you are looking for a nice interface with a Map to show you in real time where each plane is located then this might not be your project. For those maps please refer to your local dump-1090.

Umbrella projects

The current flow:

Aircraft

Phoenix project in charge of parsing and visualizing the collected data. Data comes from the Fetcher application.

Decoder

Library to help decoding ADS-B data. The majority of the code has been ported from dump1090.

Fetcher

Fetches the data from a dump1090-fa source and makes it available via GenStage.

The data is being collected by polling the public endpoint. For real time data we would need to listen to the TCP port from dump1090 and unfortunately we would need to decode all the ADS-B data again.

Requirements

  • Elixir >= 1.7
  • Postgres database

Installation

mix deps.get

DUMP1090_JSON_ENDPOINT="http://localhost:8080/data/aircraft.json" mix phx.server

Release

MIX_ENV=prod mix release

Define the environment vars located at rel/config/config.exs

Tests

mix test

Development tools

  • mix dialyzer
  • mix credo --verbose
  • mix test --cover