Giter Site home page Giter Site logo

avect / big-help-mob Goto Github PK

View Code? Open in Web Editor NEW

This project forked from youthtree/big-help-mob

0.0 1.0 0.0 4.71 MB

Open Source Crowd-Sourced Volunteering... of doom? Rails 3 App to manage BHM sign ups.

Home Page: http://bighelpmob.org/

License: BSD 4-Clause "Original" or "Old" License

big-help-mob's Introduction

Big Help Mob - Community Powered Volunteering Flash Mobs

Big Help Mob is Youth Tree's latest project currently in development. The idea is simple: Regularly get together 100+ young people from all across the metro area in a big mob and do something useful for a local not-for-profit (tree-planting, renovating homeless shelters etc)... and then celebrate with enormous, ludicrous flash-mobs (100 people looking up at the sky in the CBD for no apparent reason... that sort of thing). (From the original Big Help Mob teaser / intro site)

About this Application

This app serves as registration and event management for each Big Help Mob event. The app is written on Rails 3 and the "Youth Tree Stack" - a common set of technology (haml, sass + compass, coffeescript + barista and a few other things).

The application uses git-flow, with the master branch being used for the current stable and develop being used for the next release. As such, deploying to production should always use master whilst deploying to staging shall always use develop.

Getting Started

To get started with this application, we assume you have an environment set up with rvm, mysql, git.

To install Big Help Mob itself, run the following:

git clone [email protected]:YouthTree/big-help-mob.git

Or, if you're not on the youthtree team,

git clone git://github.com/YouthTree/big-help-mob.git

Now, change into the directory.

cd big-help-mob

Note that it will ask you if you wish to trust the rvmrc. Inspect it to make sure it's ok and then accept it. Doing so, will do the following:

  • Install ree if not present
  • Create a bighelpmob gemset
  • Setup bundler in the gemset

Essentially, it bootstraps an environment ready for the next step.

Before you continue, we need to create a user for the application. To do this, log in to the postgres psql command line (on my system with hombrew, this was a matter of psql template), and run:

CREATE USER bighelpmob WITH PASSWORD 'bighelpmob';

And either create the development databases manually:

CREATE DATABASE bighelpmob_development OWNER bighelpmob;
CREATE DATABASE bighelpmob_test OWNER bighelpmob;

Or just simply give the user CREATEDB permissions:

ALTER USER bighelpmob CREATEDB;

Now, you can run:

./script/configure

Which will guide you through:

  • Installing all of the gem dependencies
  • Configuring config/settings.yml
  • Configuring config/database.yml

Next, you'll want to load some data into your database. If you're on the team and have access to the server, run:

cap staging sync:down

Which will give you a cleaned version of the staging dataset. Otherwise, run:

rake db:setup

Which loads the schema and creates an initial user.

Working on CoffeeScript / JavaScript?

If coffeescript isn't installed and available, you should not edit javascript or coffeescript. To setup coffeescript, your simplest approach is:

  1. Install Node.js (to /usr/local preferrably) - See http://nodejs.org/#download
  2. Install NPM - Run sh < <(curl http://npmjs.org/install.sh)
  3. Run npm install coffee-script

Deploying

On the Big Help Mob team? Deployment should be a simple matter of:

  1. cap production deploy - Deploy from master to the production server, http://bighelpmob.org/
  2. cap deploy - Deploy from develop to the staging server, http://staging.bighelpmob.org/

For more access details, please contact the other members of the team.

Syncing the Database

Want to work with a copy of production / staging data on your local box? Assuming you have access the production server, you can do so by running cap [environment] sync:down where environment is staging or production.

If no environment is passed, the app defaults to staging. On import, To prevent accidental mass emails, all users emails are reset to [email protected].

To push your local database to staging, you simply do: cap staging sync:up.

Note, you can combine these to clone production to staging with the cleaned data set by running ./script/sync-db.

Contributing

We encourage all community contributions. Keeping this in mind, please follow these general guidelines when contributing:

  • Fork the project
  • Create a topic branch for what you’re working on (git checkout -b awesome_feature)
  • Commit away, push that up (git push your_remote awesome_feature)
  • Create a new GitHub Issue with the commit, asking for review. Alternatively, send a pull request with details of what you added.
  • Once it’s accepted, if you want access to the core repository feel free to ask! Otherwise, you can continue to hack away in your own fork.

Other than that, our guidelines very closely match the GemCutter guidelines here.

(Thanks to GemCutter for the contribution guide)

License

All code is licensed under the New BSD License and is copyright YouthTree. Please keep this in mind when contributing.

big-help-mob's People

Contributors

sutto avatar j16r avatar mattman avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.