Youth Tree is a NFP operating out of Perth, Western Australia and this is the simple recruitment platform application for them.
This app servers to host position descriptions and general position applications for said positions. 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
.
To get started with this application, we assume you have an environment set up with rvm, postgres and git.
To install the Recruitment Platform itself, run the following:
git clone [email protected]:YouthTree/recruitment_platform.git
Or, if you're not on the youthtree team,
git clone git://github.com/YouthTree/recruitment_platform.git
Now, change into the directory.
cd recruitment_platform
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 recruitment\platform gemset
- Setup bundler in the gemset
Essentially, it bootstraps an environment ready for the next step.
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.
On the Youth Tree team? Deployment should be a simple matter of:
cap production deploy
- Deploy frommaster
to the production server, http://getinvolved.youthtree.org.au/cap deploy
- Deploy fromdevelop
to the staging server, http://staging.recruitment.youthtree.org.au/
For more access details, please contact the other members of the team.
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
.
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)
All code is licensed under the New BSD License and is copyright Youth Tree. Please keep this in mind when contributing.