Email reminders for calendar events: Difference between revisions
From MoodleDocs
No edit summary |
No edit summary |
||
Line 8: | Line 8: | ||
=== Milestones === | === Milestones === | ||
# Refine the project proposal with Michael and the community | # DONE - Refine the project proposal with Michael, Rossiani and the community | ||
# Feature discussion | # DONE - Feature discussion | ||
# Create mockups | # Create mockups | ||
Line 15: | Line 15: | ||
Following features are expecting to package with the reminders plugin. | Following features are expecting to package with the reminders plugin. | ||
:1. Administrator configurations | :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. | ::* 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 | ::* Ability to choose how many days ahead should the reminders be created ''for each event type''. | ||
::** Reminders can be created only by days. | ::** Reminders can be created only by days. | ||
::** Supported only fixed amount of days ahead such as 7 | ::** Supported only fixed amount of days ahead such as 7 days, 3 days and 1 day. | ||
::* Ability to keep/remove history of reminder events. | ::* Ability to keep/remove history of reminder events. | ||
:2. User configurations | :2. User configurations | ||
::* User can select desired method of receiving reminder notifications on | ::* User can select desired method of receiving reminder notifications on each message provider. | ||
== Coding Period == | == Coding Period == | ||
Line 28: | Line 31: | ||
=== Milestones === | === Milestones === | ||
:1. Finalize the | :1. DONE - Finalize the abstract architecture. | ||
:2. | :2. DONE - Implementing the basic structure of the plugin. (CONTRIB-3648) | ||
::* Creating a suitable version file. | ::* Creating a suitable version file. | ||
::* Creating a language 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 === | === File Structure === | ||
Plugin name would be "''reminders''". | Following shows expected file structure of the plugin. Plugin name would be "''reminders''". | ||
* db/access.php | * db/access.php | ||
* db/message.php | * db/message.php | ||
* db/install.php | * db/install.php | ||
* db/upgrade.php | * db/upgrade.php | ||
* lang/en/local_reminders.php | * lang/en/local_reminders.php | ||
* version.php | * version.php | ||
Line 67: | Line 59: | ||
* settings.php | * settings.php | ||
* README | * README | ||
=== High Level Architecture Diagram === | === High Level Architecture Diagram === | ||
[[File:overall_architecture.jpg]] | [[File:overall_architecture.jpg]] | ||
=== Reminders Class Diagram === | |||
[[File:reminders_class_diagram.jpg]] | |||
== Mockups == | == Mockups == |
Revision as of 05:01, 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
- DONE - Refine the project proposal with Michael, Rossiani and the community
- DONE - Feature discussion
- 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
Reminders Class Diagram
Mockups
Administrator Setting Page
Message Format (HTML)
- Message Title : Reminder: ${event_detail} @ ${event_date_time}
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
- Moodle - Google Summer of Code 2012 Idea List
- Original Proposal - GSoC 2012
- RSS Feed from Personal Blog, RSS Feed.