Introduction: In Hungarian, "iskola" means "school". In the old time, "iskola" was used as "oskola"... So "MOSSkola" is a play on words in Hungarian, meaning "MOSS school".
So, MOSSkola is a special online course. The registered students gets the lessons by e-mail, once or twice a week, depending on his/her subscription date. The full course is 90 days long and contains 20 lessons. All e-mail contains a short lesson (3-4 sides) about a special topic of SharePoint 2007. For example there are lessons about Document Management, Lists, Searching, Workflows, BI Functions, etc.
In the first time, the MOSSkola was manual, but nowadays it's fully automated. There's only one thing which couldn't be automated: I have to write the lessons manually ;)
Our website is based on Drupal, you can find here the registration form. After submit this form, your data is loaded to a MySQL Database - from here an automated script loads them into a custom SharePoint list.
In this list we store the user name and e-mail, and the registration date. The list contains other calculated columns for the lessons, based on registration date. For example the last lesson date is RegistrationDate + 90.
On the SharePoint server there is a Timer Job scheduled for daily running, which is responsible for e-mail sending, through the following steps:
- Iterates the SharePoint list items, and collecting items which has the current date as a lesson's date. It collects [user, lesson] pairs, for example [aghy, 13_Workflow_2].
- Reads the data of e-mails to send from an XML file, which matches the following schema:
<Lesson DateColumn="CsopMunka_Komm"
<-- The column containing the lesson's date.
State="01. - Csoportmunka, kommunikáció"
<-- The state of current user after sending the lesson
File="01_CsoportmunkaKommunikacio.pdf"
<-- The name of atached PDF file (cintaining the lesson).
MessageTemplate="01_Csoportmunka.xml" />
<-- The name of the XML file, which is the schema of the e-mail message.
- The e-mail sending is the task of a WebService, according to [user, e-mail, status] arrays.
- At the end the Timer Job set the status of users to the current value.
The custom SharePoint list is like that:
By the way, the Timer Job writes another SharePoint list as well: it's a log, a special history-list, which contains the mails sent, and status-changes. It's a comfortable method to track what happened (or not happened) - with an e-mail (or RSS) alert we can track all days the MOSSkola, and we can do some troubleshooting, if needed.
I use the SharePoint Wiki to write the lessons, and convert them into PDF (stored in a Document Library). The config XML files are stored on the server, in the file system.
The most important advantage of this solution is the reusability: the e-mail sending Web Service, and the whole MOSSkola engine is reusable as well. By the way, with some new config files (and lessons, of course), we can start some new MOSSkola-semesters also...
Posted
Dec 27 2007, 06:11 PM
by
aghy