ryanhugh / searchneu

Search over Classes, Professors and Employees at NEU!
https://searchneu.com
GNU Affero General Public License v3.0
74 stars 18 forks source link

Automatic notifications when seats open up #10

Open ryanhugh opened 6 years ago

ryanhugh commented 6 years ago

It is pretty common for students to leave or switch classes between the class registration period and the start of the semester. This can cause seats to open up in classes that other students are hoping to sign up for! Lets add support for automatically notifying students when seats open up in classes that they want to take but couldn't sign up for. I did some searching around over the summer and it seems like best and cheapest way to notify students is with a Facebook Messenger Bot. The Facebook Bot code has been started and is in server.js.

Some of the other options I explored: SMS text messages: only supports mobile devices, costs money Email: Some people don't check their email that often and/or don't get notifications about new emails. Sending out large amounts of emails also costs money, but is very very cheap. Notifications on a mobile application: Would take a significant amount of effort to develop mobile applications for Android and iOS and submit them to the app store just to send notifications. Would also have to pay for developer accounts for both Android and iOS. ($30 + $100/yr) Facebook Messenger Bot: Works great on desktop, mobile, and other devices. Totally Free!!

If anyone wants to work on this let me know beforehand, it may take a lot of effort.

edward-shen commented 6 years ago

I definitely consider email and SMS to be off the table: no one considers email as a fast way of communication anymore (which speed is super critical for classes), and SMS doesn't scale well in the future.

Unless we effectively uproot the native class registration webpages on NEU's website, I don't think an app is a good idea, especially since the abilities of this website serves better as a webapp than an app. I do, however, have a dev account on Google Play, if we do decide to go through with it.

Regardless of which we begin to use, we'll need to also take in special consideration of user data. Future reading on how to safely handle user data may be necessary.

ryanhugh commented 6 years ago

Definitely! Facebook Messenger bot seems like a great way to notify people and I was playing with it a bit over the summer. This feature would also require us to add login and store some user data. I was looking into ways to do this and I'm down to use Google's Firebase to store them over a typical MongoDB/Postgres. Firebase is totally hosted on Google so we wouldn't have to host anything ourselves. This is great for both keeping stuff simple on production and helps a lot when new people want to setup Search NEU on their computer. Also, it has a pretty good UI for managing all the data in the DB in case we ever need to in and manually edit stuff. It also has some integration with login in with Google which we might be able to leverage. The Firebase free trial should be more than enough for what we need.

Let me know what you think!

ryanhugh commented 6 years ago

Some updates: We are going to use a FB bot for notifications and were just approved by FB for the pages_messaging and pages_messaging_subscriptions submission!

Here is how it is going to work when it is all done https://photos.app.goo.gl/rRhpr3oJPhIB4tvm2

davidshumway commented 6 years ago

On email and SMS, I beg to differ. This is coming from first-hand experience of using email to notify myself of important time-sensitive events* on a regular basis over the past ~10 years. Btw, look into SMS-via-email - it's as cheap as email!

Email: In the past, I've used email to alert myself when a class has opened up, and can attest to email being a reliable method. Then again, I happen to have a noise play every time an email comes in, on both my desktop (always on) and phone.

SMS: This is also great way to alert on time-sensitive events. But not typical SMS! Consider only SMS via email as the way to send SMS alerts. For details on SMS via email check around online for info, or check a random first search result: (https://20somethingfinance.com/how-to-send-text-messages-sms-via-email-for-free/).

* By time-sensitive, I refer to the desire to be alerted within 0-10 minutes of an event occurrence.

ryanhugh commented 6 years ago

I've talked to a bunch of students and we've decided that Facebook Messenger is the best way to notify students at NEU. Pretty much every student already has a Facebook which makes signing up notifications very easy, the feature is 100% free for us to run and has been working great so far.

Email/SMS is certianly something that we will keep track of and, if things change down the road, may add to the site. But for now we are going to stick with notifications via Facebook.

ryanhugh commented 6 years ago

Also update on the status of this feature:

We just pushed it live the other day and 30+ people have already signed up for notifications! I've been fixing bugs related to this feature over the last week or so and it is pretty stable now.

To do: