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 39: Line 39:
:3. Implementing message providers for each event type. (CONTRIB-3659)
:3. Implementing message providers for each event type. (CONTRIB-3659)
:4. Providing a administrator settings page. (CONTRIB-3660)
:4. Providing a administrator settings page. (CONTRIB-3660)
:5. Implementing necessary reminder classes.
:5. Implementing necessary reminder classes. (CONTRIB-3669)
::* Creating abstract reminder class.
::* Creating abstract reminder class.
::* Creating concrete reminder classes for each event type.
::* Creating concrete reminder classes for each event type.
:6. Building functionality.
:6. Building functionality.
::* Implementation of Cron function.
::* Generation of message content for reminders. (CONTRIB-3671)
::* Implementation of Cron function. (CONTRIB-3670)
::* Extending to support plugin for repeated events. (CONTRIB-3672)
:7. Testing
:7. Testing
:8. Bug fixing
:8. Bug fixing
Line 90: Line 92:


== Tracker ==
== Tracker ==
* [http://tracker.moodle.org/browse/CONTRIB-3647 Automating Email reminders for calendar events]
* CONTRIB-3647 Automating Email reminders for calendar events


== See also ==
== See also ==
* Plugin development [https://github.com/isuru89/moodle-reminders-for-calendar-events Repository]
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/isuru89/1 Original Proposal - GSoC 2012]
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/isuru89/1 Original Proposal - GSoC 2012]
* RSS Feed from Personal Blog, [http://uisurumadushanka89.blogspot.com/feeds/posts/default/-/gsoc RSS Feed].
* RSS Feed from Personal Blog, [http://uisurumadushanka89.blogspot.com/feeds/posts/default/-/gsoc RSS Feed].

Revision as of 10:48, 27 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. (CONTRIB-3669)
  • Creating abstract reminder class.
  • Creating concrete reminder classes for each event type.
6. Building functionality.
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