SoC core notification support

From GeeklogWiki
Revision as of 20:32, 2 March 2008 by Blaine (talk | contribs) (Level of Difficulty)

Jump to: navigation, search
(Return to the main idea page for the Google Summer of Code)

Overview

There are a number of core GL features and plugins that send out email notifications and each plugin or module has to develop their own code. There is no central area for the site admin or members to moderate what they can receive notifications for or how they want them handled.

There is also the need to add new levels of alerting or allow alerting of additional site events.

Many plugins would require a more basic level of notification services and others like the forum allow a user to subscribe to a topic or complete forum. If they have subscribed to a complete forum, they can selectively un-subscribe to some topics. The same level of control may be needed for stories, where a user can subscribe to a complete site but then un-subscribe to certain topics or stories by a certain user.


Objective

  • Develop a set of core GL API's to support the registration of new notification services and user notification subscriptions.
  • Extend the plugin API's to use the new services
  • Extend the core GL modules to use the new services
  • Develop the notification admin / site admin screen
  • Develop the UI and program for the users to manage their notification subscription rules.

Support for:

  • Alert Classification (admin, general, moderation, error ...)
  • Alert Type (core, plugin ...)
  • Alert Subtype (module specific)

Only Root or plugin Admin's have access to the admin and error type notifications but this should be a configurable mapping option and controllable via the online notification service admin.

Users should be able to determine how they want to receive their notifications.

  • Admin wants to be emailed on all admin and error notifications
  • Admin wants to receive daily digest of all other notifications
  • User wants daily digest of all notifications
  • Support for RSS Feed per user - using a random hash like URL
  • Daily digest format needs to use a template so the site admin can modify it


Use Cases

  • Site Admin wants to be notified of all new forum topics and MG albums created but not new replies and images uploaded
  • User wants daily digest of all MG updates for albums they have access to
  • User wants daily digest of all comments to content they have created or have replied to.
  • Admin wants daily digest of all items awaiting moderation
  • Admin wants to be notified via email of all site logins
  • Admin wants to be notified via email of all bad login attempts so they know if a user is now locked out
  • Admin wants to be notified of new user signups.

The site Admin and user can have multiple notification rules setup and setup the email subject, email address so they can filter or redirect notifications.

Level of Difficulty

medium to high

This project will require someone to spend time understanding how the core GL plugin API works. Need to install a number of the more popular plugins use notification like features and develope a model of the new notification service API.

Students should have OO experience and knowledge of say the Observer Design Pattern as that would be a good base for the design of this project.