When planning our South America adventure doing a backpacking loop through Torres Del Paine was very high on our list. Thanks to instagram it’s high on many people’s list and getting a reservation there is quite the process.
Because of the lack of availability we didn’t end up going, but solving the problem of figuring out when campsites are available turned into a fun project – TorresApp which let me practice Python, React, and AWS deployment tooling.
The app has three components – a web scraper, a search tool and a calendar view.
Web Scraper
Technologies:
- Python 3.6
- Docker
- Selenium for scraping
- AWS Fargate for scheduled execution
- SQLite for a simple DB
I wrote a scraper that goes to three different websites CONAF, Fantastico Sur, and Vertice. On each site it gets availability for the year ahead for all lodging and stores it in a database and also creates a static data file to power the calendar.
Calendar
Technologies:
- React & Create React App
- MaterialUI UI components
- AWS S3 for static hosting
The first interactive part of Torres App was the calendar view which allows you to see what sites are available on what date and filter to specific companies and lodging options.
This page gets 10-20 users per day and about 1/3 of the users use the filters (thanks Google Analytics).
Search
Technologies:
- React & Create React App
- MaterialUI UI components
- AWS S3 for static hosting
- AWS Lambda for executing query
- SQLite for read only DB
This was the second piece of the site that I build and an evolution of the calendar view. Instead of having to scroll through and keep track of the order of campsites, you just input the places you want to stay and the order you want to stay in them and it tells you all possible dates that is possible.
This page gets a similar 10-20 users per day and 2/3 of them engage with the search.
Comments
so cool! I am also a developer and would like to investigate the captcha issue and see if there’s workarounds. Can we collab?