Skip to content

UPenn-CIT599/final-project-team-214

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Home Finder

The objective of this application is to assist prospective home buyers in California with their searches for a new home.

The app asks users to input a series of criteria indicating the preferred attributes of their future residence, including: price, number of bedrooms, daily temperature, monthly precipitation, annual days below freezing, local town size, median local age, and local household size.

After users indicate their preferences, a scoring algorithm ranks all the ZIP codes in California based on their compatibility with their input. To determine the best matches, this scoring analysis relies on publicly sourced housing, weather and demographic data from the Zillow Housing Data Archive, the NOAA Global Historical Climatology Network API, and California’s Department of Finance. The top ZIP code results are then presented to the user, who now knows where to look for his or her future home.

Please use the link below to see a general design flowchart for this program: https://www.lucidchart.com/documents/view/a110c72c-bc0b-496c-9ca9-3e61ece059b3/0_0

Prerequisites

The following items are required to effectively run this program:

  • Java SE
  • Eclipse IDE
  • JSON Jar File*

*The JSON Jar File is only required to run the WeatherAPI Class. To avoid long run-times, this method is not explicitly run from the main Runner class but can be run using the main method within.

To append the JSON Jar File to the WeatherAPI Class use the following steps:

  • Project (right click)
  • Build Bath
  • Configure Build Path
  • Libraries
  • Add External Libraries
  • Select downloaded Jar File

Program Components

This program involves three main components:

  • Data Extraction & Population
    • Data for this program was taken from Zillow Housing Data Archive, the NOAA Global Historical Climatology Network API, and the most recent census data provided by the State of California’s Department of Finance.
    • Key Classes
      • WeatherAPI – This class utilizes the NOAA API for weather data to extract and write weather data by California Zip Code into distinct CSV files. Weather data of concern includes Average Daily Maximum Temperature, Average Daily Minimum Temperature, Average Daily Precipitation (rainfall), and Average Daily Snowfall.
      • DataReader – This abstract class provides two concrete methods and one abstract method utilized by other *reader sub-classes to extract from each of the data types and merge them into a single HashMap. The final HashMap stores DataBook objects (object that holds all data fields of concern) by Zip Code.
      • CensusReader/HomeReader/WeatherReader – The sub-classes to the DataReader class that collect and clean data for each respective category.
      • DataCompiler – This class compiles all data using the *Reader classes for cleaner insertion into the main method.
  • Graphical User Interface
    • Key Class
      • HousingGUI – This class houses the main Graphical User Interface that users interact with. After filling in each of the data fields, the answer is stored and run through the HomeMatchScorer class to score the user’s answers against the compiled data for each location (zip code).
  • Scoring
    • Key Class
      • HomeMatchScorer – This class takes the compiled data and answers provided by the user in the HousingGUI class to effectively determine which zip codes provide the most comparable characteristics to those provided by the user. The output of this class is then formatted in a final GUI Frame that exits the program upon close.

Running

To run this program, please download the entirety of this GitHub repository. Then, within the HomeFinderRunner class, run the program using your Eclipse IDE.

Data Sources

Weather Data – https://www.ncdc.noaa.gov/cdo-web/
Census/Demographic Data – http://www.dof.ca.gov/Reports/Demographic_Reports/Census_2010/#SF1
Home Data - https://www.zillow.com/research/data/
Icon - Icon made by Freepik from www.flaticon.com
https://www.flaticon.com/free-icon/home_169482?term=house%20gps&page=1&position=91

About

final-project-team-214 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages