Must use Python3
$ git clone https://github.com/hack4impact/next-gen-scholars.git
$ cd next-gen-scholars
$ pip install venv
$ python3 -m venv env
$ source env/bin/activate
Note: you must use python3+
$ xcode-select --install
Create a file called config.env
that contains environment variables in the following syntax: ENVIRONMENT_VARIABLE=value
. 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. You must have PLOTLY_USERNAME
and PLOTLY_API_KEY
set in order to run the application. Make an account on Plotly for more details.
PLOTLY_USERNAME=MyPlotlyUsername
PLOTLY_API_KEY=XXXXXXXXXXXX
MAIL_USERNAME=MySendgridUsername
MAIL_PASSWORD=MySendgridPassword
SECRET_KEY=SuperRandomStringToBeUsedForEncryption
CLIENT_SECRETS_FILE=NameOfFileWithClientSecret
Other Key value pairs:
ADMIN_EMAIL
: set to the default email for your first admin account (default is flask-base-admin@example.com
)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 config.env
file in any commits. This should remain private.
$ pip install -r requirements.txt
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:
$ sudo apt-get install libpq-dev
$ python3 manage.py recreate_db
$ python3 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 flask-base-admin@example.com
and password
respectively.
$ python3 manage.py add_fake_data
$ source env/bin/activate
$ honcho start -f Local
Before you submit changes to next-gen-scholars, you may want to autoformat your code with python manage.py format
.