Skip to content
server side code alert people when their members of congress are holding town halls near them.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

townhall-SMS-alerts Build Status

Motivation: Many people want to know when their member of congress is holding a town hall. Currently they can access this information by going to and by signing up for email alerts. We want to make this information even more readily available by allowing people to access it with their phones via SMS.

Running locally:

  • you will need a twilio number and a tunneling service, and a firebase database

Setting up twilio

  • tunneling service: follow directions here

Setting up firebase

  • the two endpoints you need are townHalls and zipToDistrict
  • make a new firebase database, add these endpoints and upload JSONS from data folder.

in your .env file

  • FIREBASE_PROJECT_ID : project id from firebase, usually your project name
  • FIREBASE_PRIVATE_KEY : private key provided by firebase
  • FIREBASE_CLIENT_ID : provided by firebase, it's the client email
  • PORT : defaults to 3000
  • SESSION_SECRET : for express-session


  • run npm i
  • run npm start or nodemon, will tell you the port you are on
  • open new terminal window, run ./ngrok http [PORT]
  • text your twilio number


User will text a number their zip code, in response they will get all upcoming events in their district (including Senate events). The event information will include the Member of congress, the title, and a link to directions.

  • Current testing phonenumber in production: 415-231-1324
  • Zip with events: 27278

Stretch Goals:

Ongoing SMS alerts

  • Users will be able to sign up for ongoing alerts in their area.
  • We will send texts when a new event is posted to the database.
  • First version:
    • add users with events to a temp queue endpoint, and then at ~1pm pacific time, send out all texts with events within a time cutoff (1 or 2 weeks), and delete from the queue.
  • Second version:
    • Be smarter about when we send texts, based on when and where the event is occuring
    • send out alerts when events are changed (but only date or location).


We will be using town hall project's firebase database. Firebase docs.


We will be using Twilio's API. Twilio docs.

You can’t perform that action at this time.