Redis-To-Go is a technology used in this project. Heroku has deprecated this service, and will no longer support Redis-To-Go
- Santiago Buenahora
- Roberta Nin Feliz
- Rani Iyer
- Katie Jiang
- Hunter Lightman
- Hana Pearlman
- Ben Sandler
- Stephanie Shi
- Abhinav Suri
A signup page for maps4all to allow for one-click deployment of the maps4all project
$ git clone https://github.com/hack4impact/maps4all-signup.git
$ cd maps4all-signup
$ pip install virtualenv
$ virtualenv -p python3 venv
$ source venv/bin/activate
(If you're on a mac) Make sure xcode tools are installed
$ xcode-select --install
$ pip install -r requirements.txt
You need to install Foreman and Redis. Chances are, these commands will work:
$ gem install foreman
For Mac (using homebrew):
$ brew install redis
For Linux (Fedora)
$ sudo dnf install redis
For Linux (Debian/Ubuntu):
$ sudo apt-get install redis-server
If you don't want to install redis locally, you can use Redis container with docker
$ docker pull redis:latest
$ docker run -d -p 6379:6379 --name maps4all-redis redis:latest
Create a config.env
file in your directory and include the following variables:
MAIL_PASSWORD
andMAIL_USERNAME
are your login credentials for Sendgrid.TWILIO_ACCOUNT_SID
andTWILIO_AUTH_TOKEN
allow you to use the Twilio API to send text messages. They can be obtained through the Twilio console.ADMIN_EMAIL
andADMIN_PASSWORD
allow you to login as an administrator to Maps4All-Signup on your local machine.HEROKU_CLIENT_ID
andHEROKU_CLIENT_SECRET
allow you to host the new Maps4All instances on Heroku by enabling Heroku authentication. To obtain these credentials, create an account on Heroku. Then, select Settings from the Manage Account option on Heroku. Add a new API Client with a name and a callback of the formhttp://localhost:5000/auth/heroku/callback/
if you are deploying locally (otherwise use something likehttp://your_domain.com/auth/heroku/callback
) to get the HEROKU_CLIENT_ID and HEROKU_CLIENT_SECRET.CF_API_EMAI
,CF_API_KEY
, andCF_ZONE_IDENT
allow you to access new Maps4All instances as subdomains of maps4all.org. These can be obtained through the Cloudflare console.
Your config.env
file should look something like this:
MAIL_PASSWORD=XXXXXXXXXXXXXXX
MAIL_USERNAME=XXXXXXXXXXXXXXX
TWILIO_ACCOUNT_SID=XXXXXXXXXXXXXXX
TWILIO_AUTH_TOKEN=XXXXXXXXXXXXXXX
ADMIN_EMAIL=XXXXXXXXXXXXXXX
ADMIN_PASSWORD=XXXXXXXXXXXXXXX
HEROKU_CLIENT_ID=XXXXXXXXXXXXXXX
HEROKU_CLIENT_SECRET=XXXXXXXXXXXXXXX
CF_API_EMAIL=XXXXXXXXXXXXXXX
CF_API_KEY=XXXXXXXXXXXXXXX
CF_ZONE_IDENT=XXXXXXXXXXXXXXX
$ python manage.py recreate_db
$ python manage.py setup_dev
$ source venv/bin/activate
$ honcho start -f Local
Then navigate to http://localhost:5000
on your preferred browser to open the web app.
├── Procfile
├── README.md
├── app
│ ├── __init__.py
│ ├── account
│ │ ├── __init__.py
│ │ ├── forms.py
│ │ └── views.py
│ ├── admin
│ │ ├── __init__.py
│ │ ├── forms.py
│ │ └── views.py
│ ├── assets
│ │ ├── scripts
│ │ │ ├── app.js
│ │ │ └── vendor
│ │ │ ├── jquery.min.js
│ │ │ ├── semantic.min.js
│ │ │ └── tablesort.min.js
│ │ └── styles
│ │ ├── app.scss
│ │ └── vendor
│ │ └── semantic.min.css
│ ├── assets.py
│ ├── decorators.py
│ ├── email.py
│ ├── instances
│ │ ├── __init__.py
│ │ ├── forms.py
│ │ ├── utils.py
│ │ └── views.py
│ ├── main
│ │ ├── __init__.py
│ │ ├── errors.py
│ │ ├── forms.py
│ │ └── views.py
│ ├── models
│ │ ├── __init__.py
│ │ ├── instance.py
│ │ ├── miscellaneous.py
│ │ └── user.py
│ ├── static
│ │ ├── fonts
│ │ │ └── vendor
│ │ ├── images
│ │ └── styles
│ │ └── app.css
│ ├── templates
│ │ ├── account
│ │ │ ├── email
│ │ │ ├── join_invite.html
│ │ │ ├── login.html
│ │ │ ├── manage.html
│ │ │ ├── options.html
│ │ │ ├── register.html
│ │ │ ├── reset_password.html
│ │ │ └── unconfirmed.html
│ │ ├── admin
│ │ │ ├── index.html
│ │ │ ├── manage_user.html
│ │ │ ├── new_user.html
│ │ │ └── registered_users.html
│ │ ├── errors
│ │ ├── instances
│ │ │ ├── email
│ │ │ ├── create_instance.html
│ │ │ ├── heroku_authorize.html
│ │ │ ├── launch_form.html
│ │ │ ├── launch_status.html
│ │ │ ├── verify_needed.html
│ │ │ ├── index.html
│ │ │ └── manage.html
│ │ ├── layouts
│ │ │ └── base.html
│ │ ├── macros
│ │ │ ├── form_macros.html
│ │ │ ├── check_password.html
│ │ │ ├── page_macros.html
│ │ │ └── nav_macros.html
│ │ ├── main
│ │ │ ├── index.html
│ │ │ ├── faq.html
│ │ │ ├── about.html
│ │ │ └── partners.html
│ │ └── partials
│ │ ├── _flashes.html
│ │ └── _head.html
│ └── utils.py
├── config.py
├── manage.py
├── requirements
└── tests
├── test_basics.py
└── test_user_model.py