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:
- Geocode user input expecting zero or more property results. These results include a summary of OPA and standardized address data.
- With the OPA number, fetch the OPA details for a single property.
- 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:
- With the OPA number, fetch the OPA details for a single property.
- After the details have been fetched, then use the Standardize address to fetch the service area data from Socrata.
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.
Nearly all markup is in templates located in index.html
, but note that some is generated in the JavaScript views.
All application setup logic is in js/app.js
. This includes event bindings, templating, utilities, etc.
js/front.js
- for the landing page.
js/results.js
- for displaying zero or more than 1 results as a table.
js/property.js
- for showing all of the details for a single property.
Property is hosted on GitHub pages. To deploy:
- Push a new feature branch to GitHub.
- Create a Pull Request from your feature branch to the
gh-pages
branch. - Merge the Pull Request.
- Open the cloudfront page under the PHL-OIT account and invalidate the cache so the changes will be reflected in the site.
- Done!
Test against each of these browsers, including mobile and print view, before deploying to production.
- IE9 and up
- Latest version of all other browsers