National Parks Demo App
Prerequisites
- Ruby 3.4.7
- Bundler
- An API key from the national parks service
Under the hood
- Ruby 3.4.7
- Rails 8.0.3
- SQLite
Getting started
bundle install
- You know this one; install dependencies
- Set
NPS_API_KEYusing your tool of choice bin/rails db:prepare
- This will create and seed your database
- hint:
tail -f log/development.logto see what's going on
bin/rails server
- Congrats you're ready to receive requests
❯ curl 'localhost:3000/api/v1/stats'
{
"park_count": 474,
"alert_count": 708,
"state_with_most_parks": {
"state": "WY",
"park_count": 10
},
"park_with_most_alerts": {
"park_code": "zion",
"alert_count": 6
}
}
Testing
bin/rspec
Notes
- What additional cols to add to parks model?
- Order results on 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
Description
Languages
Ruby
100%