Inspiration

Our inspiration for RhettAlerts comes from the lack of awareness for Boston University Campus-wide events. Our team’s solution to tackle this problem is an unobtrusive event messaging service with the simplest sign-up process. We were inspired to make use of the Twilio SMS notification service and the CockroachDB’s SQL database to accomplish an automated project that provides value and meaning to the BU community.

How the Project was Built

Our team used BeautifulSoup to scrape calendar event details from Boston University’s calendar website from its public .xml file. We then structured the data, and stored the information into a CSV file. Separately, we have a cloud-hosted, React-based sign-up portal which authenticates BU student users, and prompts for a phone number to register for the service. The phone number is sent to a CockroachDB database cluster. Then, every morning at 7am, our script scrapes BU event calendar to create a summary of the day’s event, and uses Twilio to send a message to every registered number.

Challenges

1. Web-Scraping Challenges:

Our biggest challenge was scraping the data from BU’s event calendar website that made it difficult to access URLs of individual days and events (so we had to construct them from dates and ids). Our team approached the project with Selenium, then regular expressions paired with BeautifulSoup, and then settled on using ids to isolate essential elements.

2. CockroachDB Challenges:

Our next biggest challenge, that took up a lot of our time, was setting up our CockroachDB system using both Javascript and Python. There were a lot of difficulties because CockroachDB was new for us. Calls to the database didn’t follow conventional SQL calls, and we encountered restrictions with limited syntax and database table space.

3. Twilio Challenges

The messaging provided an additional challenge for our team from the limitations set by only having access to a trial account. The trial limited notifications to verified numbers tied to the account, and limited messages to 1000 characters; so we had to be efficient in formatting essential information while also making sure to include all the events on the calendar for that day.

What We Learned

  1. Our team learned new systems, namely the Twilio and CockroachDB services. From this we gained new experience and practice with familiar concepts in new systems
  2. Our team learned new ways to scrape, organize, and port data from back-end to front-end. From this we gained a better understanding of how to build a custom system with detailed back-end structure.
  3. Our team learned how to break-down higher-level tasks, and to divide-and-conquer the task in a smooth work-flow where we convened for meetings on ideas and debugged issues together. From this we gained a better understanding of how to work as a team, and how to share and build on each other’s ideas.

Future Additions

  1. More sources for calendar events to further improve visibility of BU events
  2. Customizable features in register portal to tailor notifications (example: specific sign ups for different categories such as sporting events)
Share this project:

Updates