This project allows users to create airfares trackers in order to buy a flight ticket at the best moment.
Technologies: Node JS, Express, MongoDB, GraphQL, React JS, Redux
Here are the featrures available for any user:
- Create a tracker
- Find a tracker via the tracker ID
- Visualize the evolution of the price, with different charts
- Set up a tracker with specific information
- Create an account
The projects is divided in three parts:
- Server: Back-end, GraphQL API
- Client: Front-end developed with React JS
- Routine: Scripts that will scan airfares regularly
On the dashboard different information are given.
The nearest airport should be displayed based on the client IP address.
Some predefined trackers (6 by default) are also displayed. Once again based on the client IP, the most interesting trackers are retrieved.
For example: If the client is based in Sydney, trackers shown will be the ones that have a departure or return airport close to Sydney.
Any user can create a new tracker. If not registered the user must provide an email address. Then the user can select the departure and arrival airports from a list. The next step is to select the departure and return dates. The user can select a range. The last step is to set up a trigger price, in order to receive an email if a price below that limit is detected.
For unregistered user, it's possible to observe the evolution. This user will just have to provide the tracker ID.
From that page, a registered user can see all the trackers he created. The tracker information are displayed (tracker ID, airports dates, status), and also some charts (Min prices, max prices, average prices, median prices and cmbines).
It is also possible to update some parameters such as tracker's status, alert's status and trigger price.
A registered user can have up to 6 active trackers.
A unregistered user can have up to 3 active trackers.
Display a list of frequent trackers, with advanced statistics and charts.
Price projection based on history and indicators such as the standard deviation.
Handle different currencies. By default the application supports only Euros.