Skip to content

karanmartian/pbm

 
 

Repository files navigation

Build Status Coverage Status

sweet pinballin' brah

This repo is the codebase for pinballmap.com. The code for the Pinball Map mobile app is here. If you have an app issue, please use that repo.

API Documentation

Available here: http://pinballmap.com/api/v1/docs

Mac Environment Setup

Below is a summary of the steps that Brian Hanifin undertook to get the site up and running on OS X 10.9. If you would like to contribute, and have any trouble, please ask.

  • Follow the Ruby install instructions at railsapps.github.io/installrubyonrails-mac.html. Make sure you also download ruby-2.6.6.

  • cd /Projects-Path/

  • git clone https://github.com/scottwainstock/pbm.git (I used the SourceTree app instead.)

  • cd /Projects-Path/pbm

  • rvm --default use ruby-2.6.6

  • bundle install

  • selenium install

  • brew update

  • cp config/database.yml.example config/database.yml to create your database.yml for development

  • brew install postgresql

  • initdb /usr/local/var/postgres -E utf8

  • Download Postgres App. (I have mine run at startup on my "Dev" profile.)

  • CREATEDB pbm_dev

  • bundle exec rake db:create ; RAILS_ENV=test bundle exec rake db:create

  • bundle exec rake db:migrate ; RAILS_ENV=test bundle exec rake db:migrate

  • rake doc:app (I think this generates documentation for the app, which sounds helpful for later.)

  • curl get.pow.cx | sh

  • cd ~/.pow

  • ln -s /Projects-Path/pbm

  • open http://pbm.dev

Start server: bundle exec rails s

Run tests: bundle exec rake

If the site loads properly it will be an empty version of pinballmap.com, then ask Scott for a data dump so you can have a full set of data to work with.

Linux Setup

  1. Fork it. Then:
  • clone https://github.com/{you}/pbm.git
  • git remote add upstream git://github.com/scottwainstock/pbm.git
  1. Install postgresql.

  2. Setup postgres:

  • createuser --interactive
  • createdb pbm_dev

or read:

  1. Install and setup ruby and rvm:
  • curl -L https://get.rvm.io | bash -s stable --ruby
  • rvm install ruby-2.6.6
  • rvm --default use ruby-2.6.6
  • gem install bundler
  • bundle install
  • cp config/database.yml.example config/database.yml to create your database.yml for development
  • bundle exec rake db:create ; RAILS_ENV=test bundle exec rake db:create
  • bundle exec rake db:migrate ; RAILS_ENV=test bundle exec rake db:migrate
  1. Get a database dump from Scott. Then:
  • pg_restore --verbose --clean --no-acl --no-owner -h localhost -d pbm_dev dump.file

Start server: bundle exec rails s

Run tests: bundle exec rake

Docker Setup

Prerequisites

  • Docker >= v1.12.0+
  • Docker-Compose (comes with Docker for Mac. Separate install on Linux)
  • Optional: direnv or some other way to source environment variables to override default ports in case of conflict

Usage

Fully Containerized

  • Run docker-compose up -d to start containers
  • Navigate to localhost:$PORT (either specified, or defaults to 3000)
  • Bring down containers with docker-compose down
    • By default, the database will keep its state as a docker volume. If you want to start fresh, run docker-compose down -v to destroy the volume. The next time you bring up this docker-compose file, db:create and db:migrate will re-populate the database.

Postgres only

If you just want to run postgres in a container and use your local filesystem for running Rails, you can use the postgres only compose file.

  • Run docker-compose -f docker-compose.postgres.yml up -d
  • If first time running, run bundle exec rake db:create db:migrate to populate the postgres container.
  • Bring down containers with docker-compose -f docker-compose.postgres.yml down
    • By default, the database will keep its state as a docker volume. If you want to start fresh, run docker-compose -f docker-compose.postgres.yml down -v to destroy the volume.

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 69.3%
  • Haml 12.8%
  • HTML 10.1%
  • JavaScript 4.4%
  • CSS 3.3%
  • SCSS 0.1%