/hackbright-project

Hackbright Project.

Primary LanguageJavaScript

Destination: Anywhere

Description

Destination: Anywhere has users input their airport, a month of travel, and trip duration and outputs a list of potential destinations with links to buy the flight on Kayak.

Table of Contents

Technologies Used

  • Python
  • JavaScript/jQuery
  • TypeAhead
  • JSON
  • Flask
  • PostgreSQL
  • Scrapy
  • BeautifulSoup
  • SQLAlchemy
  • Jinja2
  • HTML/CSS
  • Bootstrap
  • Google Maps API

Features

Users can input their airport, month of travel, and trip duration:

App at work

TypeAhead feature allows users to search by airport code, airport name, or city name:

TypeAhead

Users can sort search results:

Sorting

Database entries are viewable via Google Maps API:

Google Maps

Data Modeling

Working with data -- acquisition, sanitization, storage, and manipulation -- was definitely one of my favorite parts of the project! Here's a colorful diagram to show the relationship between the tables (you can explore further in the model.py file):

Data Model Diagram

Basics of the data model:

  • I acquired data by scraping the Fare Detective details page by navigating from the listing pages for the top populous airports. See screenshots below of the Fare Detective pages.

Listings Page

Details Page

  • With the info thrown into a CSV (airports) and JSON (airfares) file, I parsed through the data with my seed file. This was both nerve-wracking and fun. The first I had to discard the entire database because I forgot a field? So scary. The fifth time? Not too bad. And after iterating through and testing to ensure that I had the data I wanted and that they tied to each other nicely, I could proceed forward with the rest of my project!

Possible Improvements

This project was completed in under a month, so there are definitely areas for improvement. Specifically:

  • Tests are needed!
  • The "maps" feature was purely for practicing API integration. If this were a real site, I would like to either (a) expand the feature or (b) remove it altogether as it disrupts the user interaction with the site.
  • The routes available are limited by the information scraped and there are only 6,900 data points. I would like to either scrape more pages for more data points or utilize another method for users to get airfare to interesting places (e.g., UNESCO heritage sites, best beaches in the world, or locations to view northern lights).

Author

Hi! My name is Chung Nguyen and I am a software engineer. I received training from Hackbright Academy, an engineering bootcamp for women in San Francisco (graduation: December 2016). I'm from the Bay Area and have a lot of experience in client-facing roles and training UX researchers, software developers, and product managers in remote usability testing. I'm currently seeking a full-time software developer role in the San Francisco Bay Area. If you have a role that I should hear about, feel free to email chung.nguyen at gmail. Thanks for reading!