Skip to content

harshithvh/twilio-messenger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

twilio-messenger

Create a Task Management API with robust features including:

  • Automated Priority Management: Utilizes cron jobs to dynamically adjust task priorities based on their due dates according to a defined policy.
  • Twilio Integration: Integrates with Twilio for voice call reminders based on user priority. Calls are made in ascending order of user priority (0 first, then 1, 2) when tasks become overdue, with safeguards to avoid calling subsequent users if a previous call is unanswered.

Basic Requirements

API Security: Implements JWT authentication to ensure secure access to APIs.

Input Validation: Validates user input for all API endpoints to prevent invalid data entry.

Error Handling: Provides user-friendly error messages for all potential issues encountered during API calls.

Tech Stack

MongoDB Postgres Postman JavaScript NodeJS ExpressJS Ngrok twilio

Reference

Running the Backend

  • Clone the repo:

    git clone https://github.com/harshithvh/twilio-messenger.git
    
  • Open directory in terminal:

    cd twilio-messenger
    
  • Create a .env file:

    MONGO_URI=mongodb://localhost:27017/{app}
    JWT_SECRET=JWT_SECRET_KEY
    WEBHOOK_API_KEY=WEBHOOK_API_KEY
    HOST_URL=NGROK_URL
    TWILIO_ACCOUNT_SID=YOUR_ACCOUNT_SID
    TWILIO_AUTH_TOKEN=YOUR_AUTH_TOKEN
    TWILIO_PHONE_NUMBER=YOUR_PHONE_NUMBER
    NODE_ENV=development
    
  • Install project dependencies:

    npm install
    
  • Fire up the server:

     nodemon server.js
    
  • Access api at:

    http://localhost:5000/
    

Application Structure

Click to expand!
  • 📂src
    • 📂config
      • 📝db.js
    • 📂controller
      • 📝subtask.controller.js
      • 📝task.controller.js
      • 📝user.controller.js
    • 📂cron
      • 📝makeCall.cron.js
      • 📝priority.cron.js
    • 📂middleware
      • 📝auth.middleware.js
      • 📝error.middleware.js
      • 📝webhookAuth.middleware.js
    • 📂models
      • 📝subtask.model.js
      • 📝task.model.js
      • 📝user.model.js
    • 📂routes
      • 📝subtask.routes.js
      • 📝task.routes.js
      • 📝user.routes.js
      • 📝webhook.routes.js
    • 📂utils
      • 📝generateJWT.util.js
      • 📝getPriority.util.js
      • 📝updateTask.util.js
    • 📝server.js(Entrypoint)

About

Task Management API with twilio phone reminder

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published