now managers and reviewers can only see quizzes and completed results for those quizzes they have been assigned to.
Skill Assessment Quiz
This application manages quizzes intended to be used as pre-interview skill assessments.
Development Guidelines
Please follow these guidelines as close as possible. Discuss and question them as needed.
- Run Guard while developing.
bundle exec guard
- 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.
- Review the coverage report, keeping coverate > 90%.
- 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
- 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.
- Rebase feature branches onto develop before merging.
- 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
- 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
./rebuild-dev-db.sh
is a convenience script to rebuild and refresh your dev db with the fixture data.
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. 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: https://www.docker.com/products/docker
Once the container is started, you can still edit files from your host project directory.
visit http://localhost:3000 like normal
There are some convenience scripts included to make starting the container and rails app easier.
./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
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
Deploying a new version
- ssh into server
- cd into app root
- run deploy.sh
TODOs and notes
- Question attachment path: https://dev.perficientdigital.com/skills-app-images/
- clean code