SMS Broadcast System for Events
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
client
less
lib
static
test
views
.gitignore
.jscsrc
.jshintrc
.travis.yml
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Gruntfile.js
ISSUE_TEMPLATE.md
LICENSE
PULLREQUEST.md
PULL_REQUEST_TEMPLATE.md
README.md
api.md
app.js
bower.json
package.json

README.md

Bandcast

This application is outdated, but will be updated soon!

Two Way SMS Communication for Events Bandcast allows Event Attendees and Event Organizers to communicate over a common phone number. Organizers are able to directly text users as well as message every attendee at once. Attendees are able to ask questions or provide feedback by texting the bandcast number.

Bandcast Scenarios:

Bandcast Scenarios

Bandcast Flowchart:

Flow Chart

Application Setup

Configure Bandwidth Application Platform

Requires App Platform Account with provisioned number and application setup.

Provisioning Number Instructions:

First purchase a number

Configuring application
Create new Application

First create a new Application.

  • Set the Application Name
  • Set the Call URL
  • Set the Message URL

application configure

Add Number to Application

Click the Add Numbers Button at the Bottom

add number

Select the number ordered above

select number

Click the save button

Final Configuration

Once configured the application should look something like this:

final setup

Setup Database

Requires Postgresql connection. Follow the instructions here:

Then Create the database within Postgresql.

Environment Varaibles

bandcast uses environment varaibles to configure the application.

Database Related Variables

DB_USER - Username for Postgresql database

DB_PASS - Password for Postgresql database

DB_NAME - Name of Database

DB_HOST - Location of Postgresql database

DB_PORT - Database port

Catapult Related Varaibles

CATAPULT_BASE_URL - The location of the catapult sever. Defaults to 'https://api.catapult.inetwork.com/v1'

CATAPULT_USER_ID - The Catapult User ID

CATAPULT_API_TOKEN - The Catapult API Token

CATAPULT_API_SECRET - The Catapult API Secret

CATAPULT_END_POINT - The path provided for the catapult callback. Defaults to '/catapult'

BANDCAST_NUMBER - The Number for Broadcast to use

Application Specific Varaibles

APP_LOG_LEVEL - Logging level, defaults to 'debug'

REQUEST_LOG_LEVEL - Logging level for requests, defaults to default

PORT - Server Port, defaults to '8081'

ORGANIZER_SUBSCRIBE_STRING - String used to subscribe organizers

BANDCAST_DEFAULT_ADMIN - Default user for basic auth for API and Web interface

BANDCAST_DEFAULT_PASSWORD - Default password for basic auth

Running Locally

Tip for running locally

Create an application and provide the location of the server. To run locally I use ngrok

Installing and Running

Once the environment variables are set run:

npm install
npm start

Add users

Add users with the endpoint

POST /users

With body:

{
 "role":"organizers | attendees",
 "tn":"<tn-of-user>",
 "firstName" : "<optional-first-name>",
 "lastName" : "<optional-last-name>"
}