jeancsil / flight-spy
Watch as much flights you want and get notified for YOUR budget. (E-mail and Slack).
Installs: 20
Dependents: 0
Suggesters: 0
Security: 0
Stars: 156
Watchers: 11
Forks: 24
Open Issues: 12
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.