Hercules - QMS Twilio Phone Number AutoAcquisition Challenge in Node.js!

Register
Submit a solution
The challenge is finished.

Challenge Overview

Welcome to the QMS Twilio Phone Number AutoAcquisition Challenge!

QMS uses Twilio for sending SMS messages. Currently, we purchase phone numbers via the Twilio website and "load" them into Twilio and it randomly cycles through this pool of numbers when it sends out a message. We do this because phone service providers like AT&T have identified us as a spammer if we send too many messages from the same phone number.



Final Submission Guidelines

OBJECTIVE:

Make QMS phone number cycling process self-sustainable and dynamic.

APPROACH:

Instead of cycling thru preloaded phone numbers, the QMS app will:

  • create a phone number via the API.
  • use this phone number to send a fixed number (configurable) of messages.
  • once that fixed number is hit the app will close that number and request a new one.

REQUIREMENT:

  1. Add configuration values to QMS for:
    1. phoneNumber: string for storage of current number to use
    2. messageCount: integer of current uses of phoneNumber
    3. messageLimit: integer maximum value for uses of phoneNumber
  2. Default messageLimit configuration value to 0 if configuration values are empty.
  3. App will call to twilio at startup to:
    1. Acquire list of current phone numbers and assign first one to phoneNumber.
    2. Request new number if none are present and assign to phoneNumber.
  4. App will update the messageCount by 1 on successfully send using the acquired phoneNumber.
  5. If the messageCount equals the messagesLimit:
    1. Call to Twilio and close the phoneNumber.
    2. Call to Twilio and create a new phoneNumber.
    3. Reset messageCount to 0 and continue on as per usual.

 

REFERENCE:

SETUP

ELIGIBLE EVENTS:

2015 topcoder Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30046582