Skip to content

Capital Crashpad — End-to-end data pipeline and web app analyzing Airbnb data in Washington, DC with PostgreSQL and Django.

Notifications You must be signed in to change notification settings

johbry17/Capital-Crashpad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

178 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Capital Crashpad: Visualizing the Airbnb Market in Washington, DC

GitHub last commit

Explore, visualize, and understand DC’s Airbnb landscape—interactive dashboards and maps powered by open data and modern web tech.

🔗 Live Website
🔗 Tableau Dashboard
🔗 Exploratory Data Analysis (EDA)

⚠️ ℹ️ Status: This project is under active, rapid refinement. Adding a summary analysis and updating the dashboard for the GitHub Pages version.

Table of Contents

Project Overview

This full-stack project explores the landscape of short-term rentals in Washington, DC. Using data from Inside AirBnB, it combines:

  • A live, interactive web dashboard hosted on GitHub Pages
  • A Tableau story-style EDA for strategic analysis
  • A PostgreSQL backend with Flask and Django implementations
  • A Jupyter-based ETL pipeline that transforms and loads data for multiple outputs

The goal is to visualize the availability, pricing, and neighborhood distribution of short-term rentals and highlight interesting patterns in the DC vacation rental market.

Features

  • Dynamic map with multiple layers and neighborhood overlays
  • Interactive plots aggregating neighborhood trends
  • Tableau dashboard for filtering and exploring rental trends
  • Clean ETL pipeline to prep and load data across platforms
  • Choropleth and bubble maps to compare neighborhoods
  • Flask and Django versions for backend experimentation
  • Mobile-friendly static version with JavaScript interactivity

Tools & Technologies

  • Data: Inside AirBnB, CSV, PostgreSQL, SQLite
  • Backend: Flask, Django, SQL, Jupyter, Pandas
  • Frontend: JavaScript, Plotly, Leaflet, Bootstrap, HTML/CSS
  • Visualization: Tableau, Choropleths, Bubble Maps, Plotly
  • Deployment: GitHub Pages, Tableau Public

Usage

Website

ETL Pipeline

  • Edit and run ./notebooks/data_pipeline_postgres_export.ipynb to clean and update source data
  • Automatically loads PostgreSQL tables and exports data for Flask and GitHub Pages

Full-Stack Versions

  • Flask app: flask/app.py (pulls from PostgreSQL)
  • Django app: django/django_airbnb_dc (uses SQLite)

Data Backup

Restore the included PostgreSQL backup:

pg_restore -U <username> -d <dbname> -1 airbnb.backup

Note to Self

  • Run all cells in ./notebooks/data_pipeline_postgres_export.ipynb to update the source data
  • Recheck plotPriceAvailability annotations in plots.js after updates
  • Review schema.sql and neighbourhoods_dict in data_processing.ipynb
  • Export updated map_listings and price_availability views to CSV for GitHub Pages
  • Leave Tableau as-is (June 2024)

Errata

The Flask / Django version of the price-availability chart has formatting issues. Be sure to toggle the allDCData filter correctly in plotPriceAvailability().

Gallery

Tableau Dashboard:

Tableau Plot

Web Dashboards Plots:

Website Plot of Price and Availability, Upcoming Year

Minimum Nights Plot

Interactive Map:

Map

Map of Neighborhood

Neighborhood Map Color Coded by Rental Type

Choropleth Map of Average Price per Neighborhood

Bubble Map of Number of AirBnB's per Neighborhood Exploratory Data Analysis:

Price Plot

Average Neighborhood Price Plot

Entity Relationship Diagram:

ERD

Course Certificates

Parts of this project served as capstones for two of HarvardX’s free online computer science courses:

cs50 Web Certificate

cs50SQL Certificate

References

Dataset provided by Inside AirBnB.

Neighborhood population and housing unit data from Census Reporter.

License

Creative Commons Attribution 4.0 International License

Acknowledgements

  • Thanks to Imen Najar for early insights and support.
  • Thanks to Geronimo Perez for feedback and assistance during development.

Author

Bryan Johns, October 2024
[email protected] | LinkedIn | GitHub | Portfolio
— Fluent in Data. Fluent in Human.

About

Capital Crashpad — End-to-end data pipeline and web app analyzing Airbnb data in Washington, DC with PostgreSQL and Django.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages