CityOfPhiladelphia / property2

Find information on real estate property in Philadelphia.
https://property.phila.gov
ISC License
6 stars 7 forks source link
philadelphia property real-estate

Property

Tested on BrowserStack

Property is a client-side web application for aggregating open data about properties in the City of Philadelphia. All logic is in client-side JavaScript -- there is not server-side components outside of the open data APIs.

Property makes several AJAX calls, some of which are required to complete before the next one can happen. The flow happens like this:

  1. Geocode user input expecting zero or more property results. These results include a summary of OPA and standardized address data.
  2. With the OPA number, fetch the OPA details for a single property.
  3. At the same time, use the Standardized Address to fetch the service area data from Socrata.

But a user can also share a link directly to a property which contains the OPA number in the query string. In this case, the flow happens like this:

  1. With the OPA number, fetch the OPA details for a single property.
  2. After the details have been fetched, then use the Standardize address to fetch the service area data from Socrata.

Local Setup

Clone the repository

git clone git@github.com:CityOfPhiladelphia/property2.git
cd property2

Start a web server of your choosing. For example:

python -m SimpleHTTPServer

For python v3 users:

python3 -m http.server 9000

You're done! Go visit http://127.0.0.1:8000.

Contributing

Markup

Nearly all markup is in templates located in index.html, but note that some is generated in the JavaScript views.

Application

All application setup logic is in js/app.js. This includes event bindings, templating, utilities, etc.

Views

js/front.js

js/results.js

js/property.js

Deploying

Property is hosted on GitHub pages. To deploy:

  1. Push a new feature branch to GitHub.
  2. Create a Pull Request from your feature branch to the gh-pages branch.
  3. Merge the Pull Request.
  4. Open the cloudfront page under the PHL-OIT account and invalidate the cache so the changes will be reflected in the site.
  5. Done!

Supported Browsers

Test against each of these browsers, including mobile and print view, before deploying to production.