# National Parks Demo App ## Prerequisites - Ruby 3.4.7 - Bundler - An API key from the [national parks service](https://www.nps.gov/subjects/developer/get-started.htm) ### Under the hood - Ruby 3.4.7 - Rails 8.0.3 - SQLite ## Getting started 1. `bundle install` - You know this one; install dependencies 2. Set `NPS_API_KEY` using your tool of choice 3. `bin/rails db:prepare` - This will create and load your database - hint: `tail -f log/development.log` to see what's going on 4. `bin/rails server` - Congrats you're ready to receive requests ``` ❯ curl 'localhost:3000/api/v1/parks?per_page=1' | jq '.' [ { "id": 1, "code": "abli", "name": "Abraham Lincoln Birthplace", "states": "KY", "properties": {}, "created_at": "2025-10-08T09:26:00.202Z", "updated_at": "2025-10-08T09:26:00.202Z" } ] ``` ## Testing ``` bin/rspec ``` ## TODO - What additional cols to add to parks model? - Order results on index actions - Return total pages for index actions - Enum on category for alerts - index states for efficient search? - full text search in sqlite? - normalize state on a separate table? - With postgres I would use a states:array col and gin index