Marriott Hotel Price Checker
Overview
A price-monitoring tool built for a travel agency, tracking Marriott rates for the hotels and dates its staff care about. The agency's team — around six users — manage their own targets through a small Flask dashboard, adding and removing hotels and travel dates as bookings come up, with user management so each person works against the same shared list. Targets and results live in MongoDB, updated on every run.
Marriott's site was the hard part: it carries real anti-bot protection, so collection needed several mechanisms working together to get through reliably rather than a single scraping approach. Each run builds a price comparison table for the hotels nearby and emails it to the team as a formatted HTML report.
Outcome
A travel agency's team of six keeps its own hotel and date list current in a dashboard, and gets a comparison table by email on schedule — from a site whose anti-bot protection made reliable collection the real work.
Architecture & Pipeline
-
01
Flask Dashboard
Hotels + dates · ~6 users
- Flask
-
02
MongoDB
Targets + collected pricing
- MongoDB
-
03
Scheduler
Configurable times
-
04
Anti-Bot Bypass
Several mechanisms combined
-
05
Marriott.com
Selenium scrape
- Selenium
-
06
Price Table Builder
Per-location grid
-
07
HTML Email Report
Delivered to the team
- HTML
End-to-end flow, in order. Scroll sideways on a narrow screen.
Key Features
- Flask dashboard for adding and removing target hotels and travel dates
- User management for the agency's team of around six people
- Multiple anti-bot bypass mechanisms working together against Marriott's protections
- MongoDB store for targets and collected pricing, updated on every run
- Scheduled scraping at configurable times of day
- HTML-formatted email reports with price comparison tables
- Deployed on an Ubuntu server