All Projects → bensheldon → open311status

bensheldon / open311status

Licence: MIT license
Open311 Status monitors and aggregates the status of dozens of Open311 API endpoints, providing benchmarks and comparative insights.

Programming Languages

ruby
36898 projects - #4 most used programming language
Slim
82 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
coffeescript
4710 projects
Procfile
174 projects

Open311 Status

Website: http://status.open311.org

Project Backlog: https://github.com/codeforamerica/open311status/projects/1

Open311 Status monitors and aggregates the status of dozens of Open311 API endpoints, providing benchmarks and comparative insights into:

  • Upness: the API is currently available
  • Uptime: the availability of the API over time
  • Performance: how quickly the servers respond to API requests
  • Comprehensiveness: how fully the API is implemented/adopted; e.g. the number of service types that can be submitted through the API
  • Utilization: how much the 311 service being used; e.g. the number of service requests submitted

Demo Image

Development

Adding new API endpoints

To add a new Open311 endpoint, add their API configuration to the config/cities.yml file. This should include:

  • slug: a unique key for the API endpoint.
    • name: the human readable name of the city or location.
    • endpoint: the complete URL of the Open311 api endpoint, ending in a /, without services.xml or requests.xml.
    • jurisdiction (optional): the ?jurisdiction_id= parameter, if required.
    • format (optional): xml or json; defaults to xml/
    • headers (optional): custom API headers necessary for the API.

Example:

bruhl:
  name: 'Brühl, Deutschland'
  endpoint: 'https://www.achtet-auf-bruehl.de/georeport/v2/'
  jurisdiction: 'bruehl.de'

Loading real data

By default, running db:setup will load cities and generate fake service requests. To load cities, run rake cities:load. And to load service requests, rake cities:service_requests

Application Dependencies

  1. Install Ruby with your ruby version manager of choice, like rbenv or RVM
  2. Check the ruby version in .ruby-version and ensure you have it installed locally e.g. rbenv install 2.6.1
  3. Install bundler (the latest Heroku-compatible version): gem install bundler
  4. Install Postgres. If setting up Postgres.app, you will also need to add the binary to your path. e.g. Add to your ~/.bashrc: export PATH="$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin".
  5. Install PostGIS, the Postgres geospatial extension, if it's not included in your distribution. Postgres.app comes with postgis.

Application Setup

  1. Install ruby gem dependencies: bundle install
  2. Create the databases and load schema and seeds: bin/rails db:setup
  3. Run the tests: bin/rspec
  4. Run the server: bin/rails server, and visit the web-browser: http://localhost:3000

Migration guide

You may need to run rake db:gis:setup to enable PostGIS on your database.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].