Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Email reminders for calendar events: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
Line 69: Line 69:
== Mockups ==
== Mockups ==
=== Administrator Setting Page ===
=== Administrator Setting Page ===
[[File:reminders_admin_settings_page.jpg]]
[[File:reminders_admin_config_page.jpg]]


=== Message Format (HTML) ===
=== Message Format (HTML) ===

Revision as of 06:11, 22 May 2012

Introduction

Reminders are very useful for both students as well as teachers to recall their scheduled event before the actual moment. This project is about creating a set of reminders for Moodle calendar events and sending them automatically to relevant users on timely manner via Moodle message interface. It will be implemented as a local plugin to the Moodle.

Requirements

Moodle 2.2 required

Community Bonding Period

Milestones

  1. DONE - Refine the project proposal with Michael, Rossiani and the community
  2. DONE - Feature discussion
  3. Create mockups

Features

Following features are expecting to package with the reminders plugin.

1. Reminders can be sent by customizing according to each event type.
  • Separate message providers for each event type.
  • Ability to customize message content according to event type.
2. Administrator configurations
  • Administrator can enable/disable the process of sending reminders without uninstalling the plugin.
  • Ability to choose how many days ahead should the reminders be created for each event type.
    • Reminders can be created only by days.
    • Supported only fixed amount of days ahead such as 7 days, 3 days and 1 day.
  • Ability to keep/remove history of reminder events.
2. User configurations
  • User can select desired method of receiving reminder notifications on each message provider.

Coding Period

Milestones

1. DONE - Finalize the abstract architecture.
2. DONE - Implementing the basic structure of the plugin. (CONTRIB-3648)
  • Creating a suitable version file.
  • Creating a language file.
  • Creating a message provider file.
  • Creating a lib file for the cron function.
3. Implementing message providers for each event type. (CONTRIB-3659)
4. Providing a administrator settings page. (CONTRIB-3660)
5. Implementing necessary reminder classes.
  • Creating abstract reminder class.
  • Creating concrete reminder classes for each event type.
6. Building functionality.
  • Implementation of Cron function.
7. Testing
8. Bug fixing

File Structure

Following shows expected file structure of the plugin. Plugin name would be "reminders".

  • db/access.php
  • db/message.php
  • db/install.php
  • db/upgrade.php
  • lang/en/local_reminders.php
  • version.php
  • lib.php
  • settings.php
  • README

High Level Architecture Diagram

overall architecture.jpg

Reminders Class Diagram

reminders class diagram.jpg

Mockups

Administrator Setting Page

reminders admin config page.jpg

Message Format (HTML)

  • Message Title : Reminder: ${event_detail} @ ${event_date_time}

message format HTML.jpg

Message Format (Plain-text)

  • Message Title : Reminder: ${event_detail} @ ${event_date_time}
  • Message Content:
${message_title}
Reminder - #n days remaining
When -> ${event_time}
What -> ${event_course} or ${event_type}
Description -> ${event_description}

Screenshots

Tracker

See also