IETF event notification service

Student name

Jeremy Grosser

Student's member profile on PlanetSoC

Mentor's name

Henrik Levkowetz

Mentor's member profile on PlanetSoC

Anonymous

Description

The IETF's working groups are constantly changing and evolving with new
documents and ideas. Currently, users must visit the website and browse through
overview pages to find new updates for drafts, last call announcements, published
RFCs, and new working groups. There is an apparent need for an event system that
that can notify users of updates of interest to them in a timely manner.

Proposal

DELIVERABLES
The following deliverables can be expected upon successful completion of this
project:
1. Event format - Define a format for events to be submitted to the
notification system
2. Storage system - Define a system for the storage and retreival of
events. This will probably be implemented as a database schema
3. Web interface - Build a web interface that allows users to select and
subscribe to a subset of events
4. Notifier - Build a program or set of programs that send the actual
notifications
a. Static (RSS, Atom, HTML) - Update static files on a web
server
b. Push systems (Mail) - Send SMTP messages

In addition to the above deliverables, the assigned mentor will be able to keep
track of this project's progress via regular blog posts as well as phone and
email.

PROJECT DETAILS
1. Implementation will be done using the Python language unless it
becomes desired or neccessary to use another means of
implementation.
2. The following applications will be used unless a better solution is
presented:
a. Apache web server (http://httpd.apache.org/)
b. Python (http://www.python.org/)
c. MySQL (http://www.mysql.org/)

PROJECT SCHEDULE
1. Planning (1 - 2 weeks): Define concrete goals for each of the
assigned tasks (eg. UML diagrams)
2. Format definition (1 - 2 weeks): Define a format and protocol for the
submission of events
3. Storage design - (1 - 2 weeks): Define a database schema and the
general flow of data (event -> database -> notification)
4. Web interface - (2 - 3 weeks): Build a web interface for subscribing
to notifications. This should entail a basic web app that stores
event destination information in the database (email addresses,
etc.)
5. Notifier - (2 - 3 weeks): Build a program to push new events out to
subscribed clients. Should update static pages on the web server
and send out emails.
6. Testing and debugging (2 weeks): Present the notifier as a beta
application for general use. Live data and services will be used.
Bugs should be fixed as they are found.
7. Enhancements (remaining time): Once all of the previous requirements
are met, additional features and enhancements (within reason)
should be implemented. This includes, but is not limited to:
- Additional notification mechanisms (Growl, Jabber, SMS)
- Web interface enhancements (AJAX, Pretty images)

BIOGRAPHY
I am currently pursuing a BS in Applied Networking and Systems
Administration at Rochester Institute of Technology. Throughout middle
school and high school I taught myself (using Google) web development,
Unix, and programming skills. I spent the summer of 2005 pursuing
an interest in distributed computing at Corning Community College in
Corning, NY by helping to build a small distributed systems lab. I have
not contributed to any major open source project before but have been
an advocate of open source activity for a number of years.

AMOUNT REQUESTED
I am submitting this proposal as part of the Google "Summer of Code" project and
as such am requesting the full stipend given as part of that project.