Skip to content

A burner phone application powered by Nexmo. Winner: Vonage Intern Innovation Challenge, 2018

Notifications You must be signed in to change notification settings

kasey-mcfadden/SafeChat

Repository files navigation

Vonage Internship Experience Innovation Challenge Winner - Safe Chat

A burner phone application powered by Nexmo

Codebase for Team 2, winner of 2018 VINE Innovation Challenge

Kasey McFadden, Christine Mauro, Matthew Lu, Regine Lewis, Ashna Momin


Demo Videos

Academic Context Demo

Dating Context Demo


Requirements

  1. Python 3
  2. Nexmo
  3. IBM Watson
  4. AWS Lambda, API Gateway, RDS DB Instance

Installation

1. Clone this repository

cd /path/to/repository/spot

git clone https://github.com/km-vonage/burner.git


2. Install Requirements

pip install -t /path/to/burner -r requirements.txt


3. Create AWS Lambda function

Create a new Lambda function > Author from scratch

Basic information

Name: burner

Runtime: Python 3

Lambda function code

Code entry type > Upload a .ZIP file

Upload > Compress and upload this cloned repository: burner.zip

Lambda function handler and role

Handler: interact.lambda_handler

Role > Choose an existing role: IPA-Lambda

Advanced settings

Memory: 128 MB

Timeout: 6 sec


4. Create API in API Gateway

Edit swagger file: open burner-swagger.json > specify your AWS host ("host", line 7)

Create an API

Import from Swagger > Select Swagger File: burner-swagger.json

Import

Set up methods for /auth, /auth/code, /interact, and /notifications:

Integration type: Lambda Function

  • Use Lambda Proxy integration

Lambda Region: same region as Lambda Function

Lambda Function: burner

Save

Select Actions > Deploy API > Deploy

In the Stage Editor interface, take note of the Invoke URL.


5. Create RDS Database

Use the commands in the burner.ddl file to create a new database with a table titled 'clients'.

Your 'clients' table will look something like this once users have registered for burner:

id     credentials  
12345678999 google-creds
19876543210 encoded-creds

6. Integrate Nexmo

Once you've registered for an account and have received a virtual number, edit your number.

Webhook URL: https:// INVOKE-URL /interact

Ignore the voice options - these do not matter for our project.


7. Integrate IBM Watson

Create a new Watson Conversation Workspace by importing a workspace.

Choose watson_workspace.json and select Import Everything (Intents, Entities, and Dialog).

View the details of your imported workspace and take note of the Workspace ID.

Grab your Watson Conversation Service Credentials and keep track of these values.


Credits

A project by Kasey McFadden, overseen by Murali Ramsunder, inspired by Bismarck Paliz

About

A burner phone application powered by Nexmo. Winner: Vonage Intern Innovation Challenge, 2018

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages