What is it?

The NCSU Menu Notifier is a web app that will automatically text you when your favorite foods are being served any NCSU dining hall. Like this:

Screenshot of a text message

What else can it do?

It can help you track your calorie intake whenever you eat at a dining hall. In just a few clicks, you can pick which dishes you ate and have the total number of calories graphed for you!


Screenshot of the calorie graph

How do I use it?

First time users: On the home page, put in your 10-digit phone number (no parentheses or dashes required) and pick your favorite dish from the dropdown. You will be sent a text to verify your phone number. You can add more dishes and fine-tune your notifications on the preferences page.

Returning users: You can access your account preferences here. There, you can change which meals and which dining halls you want to be notified about. You can also add and remove multiple dishes to your account.


How does it work under the hood?

This website uses the Django Web Framework, a popular Python framework for websites used by Pinterest, Instagram, and many others.

The menu is updated every day by using a custom Python web scraper and a package called beautifulsoup. Each dish is then saved in a PostgreSQL database.

Text messages are sent by using Twilio's API, which is the same API used by Uber to programmatically send text messages.

The site and the database is hosted on Heroku, and the code repository is hosted on GitLab. GitLab also provides a continuous integration server for this site.


How do I stop receiving texts?

If you text "STOP" to this site's phone number, then you will no longer receive any messages from ncsu-mn. The next time ncsu-mn would normally send you a text, your phone number and associated data will be purged from the database. You can resume by sending "START" and signing up again.

If you just want to temporarily stop receiving texts, you can just remove all the menu items from your preferences page.


What text commands can I send to ncsu-mn?

You can reply to ncsu-mn's phone number with any of the following (case-insensitive) commands:

  • STOP: Stop receiving messages and purge your data from ncsu-mn.
  • START: Allows ncsu-mn to send you messages again after sending "STOP". You may have to sign up again.
  • DEMO: Sends an example text which includes all the menu items and dining halls you've enabled.
  • LOGIN: Sends a "magic link" which you can click to instantly log in to the ncsu-mn website.