A Yammer/Django Application application built for the gamification of learning the names of your fellow colleagues. One difficult part of joining a new company is putting names to faces. Utilizing Yammer OAuth, this webapp can make the learning process more fun.
Quick-Start Guide
1. Yammer Client Application
2. Development Environment Setup
- Clone this repo
- Copy
face_it/settings/local.py.example
toface_it/settings/local.py
- Add your keys (created in step 1) to
face_it/settings/local.py
- Install Vagrant and Virtualbox
- Initialize the vagrant box -
vagrant up
- Log into the server -
vagrant ssh
- Create a super user using the command
python manage.py createsuperuser
- Install & Start Redis Cache server prior in a separate shell -
redis-server
- Launch the app -
python manage.py runserver 0.0.0.0:8000
- Access the app in your browser -
http://localhost:8111
3. Heroku Deployment (Optional)
Required Items
- Redis Server
- AWS Bucket
- Postgres Server
Steps
heroku create {appName}
heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git
git push heroku master
heroku addons:add heroku-postgresql
- Create a RedisToGo account
heroku addons:add redistogo
-
heroku config:add REDISTOGO_URL={instanceName}
- i.e instanceName = redis://redistogo:xxxx@test.redistogo.com:10355/
- Create an AWS account to have access to an AWS Bucket
- Create environment variables specific for the created aws bucket:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_STORAGE_BUCKET_NAME
- Create environment variables specific for the created aws bucket:
heroku ps:scale web=1
heroku run python manage.py syncdb
Required Environment Variables Checklist
Environmental Variable Name | Value (example) |
---|---|
SOCIAL_AUTH_YAMMER_KEY | xxxxxxx |
SOCIAL_AUTH_YAMMER_SECRET | xxxxxxx |
NPM_CONFIG_PRODUCTION | true |
DJANGO_SETTINGS_MODULE | face-off.settings.production |
REDISTOGO_URL | redis://redistogo:xxxx@test.redistogo.com:10355/ |
AWS_ACCESS_KEY_ID | xxxx |
AWS_SECRET_ACCESS_KEY | xxxx |
AWS_STORAGE_BUCKET_NAME | xxx-bucket |
Tests
Unit Tests
- Load test fixture data
./manage.py loaddata "core/fixtures/core-test.json"
- Applying fixtures pushes pre-populated data into your application.
- Run unit-tests -
python manage.py test
Selenium Tests w/ Behave
- start behave instance -
behave core/features