Thank you for taking the time to review my submission the Sr. Engineer position. I made sure to fulfill all of the base requirements, while adding a few extra niceties.
My commit messages should be self explanatory and give you an idea of where my thought process went with this project. I also made sure I tested everything thoroughly, using RSpec and simplecov to ensure my paranoia.
One major deviation from the base requirements is that I decided to use redis and resque to queue the processing of the uploaded subsidiary files. I felt this would be closer to a "real world solution", plus it was just a fun exercise. I have listed detailed instructions below to help you get everything setup and installed to run my application. I hope you enjoy reviewing it as much as I enjoyed writing it.
- redis 2.6.13
- Ruby 1.9.3-p429
- Rails 4.0.0.rc2
- sqlite3 3.7.12
In order to install Ruby and Rails, I used RVM, but feel free to go with your preferences. I installed redis and sqlite3 using Homebrew. I'll also give instructions below on installing these using RVM and Homebrew.
brew install redis
brew install sqlite3
rvm install ruby-1.9.3-p429
Install RubyGems (if necessary) - RubyGems installation instructions
gem install bundler (if necessary)
cd ~/path/to/my/app
bundle install
rake db:create db:migrate db:test:prepare
bundle exec rspec
Thanks to simplecov, you can view the coverage of my RSpec tests. Every time you run my test suite, new reports are generated by simplecov and can be found in the /coverage directory within my application. Just open up the index.html in your favorite browser to check them out.
This will start thin and resque simultaneously and allow you to test away:
foreman start
