Collecting the oversight community's work in one place.
A small website at oversight.garden.
Oversight.garden is primarily a Node application, and uses Ruby for some data manipulation tasks.
Elasticsearch is used for text search and as a primary datastore.
- Install Node version 8 or higher.
- Install Elasticsearch version 5.1 or higher.
- Install Ruby 2.3 or higher.
- Then install Ruby dependencies:
gem install bundler bundle install
- And Node dependencies:
Working with the CSS
This project uses Sass, Bourbon, and Neat to develop front-end CSS.
Have Sass "watch" the
.scss files with:
This will automatically detect changes to
/public/scss/main.scss and re-compile to
Setting up the data
data dir that points to the location of your downloaded inspector general report data from the unitedstates/inspectors-general project.
ln -s /path/to/ig/data data
Then copy the config example file:
cp config/config.yaml.example config/config.yaml
You probably don't need to make any changes to
config.yaml. It looks for Elasticsearch at
http://localhost:9200 by default, and for IG report data in the
data directory you symlinked above.
Running the app
Launch the app:
Then visit the application at
http://localhost:3000. It should work! But you won't see any data in it.
Loading app data
Once, before the first time you load data, you need to tell Elasticsearch to optimize loaded report text for efficient highlighting.
rake (which ships with Ruby) to set up the Elasticsearch index and index aliases. Make up an index name, (for example, based off of today's date) and run the following commands to set up the index.
rake elasticsearch:init index=oversight-YYYY-MM-DD rake elasticsearch:alias_read index=oversight-YYYY-MM-DD rake elasticsearch:alias_write index=oversight-YYYY-MM-DD
You can add
force=true to the end of the init command to empty the database and reload the mappings.
Then, to actually load report data, run:
node tasks/inspectors.js --since=1776
This loads every report in your data since the year 1776. See the full list of supported options for data loading.
If this all worked, you should be up and running!
If you're contributing to the project, you can run the same syntax checks locally that would get run on Travis. Once you have cloned the project, run
tasks/install-git-hooks.sh. This will create a symbolic link at
.git/hooks/pre-commit that points to
From then on, Git will execute syntax checks whenever you run
git commit. If there is an issue, the script will abort the commit and print an error message. If you need to bypass the syntax checks for any reason, use
git commit --no-verify.
Sitemaps can be generated with the following rake task:
The project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.