{"id":20355829,"url":"https://github.com/zackproser/padscoper","last_synced_at":"2026-02-17T15:01:33.740Z","repository":{"id":81143902,"uuid":"77003782","full_name":"zackproser/padscoper","owner":"zackproser","description":"A demonstration app that allows users to search for real estate properties near them. ","archived":false,"fork":false,"pushed_at":"2016-12-21T02:08:12.000Z","size":918,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"github","last_synced_at":"2025-10-08T11:44:27.010Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zackproser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"zackproser"}},"created_at":"2016-12-21T01:08:06.000Z","updated_at":"2024-05-13T14:12:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"6476c4a0-3287-46b3-90b0-9274928db424","html_url":"https://github.com/zackproser/padscoper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zackproser/padscoper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fpadscoper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fpadscoper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fpadscoper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fpadscoper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zackproser","download_url":"https://codeload.github.com/zackproser/padscoper/tar.gz/refs/heads/github","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fpadscoper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29548201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T23:14:16.413Z","updated_at":"2026-02-17T15:01:33.723Z","avatar_url":"https://github.com/zackproser.png","language":"JavaScript","readme":"# PadScoper\n\n![PadScoper Preview](/public/images/padscoper-splash.png)\n\n## Overview \n[PadScoper](https://padscoper.herokuapp.com) is a node.js app leveraging the [Express framework](https://expressjs.com/) that allows users to look up properties within 20 miles of an address they supply when searching. \n\nA demo instance of this application is [running here](https://padscoper.herokuapp.com).\n\nAs this is an example application, it currently only contains a handful of hardcoded properties in the SF bay area.\n\n## Requirements\n* nodejs\n* connectivity to the public internet (so that API calls to Google services can work)\n* no persistence layer (for brevity, this app mocks out a database access module)\n\n## Getting Started \n1. $ git clone https://zackproser@bitbucket.org/zackproser/padscoper.git\n2. $ cd padscoper\n3. $ npm i \n4. $ ./runTests.sh\n5. $ ./startApp.sh\n\n\n## Test and Startup Scripts\nFor convenience, there are two utility bash scripts in the root of the project for running tests and starting the app. Note that the startApp.sh script will run the app in the background, so when you are finished be sure to \n\n```bash\n$ ps -ef | grep node\n501 40917     1   0  4:56PM ??         0:00.32 node ./bin/www\n501 40941 40923   0  4:56PM ttys003    0:00.00 grep node\n```\nand then \n\n```bash\n$ kill 40917\n```\n\nin order to ensure the app is shutdown when you are finished using it.\n\n## Main Modules\n\n### Database\nDatabase is a mock database access module that contains the properties included in this exercise.It allows you to query for all properties and retrieve the result set as valid JSON. \n\n### Geocoder\nGeocoder is the internal Geocoding module that will determine the distance between two latitude and longitude coordinate pairs. This is handy for using to filter result sets retrieved from the database or external network services\n\n### REST Helper\nThis helper module takes care of some common service tasks such as ensuring that an inbound request is properly formed and contains all required information. It also exposes methods for building uniform API responses and returning API errors, so that project developers can focus on adding more business logic consumers can more easily script against the PadScoper API. \n\n## App Frontend \nPadScoper features a simple and clean UI so that users can easily submit searches. The main logic for the UI is contained in /public/javascripts/padscoper.js. \n\nThis is also the file that instantiates the [Google Maps API Geocoder service](https://developers.google.com/maps/documentation/javascript/geocoding) with the project's API key. When a user submits a string address to run a search against, padscoper.js hands the address off to Google's Geocoder and uses the returned coordinates object to run an ajax search against the PadScraper backend. ","funding_links":["https://github.com/sponsors/zackproser"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackproser%2Fpadscoper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzackproser%2Fpadscoper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackproser%2Fpadscoper/lists"}