How prashantcode69/aeroindex works
AeroIndex is an airfare-intelligence app: users search an Indian route and receive fare-index and airline comparisons, booking-window and trend insights, market rankings, and optional price alerts. Route searches can use cached data or trigger a multi-window collection pipeline; results and history are stored as JSON. The graph reflects the documented API capabilities, but the sampled Flask and React excerpts are incomplete, so uncertain frontend/API wiring is not expanded beyond the documented interactions.
Main entry points: run_pipeline.py Refresh orchestration · app.py Flask API · routes Clean route fares · alert_checker.py Alert matching
Components 21
User experience
- AeroIndex UI
src/App.jsx
API and analysis
- Flask API
Backend/app.py - Route analysis
Backend/app.py - Market overview
Backend/app.py
Fare collection
- Refresh orchestration
Backend/run_pipeline.py - Google Flights search
Backend/scraper/search_flights.py - Fare extraction
Backend/scraper/extract_google_fares.py - Fare deduplication
Backend/scraper/deduplicate_google_fares.py - Fare cleaning
Backend/pipeline/cleaner.py - History snapshots
Backend/pipeline/history_saver.py
JSON data
- Search result text
Backend/data/raw - Window fare files
Backend/data/raw - Merged fare records
Backend/data/raw - Clean route fares
Backend/data/routes - Route history
Backend/data/routes
Price alerts
- Alert records
Backend/data - Alert matching
Backend/pipeline/alert_checker.py - Email sender
Backend/pipeline/mailer.py
Other components
- Traveler
- Google Flights
- SMTP service
Connections 29
- Traveler → AeroIndex UI: searches routes
- AeroIndex UI → Flask API: requests API
- Flask API → Refresh orchestration: starts refresh
- Refresh orchestration → Google Flights search: runs windows
- Google Flights search → Google Flights: searches fares
- Google Flights search → Search result text: writes results
- Fare extraction → Search result text: reads results
- Refresh orchestration → Fare extraction: runs per window
- Fare extraction → Window fare files: writes fares
- Refresh orchestration → Fare deduplication: runs after collection
- Fare deduplication → Window fare files: reads fares
- Fare deduplication → Merged fare records: writes merged fares
- Refresh orchestration → Fare cleaning: runs cleaning
- Fare cleaning → Merged fare records: reads records
- Fare cleaning → Clean route fares: writes route fares
- Refresh orchestration → History snapshots: saves history
- History snapshots → Clean route fares: reads route fares
- History snapshots → Route history: updates snapshots
- Flask API → Route analysis: serves airfare data
- Route analysis → Clean route fares: reads fares
- Route analysis → Route history: reads history
- Flask API → Market overview: serves rankings
- Market overview → Clean route fares: reads route data
- Flask API → Alert records: manages alerts
- Refresh orchestration → Alert matching: runs alert check
- Alert matching → Clean route fares: reads current fares
- Alert matching → Alert records: matches and updates
- Alert matching → Email sender: sends matched alert
- Email sender → SMTP service: sends email