SethPerna / utah_avalanche_api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Utah Avalanche API

languages PRs rspec simplecov All Contributors

Background and Description

Utah Avalanche API is a backend application to expose an API endpoint, the data exposed regards avalanche forecasts for certain mountain ranges in Utah. A FE client could provide the mountain range to the API and get conditions for the day as well as get specific conditions according to slope and elevation. The end goal would be to set up SMS service to proivide all users or pass holders in the database with avalanche data every morning via email or SMS.

Requirements and Setup (for Mac):

Ruby and Rails

  • Ruby Version 2.7.4
  • Rails Version 5.2.6

Gems Utilized

  • RSpec
  • Pry
  • SimpleCov
  • Capybara
  • Shoulda-Matchers
  • Factory_Bot_Rails
  • Faker
  • jsonapi-serialize
  • Figaro
  • Webmock
  • VCR

Setup

  1. Clone this repository: On your local machine open a terminal session and enter the following commands for SSH or HTTPS to clone the repositiory.
  • using ssh key
$ git clone git@github.com:SethPerna/utah_avalanche_api.git
  • using https
$ git clone https://github.com/SethPerna/utah_avalanche_api

Once cloned, you'll have a new local copy in the directory you ran the clone command in.

  1. Change to the project directory:
    In terminal, use $cd to navigate to the backend Application project directory.
$ cd utah_avalanche_api
  1. Install required Gems utilizing Bundler:
    In terminal, use Bundler to install any missing Gems. If Bundler is not installed, first run the following command.
$ gem install bundler

If Bundler is already installed or after it has been installed, run the following command.

$ bundle install

There should be be verbose text diplayed of the installation process that looks similar to below. (this is not an actual copy of what will be output).

$ bundle install
Using rake 13.0.6
Using concurrent-ruby 1.1.9
Using i18n 1.9.1
Using minitest 5.15.0
Using thread_safe 0.3.6
Using tzinfo 1.2.9
Using activesupport 5.2.6
Using builder 3.2.4
Using erubi 1.10.0
Using mini_portile2 2.7.1
Using racc 1.6.0
Using nokogiri 1.13.1
Using rails-dom-testing 2.0.3
Using crass 1.0.6
Using loofah 2.13.0
Using rails-html-sanitizer 1.4.2
Using actionview 5.2.6
Using rack 2.2.3
Using rack-test 1.1.0
Using actionpack 5.2.6
Using nio4r 2.5.8
Using websocket-extensions 0.1.5
Using websocket-driver 0.7.5
Using actioncable 5.2.6
Using globalid 1.0.0
Using activejob 5.2.6
Using mini_mime 1.1.2
Using mail 2.7.1
Using actionmailer 5.2.6
Using activemodel 5.2.6
Using arel 9.0.0
Using activerecord 5.2.6
Using marcel 1.0.2
Using activestorage 5.2.6
Using msgpack 1.4.4
Using bootsnap 1.10.3
Using bundler 2.1.4
Using byebug 11.1.3
Using coderay 1.1.3
Using diff-lcs 1.5.0
Using docile 1.4.0
Using factory_bot 6.2.0
Using method_source 1.0.0
Using thor 1.2.1
Using railties 5.2.6
Using factory_bot_rails 6.2.0
Using faker 2.19.0
Using ffi 1.15.5
Using jsonapi-serializer 2.2.0
Using rb-fsevent 0.11.1
Using rb-inotify 0.10.1
Using ruby_dep 1.5.0
Using listen 3.1.5
Using pg 1.3.1
Using pry 0.14.1
Using puma 3.12.6
Using sprockets 4.0.2
Using sprockets-rails 3.4.2
Using rails 5.2.6
Using rspec-support 3.10.3
Using rspec-core 3.10.2
Using rspec-expectations 3.10.2
Using rspec-mocks 3.10.3
Using rspec-rails 5.1.0
Using shoulda-matchers 5.1.0
Using simplecov-html 0.12.3
Using simplecov_json_formatter 0.1.3
Using simplecov 0.21.2
Using spring 2.1.1
Using spring-watcher-listen 2.0.1

If there are any errors, verify that bundler, Rails, and your ruby environment are correctly setup.

  1. Database Migration
    Before using the web application you will need to setup your databases locally by running the following command
$ rails db:{:drop,:create,:migrate,:seed}
  1. Startup and Access
    Finally, in order to use the web app you will have to start the server locally and access the app through a web browser.
  • Start server
$ rails s

At this point you should be taken to a page with an example JSON response for a user

Endpoints provided

get '/api/v1/avalanche'

Screen Shot 2022-03-20 at 2 13 19 PM

Screen Shot 2022-03-20 at 2 13 39 PM

Screen Shot 2022-03-20 at 2 13 57 PM

Contributors (emoji key):

</tr>

Seth (he/him)

💻 ⚠️ 👀

This project follows the all-contributors specification.

About


Languages

Language:Ruby 99.3%Language:HTML 0.7%