updated readme

This commit is contained in:
Mark Moser 2016-09-23 10:55:53 -05:00
parent 4a745e0aba
commit 5ba65f0f83
2 changed files with 44 additions and 16 deletions

View File

@ -45,18 +45,18 @@ group :development, :test do
gem 'guard-shell' gem 'guard-shell'
gem 'minitest-reporters' gem 'minitest-reporters'
gem 'rails-controller-testing'
gem 'policy-assertions' gem 'policy-assertions'
gem 'rails-controller-testing'
gem 'awesome_print'
gem 'binding_of_caller'
gem 'byebug', platform: :mri gem 'byebug', platform: :mri
gem 'pry-byebug' gem 'pry-byebug'
gem 'pry-rails' gem 'pry-rails'
gem 'binding_of_caller'
gem 'awesome_print'
gem 'brakeman'
gem 'rubocop', '~> 0.42.0' gem 'rubocop', '~> 0.42.0'
gem 'simplecov', require: false gem 'simplecov', require: false
gem 'brakeman'
end end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem # Windows does not include zoneinfo files, so bundle the tzinfo-data gem

View File

@ -2,20 +2,43 @@
This application manages quizzes intended to be used as pre-interview skill assessments. This application manages quizzes intended to be used as pre-interview skill assessments.
## Development ## Development Guidelines
* Please use Guard when you are developing Please follow these guidelines as close as possible. Discuss and question them as needed.
* Run Guard while developing.
* `bundle exec guard` * `bundle exec guard`
* Honor RuboCop warnings * Always execute a full run before a push (simply hit return in your guard session).
* Keep tests green * Honor RuboCop warnings.
* Write tests around new development * Write tests, And keep them green.
* Always pull with rebase! * Review the coverage report, keeping coverate > 90%.
* coverage/index.html
* It is OK to delete tests which are duplicated, or no longer relevant.
* If you find a bug, write a test to recreate it, so it never comes back unnoticed.
* Make sure to keep the fixture files current.
* `test/fixtures/*.yml`
* Include any new development data needs.
* Protect Gemfile.
* Does your new gem bring in a ton of unnecessary or outdated gems?
* Are you bringing in a gem that solves a problem already addressed by an existing gem?
* Do you really need this gem, or just a simple service object?
* Place your new gem appropriately. Some gem blocks are order specific, but most are alphabetized.
* Keep git comment subjects short, and use git comment bodies for more details.
* Pull with --rebase.
* `git config --global pull.rebase true` * `git config --global pull.rebase true`
* Make sure to include any new development data needs in the fixture files * Feature branches are nice.
* test/fixtures/... * Rebase feature branches onto develop before merging.
* feature branches are nice, but never merge develop down to them. Instead rebase feature branches onto develop. * `push -f` is ok on feature branches. Just communicate with others using that branch.
* Never merge develop _down_ to a feature branch.
* Merge with `--no-ff` when appropriate, `--squash` "WIP" commits into a complete thought.
* Clean up your remote branches after merge.
* Keep code comments to a minimum.
* We use git. Write a good commit message instead.
* Remove/Update code comments when changes are made.
* Leave the code better than you found it.
* Have fun.
### Setup ## Setup
* clone * clone
* checkout develop * checkout develop
* bundle * bundle
@ -26,10 +49,13 @@ This application manages quizzes intended to be used as pre-interview skill asse
* rake db:setup * rake db:setup
* rake db:migrate * rake db:migrate
* rake db:fixtures:load * rake db:fixtures:load
* `./rebuild-dev-db.sh` is a convenience script to rebuild and refresh your dev db with the fixture data.
## Docker ## Docker
You can develop in this app with a native rails install, if you prefer. However, there is also a docker image setup if you do not want to install all the supporting gems and libraries. You can develop in this app with a native rails install, if you prefer.
However, there is also a docker image setup if you do not want to install all the supporting gems and libraries.
Please note: The guard watch session does not run all watches correctly in the docker container. The only issue this causes is all the automation is not 100%. Simply manually kick off the runners occasionally by hitting return in the session.
To use the docker container, you need to install and launch docker, which can be found here: To use the docker container, you need to install and launch docker, which can be found here:
https://www.docker.com/products/docker https://www.docker.com/products/docker
@ -55,4 +81,6 @@ There are some convenience scripts included to make starting the container and r
## TODOs and notes ## TODOs and notes
* Question attachment path: http://dev.perficientxd.com/skill_assets/ * Question attachment path: http://dev.perficientxd.com/skill_assets/
* clean code / [Confident Ruby](http://www.confidentruby.com/) * clean code
* [Confident Ruby](http://www.confidentruby.com/)
* [POODR](http://www.poodr.com/)