One of my main projects of late has involved building a system to digitise our volunteering hours record system.
Currently, the entire system is paper based and as a result, calculations about the overall time spent by our students while helping the local community, needs to be counted manually. A very time consuming task. It also makes it hard to identify any trends, correlations and analysis of the impact of our students' work.
For this task, I used a combination of Moodle’s own database activity and three reports, retrievable by the Configurable Reports plugin.
The Moodle database activity is quite an incredible tool because it can be used as a data capture form to pipe data into an external (non-Moodle table) for processing.
In this case, all data is piped into a table, a series of calculations are performed including the conversion of hours and minutes to seconds, totalling all seconds and then a time conversion back to human readable language. This data is loaded back into Moodle through the configurable reports plugin and displayed to many teams at the College.
Student are able to enter volunteering hours and minutes into a data capture form. This data is presented to a course tutor who needs to verifiy the entry. When verified, the new times are loaded into the report.
If students have completed a group volunteering session, all data can be loaded into the report through an admin utility that handles batch csv files. This data loads into the main volunteering hours report.
All pieces of data can be edited through a series of admin tools.
We are then able to use the data as part of a rewards process and celebrate the success of our students.
To provide each reward with context, I’ve used a GROUPCONCAT function to join all of the subject fields together so we have a breakdown of how a student spent their time helping the local community.
While this process has saved a lot of time, I’m impressed by the sheer number of hours our students have spent volunteering. It is fantastic and they make a significant impact on the local community.