Creating authentic human connection in the modern world, via bear.
By: Eric Miller, Toby Shapinsky, Jared Briskman
Drawing inspiration from bear-as-a-service.
bear-with-me is a project of both software and social invention. Users call The Bear, who will connect their call with another random user, and give them a conversation prompt. This provides an unexpected yet intentional interaction.
From a technical perspective, bear-with-me is a python webapp integrated with twilio, and deployed on heroku.
Use pipenv
for dependency resolution. Installation instructions here.
Then resolve python dependencies with:
$ pipenv install
You will also need the heroku CLI. On Ubuntu:
$ sudo snap install heroku --classic
For development, a local postgresql db is recommended. Install postgres:
$ sudo apt install postgresql
On Ubuntu, this installs authorized to a dedicated unix account 'postgres'.
To create a separate account with a password:
$ sudo -i -u postgres
$ createuser <username>
$ createdb <dbname>
$ psql
# ALTER USER <username> WITH ENCRYPTED PASSWORD '<password>';
# GRANT ALL PRIVILEGES ON DATABASE <dbname> TO <username> ;
# \q
You may also need to modify your pg_hba.conf
to change local authentication from peer
or ident
to md5
.
More information found here and here.
Copy env.template
to env.local
and edit the variables inside to match your configuration.
To set the environment, simply $ source env.local
.
To change database schema, modify the models.py file, then commit the migration:
$ pipenv run flask db migrate -m "Changelog goes here"
Check the migration script, and apply with:
$ pipenv run flask db upgrade
To upgrade the production database, run:
$ heroku run upgrade
Upon inital setup, you will need to upgrade the local db prior to use.
Make sure all secrets are set in env.local
.
To start a local webserver, run:
$ pipenv run gunicorn app:app
Heroku server live at https://htl-p1-bear.herokuapp.com/ To deploy, push to the master branch on the heroku remote.