Skip to content

hack4impact-upenn/immigrant-defense-project

Repository files navigation

Immigrant Defense Project

Team

  • Katie Jiang (Project Lead)
  • Vaibhaw Ladha
  • Ivan Esmeral
  • Nina Chang
  • Sarah Raines
  • Siddharth Kumar
  • Stephanie Shi
  • Steven Bursztyn
  • Suzanne Knop

Setup

Clone the project
$ git clone https://github.com/hack4impact/immigrant-defense-project.git
$ cd immigrant-defense-project
Initialize a virtualenv
$ pip install virtualenv
$ virtualenv -p python3 env
$ source env/bin/activate
[Mac-only] Make sure XCode tools are installed
$ xcode-select --install
Add environment variables

Create a file called .env that contains environment variables in the following syntax: ENVIRONMENT_VARIABLE=value. You may also wrap values in double quotes like ENVIRONMENT_VARIABLE="value with spaces". For example, the mailing environment variables can be set as the following. We recommend using Sendgrid for a mailing SMTP server, but anything else will work as well.

MAIL_USERNAME=SendgridUsername
MAIL_PASSWORD=SendgridPassword
SECRET_KEY=SuperRandomStringToBeUsedForEncryption

Other key-value pairs:

  • ADMIN_EMAIL: set to the default email for your first admin account (default is [email protected])
  • ADMIN_PASSWORD: set to the default password for your first admin account (default is password)
  • DATABASE_URL: set to a postgresql database url (default is data-dev.sqlite)
  • REDISTOGO_URL: set to Redis To Go URL or any redis server url (default is http://localhost:6379)
  • RAYGUN_APIKEY: api key for raygun (default is None)
  • FLASK_CONFIG: can be development, production, default, heroku, unix, or testing. Most of the time you will use development or production.

Note: do not include the .env file in any commits. This should remain private.

Install the dependencies
$ pip install -r requirements.txt
Other dependencies for running locally

You need Redis, and Sass. Chances are, these commands will work:

Sass:

$ gem install sass

Redis:

Mac (using homebrew):

$ brew install redis

Linux:

$ sudo apt-get install redis-server

You will also need to install PostgresQL

Mac (using homebrew):

brew install postgresql

Linux (based on this issue):

sudo apt-get install libpq-dev
Create the database
$ python manage.py recreate_db
Other setup (e.g. creating roles in database)
$ python manage.py setup_dev

Note that this will create an admin user with email and password specified by the ADMIN_EMAIL and ADMIN_PASSWORD config variables. If not specified, they are both [email protected] and password respectively.

[Optional] Add fake data to the database
$ python manage.py add_fake_data

Running the app

$ source env/bin/activate
$ honcho start -f Local

For Windows users having issues with binding to a redis port locally, refer to this issue.

Formatting code

Before you submit changes, autoformat your code with python manage.py format.

License

MIT License