2016-07-26 13:50:35 -05:00
# Skill Assessment Quiz
2016-07-26 11:59:23 -05:00
2016-07-26 13:50:35 -05:00
This application manages quizzes intended to be used as pre-interview skill assessments.
2016-07-26 11:59:23 -05:00
2016-09-23 10:55:53 -05:00
## Development Guidelines
2016-08-12 00:24:15 -05:00
2016-09-23 10:55:53 -05:00
Please follow these guidelines as close as possible. Discuss and question them as needed.
* Run Guard while developing.
2016-08-12 00:24:15 -05:00
* `bundle exec guard`
2016-09-23 10:55:53 -05:00
* Always execute a full run before a push (simply hit return in your guard session).
* Honor RuboCop warnings.
* Write tests, And keep them green.
* 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.
2016-08-12 00:24:15 -05:00
* `git config --global pull.rebase true`
2016-09-23 10:55:53 -05:00
* Feature branches are nice.
* Rebase feature branches onto develop before merging.
* `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.
2016-08-12 00:24:15 -05:00
2016-09-23 10:55:53 -05:00
## Setup
2016-08-12 00:24:15 -05:00
* clone
* checkout develop
* bundle
* npm install
* bower install
* cp config/application.yml.sample config/application.yml
* edit and update proper values to application.yml
* rake db:setup
* rake db:migrate
* rake db:fixtures:load
2016-09-23 10:55:53 -05:00
* `./rebuild-dev-db.sh` is a convenience script to rebuild and refresh your dev db with the fixture data.
2016-07-26 11:59:23 -05:00
2016-08-12 00:24:15 -05:00
## Docker
2016-07-26 11:59:23 -05:00
2016-09-23 10:55:53 -05:00
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.
2016-08-12 00:24:15 -05:00
To use the docker container, you need to install and launch docker, which can be found here:
https://www.docker.com/products/docker
2016-07-26 11:59:23 -05:00
2016-08-12 00:24:15 -05:00
Once the container is started, you can still edit files from your host project directory.
2016-07-26 11:59:23 -05:00
2016-08-12 00:24:15 -05:00
visit http://localhost:3000 like normal
2016-07-26 11:59:23 -05:00
2016-08-12 00:24:15 -05:00
There are some convenience scripts included to make starting the container and rails app easier.
2016-08-03 08:55:30 -05:00
2016-08-12 00:24:15 -05:00
#### `./start-docker.sh`
* Execute from terminal, on the host machine, in the project directory
- This will pull the image from dockerhub, if needed
- Create and start up container
2016-08-03 08:55:30 -05:00
2016-08-12 00:24:15 -05:00
#### Once in the container:
* `./start-dev.sh`
* will spin up a dev session with tmux
* `./start-server.sh`
- starts up just rails server for viewing application
2016-08-03 08:55:30 -05:00
2016-11-18 17:43:24 -06:00
## Deploying a new version
* ssh into server
* cd into app root
* run deploy.sh
2016-08-03 08:55:30 -05:00
2016-08-12 00:24:15 -05:00
## TODOs and notes
2016-08-03 08:55:30 -05:00
2016-11-18 17:43:24 -06:00
* Question attachment path: https://dev.perficientdigital.com/skills-app-images/
2016-09-23 10:55:53 -05:00
* clean code
* [Confident Ruby ](http://www.confidentruby.com/ )
* [POODR ](http://www.poodr.com/ )