Assigns the coding challenge to a specific GitHub user, by making them their own GitHub repository to push their answers to.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.profile
source ~/.profile
brew install python
sudo gem install foreman
git clone https://github.com/jschementi/challenge.git
cd challenge
pip install -r requirements.txt
foreman start
Open http://localhost:5000 in web browser.
This app can easily be deployed to Heroku, Digital Ocean w/Dokku, AWS Elastic Beanstalk, or your own custom server.
coding-challenge.py can also be used as a command-line tool.
In Terminal.app, run:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.profile
source ~/.profile
brew install python
git clone https://github.com/jschementi/challenge.git
cd challenge
pip install -r requirements.txt
NOTE: You'll be prompted to install Xcode command-line tools if you don't already have them installed.
cp example.env .envThen set the following environment variables:
| Variable | Example | Description |
|---|---|---|
| GITHUB_CLIENT_ID | 1234567890abcdefghij | Github OAuth Client ID |
| GITHUB_CLIENT_SECRET | 1234567890abcdef1234567890abcdef12345678 | Github OAuth Client Secret |
| GITHUB_TOKEN | 1234567890abcdef1234567890abcdef12345678 | Generate Personal Access Token |
| GITHUB_ORG | OrgName | Name of your github organization |
| GITHUB_ADMIN | UserName | Name of your github admin |
| HOMEPAGE | https://github.com/ | Homepage of your organization |
| SECRET_KEY | SecretPassword12345 | A secret key for your installation, perhaps generated via openssl rand -hex 32 |
| GITHUB_ENGINEERING_TEAM | EngineeringTeam | The github team for your engineers |
| GITHUB_RECRUITING_TEAM | RecruitingTeam | The github team for your recruiters |
Assign the coding challenge to a GitHub username:
./coding_challenge <github-username>
Remove the candidate from the repo and create a pull request for the team to review:
./coding_challenge --review <github-username>
After their interview process is complete and we no longer need to reference their solutions, you can unassign the coding challenge:
./coding_challenge --remove <github-username>