This is a simple web app for advertising research projects to students. People can post short descriptions of what they're working on, and potential researchers can filter the list to find opportunities and contact information. The idea is to deploy it at Cornell CS as a way to broaden participation in undergraduate research.
You will need Python 2.7.
Here's how to get a copy of the server running on your machine.
-
First, make sure you have pip.
-
Then, install virtualenv if you don't have it already:
pip install virtualenv
-
Create a virtual environment:
virtualenv venv
-
Install the dependencies:
./venv/bin/pip install -r requirements.txt
-
Initialize a database:
./venv/bin/python db_create.py
-
Now you can run the server:
./venv/bin/python ./run.py [debug]
Once the server is running (in debug mode), you might want to populate it with some sample data. The populate_data.sh
script will add some of that.
If you update the Sass source files, use this to update the CSS:
sass --watch server/static/scss:server/static/css
You will want to configure the production version of the server. Create a Python file with at least values for SECRET_KEY
and BASE_URL
. When starting the application, point the REMATCH_CONFIG
environment variable at this file.
Here's a straightforward way to deploy using Gunicorn. Install the dependencies into a virtualenv, as above, and then also install Gunicorn into the same virtualenv:
./venv/bin/pip install gunicorn
Then, start Gunicorn like so:
REMATCH_CONFIG=config.py ./venv/bin/gunicorn server:app
Then you can put the Gunicorn server behind a proper public web server.
See config_default.py
for some options you can override in the configuration.
The application also supports SAML-based single sign-on as an alternative to username/password authentication. Set the SAML_METADATA_URL
to the URL of the XML file describing the SAML endpoint.
The tool was originally developed as a CS 5150 project by a team consisting of Michael White, Tiffany Zheng, Aishwarya Rameshkumar, Yu (Nancy) Gu, Simeon Videnov, Kristian Langholm, Leon Zaruvinsky, and Brandon Giraldo. It is currently maintained by Adrian Sampson. The license is MIT.