Skip to content
This repository has been archived by the owner on Mar 15, 2018. It is now read-only.

snap-cloud/snap-cloud-rails

Repository files navigation

An interactive, project sharing site for Snap!.

Code Climate Build Status Test Coverage Inline docs Dependency Status security

What is Snap! Cloud?

This section is TODO

  • Snap! GH Repo
  • Snap! homepage
  • scratch site

Background

The initial design and development of this project was during Spring 2015 for Professor Fox's CS169, "Software Engineering" course at UC Berkeley. The original team members were:

  • Alec Guertin
  • Arjun Baokar
  • Jason Wang
  • Linda Lee
  • Michael Ball
  • Steven Campos

Setting Up

This (currently) project uses Rails 4.2.1 and Ruby 2.2.1, and aims to be always up to date!

The Heroku destination for the app is https://ucbsnap.herokuapp.com

  1. CLONE WITH -r git clone -r git@github.com:snap-cloud/snap-cloud.git
  2. You should have rvm or similar installed.
  3. bin/setup
  4. bundle install --without production
  5. git remote add heroku git@heroku.com:ucbsnap.git

Dependencies

  • nodeJS (>= v0.10) and npm
    • Used for bower
  • Ruby 2.2.1
  • imagemagick for testing profile and thumbnail management
  • OS X -- if you have brew there will be an install script sometime...

Development Notes

[ TODO: Move this section to a Wiki?]

  • GitHub Flow [link needed...]

  • The awesome print gem

$ rails console
ap SomeObject

Heroku Deployment

To deploy to Heroku, you should simply need to do a git push heroku master. However, the build process is slightly more complex than a traditional Rails app.

Heroku Deployment uses a custom "build pack"

  1. Install nodeJS
  2. Post Node install, install bower
  3. Then run the normal Ruby buildpack
  4. Install with bundler
  5. Serve using the Puma (multithreaded) web server

Pre-Reqs to Deployment:

  1. Make sure you have a Postgres database added to the Heroku environment.
  2. That's it?

License

Please see the file LICENESE for a full copy of the current license for this project (AGPL 3).