Version: 0.1.0
GeekSurvey is a web platform for conducting software engineering research
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Must have a machine with git, python3, and pip
git clone <this repo>
cd <this repo>
pip install requirements.txt
python manage.py makemigrations geeksurvey
python manage.py migrate
python manage.py test
For a simple locally deployed version of GeekSurvey, do
python manage.py runserver
- Go to
localhost:8000
in the web browser.
Features that integrate with other web APIs typically do not work when geeksurvey is deployed locally. This includes OAuth by Github and Google, PayPal payments, and email services.
Typically, various credentials for these APIs are stored in a .env file at the root of the project. These can be left out for local testing
To deploy GeekSurvey to a server, a .env file must be in the project root containing:
- A valid Django secret key used for encryption
GEEKSURVEY_SECRET_KEY = "some_data"
- A debug flag set to false (0) for deployment
GEEKSURVEY_DEBUG = 0
- Valid Gmail App credentials for email
GMAIL_APP_USERNAME = "user@gmail.com"
GMAIL_APP_PASSWORD = "sample-app-password"
- Valid Google App credentials for OAuth
GOOGLE_AUTH_CLIENT = "some_data"
GOOGLE_AUTH_SECRET = "some_data"
- Valid GitHub App credentials for OAuth
GITHUB_AUTH_CLIENT = "some_data"
GITHUB_AUTH_SECRET = "some_data"
- Valid PayPal Developer credentials for all payments
PAYPAL_CLIENT_ID = "some_data"
PAYPAL_CLIENT_SECRET = "some_data"
- Valid PayPal Business account credentials for paying out to users
PAYPAL_BIZ_ACCOUNT = "user@example.com"
GeekSurvey can be published on the web by configuring nginx and gunicorn to run the project through a WSGI. Here is a good reference for working through this process.
Take care to host the static files separately to support caching. This requires
python manage.py collectstatic
to collect the static files into a single folder.
GeekSurvey will fail if it is not hosted with HTTPS, so make sure your domain name is certified and your nginx config uses SSL.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
- Tim Giroux - initial work - timgiroux
- Kyle Austria - initial work - kyleaustria8
- Gustavo Valencia - initial work - GustavoMiguelValencia
- Pengfei Liu - initial work - Pengfei-Y
This project is licensed under the MIT License - see LICENSE file for details.