Notification Framework - Kyle Mulka

normalpetsSoftware and s/w Development

Nov 4, 2013 (3 years and 8 months ago)

58 views

Notification Framework


Purpose:

To create a general notification framework built upon php and mysql. This
framework will eventually be able to notify you of anything you wanted to know from a
variety of data sources by a variety of delivery methods. You c
ould tell it when you want
something, and it would give it to you precisely when you wanted it. And, this wouldn’t
be simply based on timing, it would be based on content as well.


Motivations:

Primarily Mschedule.com needs a notification system to notify
users of
various things that happen in the course of normal site operation. It would be nice to have
a notification sent if a stock price had a large amount of activity, or if a certain company
popped up in the news. How about receiving a text message afte
r your last class if they
are having one of your favorite foods (pizza) in the residence halls? How about an email
when there becomes an open seat in that class you wanted to register for but couldn’t?
How about an instant message when someone outbids you
on the Ebay item you want?
You know that poking feature on the face book? Well, that one has already been solved,
but maybe you only want a notification if a friend pokes you, and they haven’t
implemented it yet. What about an instant message if there is a

snow storm coming your
way? All of these are possible to set up with a little bit of scripting. The framework is
designed to abstract away the details of timing, checking, searching, creating, sending,
and queuing notifications.



Data Sources:

Web Pages

XML

Web Services

Other PHP classes

Email (received)

AIM (received)

MySQL database


Methods of Delivery:

Email

AIM, MSN, Yahoo, etc.

Text Messages

Web Site Forum

Blog

XML

MySQL database


3 Types:


Timed:

Set times, Ex: Monday, January 24, 2005 @ 11:30am

Rep
eating Events: Every day at 8am


Pulled:

(website, email, server ping, etc)

Every minute/hour/day


Pushed:

Internal


php classes (on same server as notifications)

External


php page visited


Queue:

Maintain a queue of notifications

Send notification for

the day in one email for example

Only send notifications on the hour or every 15 minutes


When to send:

Search for a string

If data element equals/greater than/less than specific element

All notifications received from a specific php class


Programmer pro
vided:

(I will do some of these to get it started)

PHP classes derived from base class to define data which may be included in message or
checked

Define limits (timing) which make sense for this kind of data

PHP classes derived from base class which define

delivery method

PHP classes derived from base class which define filters to decide if notification is worth
sending

PHP/HTML forms which provide a user interface to the notification framework


Global Control:

Limitations on bandwidth

Limitations on AIM b
ot

Size of text messages (125 chars)

Anti
-
Abuse