An app that lists places that accept food stamps
Objective-C Swift Ruby HTML Shell CSS JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
bin
config
contrib
db
doc
gemfiles
iOS
lib
public
test
vcr_cassettes
vendor/assets
.dockerignore
.gitignore
.rvmrc
.travis.yml
Dockerfile
Dockerfile.test
Gemfile
Gemfile.lock
LICENSE.txt
README.md
Rakefile
STATUS.txt
config.ru
docker-compose.test.yml
docker-compose.yml
unused_locale_keys.yml

README.md

SnapFresh Build Status Code Climate

Installation and Setup

Install Dependencies

Dependencies

  • Postgres
  • Git
  • Ruby

For Ruby and Git, a good tutorial can be found at Jumpstart Lab Tutorials

For Postgres, see install options depending on your operating system below and follow the instructions.

Setup

$ git clone https://github.com/SnapFresh/SnapFresh.git
$ cd SnapFresh
$ bundle install
$ cp config/database.yml.example config/database.yml
$ bundle exec rake db:nuke_pave

Installing Postgres

Mac Users

Recommended installation is with Postgress.app or Homebrew. See relative sites for instructions on installation.

Window Users

Download and follow the instructions from Postgres. When promoted, you will want to install the local version, not the remote server.

Linux

For Fedora:

$ sudo yum install postgresql-server postgresql-client postgresql-docs postgresql-devel

Database Configuration

For Mac users, be sure to add the following to config/database.yml in order to avoid port errors.

development:
  host: localhost

test:
  host: localhost

You may need to add or modify additional configurations in database.yml depending on how Postgres is setup.

A for develoment purposes, a username and password are not required unless Postgres is setup to require them. The fields can either be left blank or removed.

Development Data

If you only want data for development purposes, then db:sample will load a small amount (200 records) that will probably be sufficient for development purposes.

$ rake db:sample

Production Data

Download a new data set and load into the database.

$ rake db:datarefresh

A line should print out every 10K rows that are refreshed - this way you can check on the progress of the script which takes at least 10 min to run.

Alternate Production Data Load

Alternate way to load the full data (if above steps dont work for some reason):

  1. Run ruby db/cronjob.rb to fetch all data files, unzip and then produce a single CSV file called "all.csv".

  2. Bulk-load into postgres, using this command.

$ grep -v '"NULL"' all.csv | psql allincomefoods_dev -c "copy retailers (name, lon, lat, street, city, state, zip, zip_plus_four) from stdin null as 'NULL' csv;"
  1. Remove all the .zip and .csv files that were created as part of the download process.

\/\/00T! You should be all installed and stuff now.

Docker

Requirements:

  • Docker
  • Docker Compose

Runnning in Docker

  1. $ docker-compose up -d
  2. Open in browser on Docker host IP on port 3000

Testing in Docker

  1. $ docker-compose -f docker-compose.test.yml build
  2. docker-compose -f docker-compose.test.yml up --no-deps -d postgres
  3. docker-compose -f docker-compose.test.yml up --no-deps snapfresh

Contribution Guidelines

  1. Create a feature branch from develop: git checkout -b feature/myfeature develop or git flow feature start myfeature
  2. Commit and push your changes
  3. Submit a pull request to the develop branch

License/Copyright

License INFO: - Note, this license applies to all files within the SnapFresh/SnapFresh repo. It is an OSI approved license.

Copyright [2011] [Ysiad Ferreiras, Aaron Bannert, Jeremy Canfield and Michelle Koeth]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

You may obtain a copy of the License

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

See LICENSE for details.