jeancsil / flight-spy
Watch as much flights you want and get notified for YOUR budget. (E-mail and Slack).
Installs: 23
Dependents: 0
Suggesters: 0
Security: 0
Stars: 171
Watchers: 9
Forks: 25
Open Issues: 12
pkg:composer/jeancsil/flight-spy
Requires
- php: ^5.6.6|^7.0
- doctrine/annotations: 1.2.*
- doctrine/common: 2.7.2
- elasticsearch/elasticsearch: ~5.0
- guzzlehttp/guzzle: ^6.2
- maknz/slack: ~1.7
- monolog/monolog: ^1.21
- php-http/guzzle6-adapter: 1.1.*
- symfony/class-loader: ^3.1
- symfony/config: 3.1.*
- symfony/console: ^3.1
- symfony/dependency-injection: ^3.1
- symfony/http-foundation: ^3.1
- symfony/yaml: 3.1.*
- wildbit/postmark-php: 2.2.*
Requires (Dev)
- phpmd/phpmd: ~2.4
- phpunit/phpunit: ~5.5
- squizlabs/php_codesniffer: ~2.7
README
Looking for the cheapest flights and don't have enough time to track all the prices?
Be notified whenever the budget you're looking for pops up by only declaring a simple JSON file!
[
  {
    "from": "FRA-sky",
    "to": "GRU-sky",
    "search-period-from": "2017-07-01",
    "search-period-to": "2017-07-31",
    "search-period-travel-days": 20,
    "max-price": "650",
    "currency": "EUR",
    "country": "DE",
    "locale": "de-DE",
    "adults": "1",
    "children": "1"
  }
]
Prerequisites
Create your account at Skyscanner to get your API access. Don't worry, it's for free! http://en.business.skyscanner.net/
To receive notifications by Slack you'll have to create one account here: https://slack.com/
If you also want to receive e-mails create a free account at https://postmarkapp.com/
Install with docker
Rename the src/Resources/parameters.yml.dist to src/Resources/parameters.yml and update the content with the data from the previous step.
Rename the docker/volume/watch.json.dist to docker/volume/watch.json and fill with your next trips!
$ git clone https://github.com/jeancsil/flight-spy.git
$ docker-compose up -d
Create your elasticsearch index to hold your history data
PUT /flightspy
{
  "settings": {
    "number_of_replicas": 0,
    "number_of_shards": 1
  },
  "mappings": {
    "history": {
      "properties": {
        "Creation": {
          "type": "date"
        },
        "SessionKey": {
          "type": "keyword"
        }
    .......
    HERE GOES THE CONTENT OF THIS FILE:
    https://github.com/jeancsil/flight-spy/blob/master/src/Resources/elasticsearch/mappings.json
  }
}
Configure kibana index pattern
Browse to this url: http://localhost:5601/
In the first screen, kibana will ask you to create the index pattern to show you some data.
You can fill your index name: flightspy or flightstpy*
Visualize your watched prices with Kibana
Import the src/Resources/kibana/Dashboard.json file into your kibana dashboards panel: http://localhost:5601/app/kibana#/management/kibana/objects
Documentation
FlightSpy will look for the best deals for you every 15 minutes and will let you know by e-mail/Slack if there is a good price for you next trip!
Support
For general support and questions, find me on Twitter as @jeancsil.
Bugs and suggestions: open a ticket.
License
This package is available under the MIT license.
