Jobwaffle will help you find a job you're interested and passionate about. Using a quantitative approach, we match employees with employers.
Jobwaffle is open source. There's a lot of technical setup so stick with the installation steps below.
In 'secret.py', enter your own fields for SECRET_KEY, AWS_ACCESS_KEY_ID, EMAIL_HOST, etc. The version on GitHub are fake info. Don't push your version of secret.py onto version control (add to your .gitignore file).
Create the Postgresql database
Launch the postgresql db before running the django server.
Setting up Login (Social Auth)
Jobwaffle allows you to sign up using a social media account (e.g. Facebook, Google Plus, Twitter) thanks to the django-allauth library. At this moment, you'll need to set up your social account in the database before the site will work.
- Go to Facebook's Developer Program and register your application
- You'll get a
- Under the Django admin, add provider 'Facebook' under 'Social Accounts', 'Social Applications'.
- Make sure to add in the actual site (e.g. www.jobwaffle.com) as well as available sites (
- Use 'pip', virtualenv', and 'virtualenvwrapper'
- Make virtualenv: $
- Activate virtualenv: $
- Install requirements: $
pip install -r requirements.txt
Launch Django Server
- Get static files: $
python manage.py collectstatic --setting=jobwaffle.mysettings.dev_will
- Sync the database: $
python manage.py migrate --setting=jobwaffle.mysettings.dev_will
- Launch dev server: $
python manage.py runserver --setting=jobwaffle.mysettings.dev_will
- On local Mac, start ElasticSearch with:
- To build your search index, do:
python manage.py rebuild_index --settings=jobwaffle.mysettings.dev_will
- To rebuild your search index, do:
python manage.py update_index --settings=jobwaffle.mysettings.dev_will
Launch on Heroku
Note: You need to add a 'settings.py' file for Heroku; I'm taking the site off Heroku (even though the below instructions should work). Instead, I'm using Docker with AWS. See below on how to setup with Docker.
- Install Heroku Toolbelt on your dev machine (setup by adding ssh keys and )
- Login: $
- Create Heroku app: $
- Rename Heroku app: $
heroku rename jobwaffle
- Push code to Heroku
git push heroku master~~
- Start the processes in your Procfile with
Dockerfile is available on DockerHub here
- Install Docker and Docker-Compose on your development machine
- Use Docker-Compse to build the dev environment:
docker-compose run web
- Then run
docker-compose up -dto run your containers in daemonized mode
- Then run
docker-compose run web python manage.py syncdb
Other helpful options include:
docker run -t jobwaffle_webto go into container
docker-compose stopto stop your containers
docker-compose run web python manage.py migrate
docker-compose run web python manage.py collectstatic
- Run only functional tests using: $
python manage.py test functional_tests --setting=jobwaffle.mysettings.dev_will
- Run only unit tests using: $
coverage run manage.py test --settings=jobwaffle.mysettings.dev_will
- Run both functional and unit tests using: $
python manage.py test --settings=jobwaffle.mysettings.dev_will
- Get a coverage report using: $
- You can specify to see all the tests with
-v 2(verbose output) and
-v 3(very verbose output)
.travis.ymlfile is for continuous integration settings. The idea is that each build is checked in and verified by an automated build to detect problems early.
- Builds shown here
- Coveralls shows how much of your project is covered by tests.
- Coverage shown here