LCMS Tracking Statistics
From Dokeos
Contents
|
General description
Tracking: A global tracking system should be implemented. Applications and their tools can use this tracking functionality to enable tracking and reporting in their scope. It should also be possible for applications and their tools to extend the basic tracking functionality.
Version/Due date
Dokeos 2.0
Analysis
Overview of current libraries dealing with statistics, events en tracking
- events.lib.inc.php (function library for login, course access, tool access events)
- tracking.lib.php (function library for student progress and reporting)
- stats.lib.inc.php(function library to deal with Browser, Country, OS, Referer information)
- statsutils.lib.inc.php (diverse statistic functions like getManyResultsXCol, hoursTab, .. )
- to some extent, newscorm/learnpath.class.php, newscorm/learnpathItem.class.php, newscorm/lp_stats.php and exercice/exercice.php also provide statistical features
Levels of tracking/reporting/statistics
- country, browser, OS, .. (records are kept but not available through the web interface)
- reporting on platform level - Reporting link in platform panel (administrator)
- courses: number, access to tools, latest access, numbers of courses by language
- users: number of users, logins (day,month,hour), number of users with picture
- reporting on platform level - through Users list (administrator)
- lists of all courses with time, progress, score, detail
- detail reporting information about one specific course(learnpath & tests: progress, other tools: number of clicks/actions)
- reporting on platform level - through Course list (administrator)
- reporting on course level
- student tracking: first list of all student with averages (go to detail)
- course tracking: tool most used, links most visited, document most downloaded, average SCORM progress, average score in test
- detail reporting information about one specific student (learnpath & tests: progress, other tools: number of clicks/actions)
- reporting on user level (Reporting Tab)
- overview of all courses subscribed to (time, progress, score, last connection, details)
- details: learning path (time, progress, last connection) tests (score, attempts)
Weaknesses of current implementation
- no possibilities to configure the tracking like you want
- no general tracking/stats framework
- webserver stats are not available through the web interface
Current reporting
Currently available platform reporting
- Courses
- Number of courses
- Access to tools: Statistic
- Latest Access: Statistic
- Number of courses by language
- Users
- Number of users
- Logins: statistic
- Logins (Month): statistic
- Logins (Day): statistic
- Logins (Hour): statistic
- Number of users (picture)
Currently available session reporting
- Coach interface
- Learners: statistics
- Inactive users
- Average time spent on portal: statistic
- Average courses per user
- Average progress in SCORM courses
- Average score in tests
- Average posts number in the forum
- Average assignments number
- Detail: user detail
- Sessions
- Active sessions
- Past sessions
- Future sessions
- Number of users per session
- Number of courses per session
- Detail: user list
- Learners: statistics
- User list
- Time: statistics
- Progress
- Score
- Assignments
- Posts
- First connection: statistics
- Last connection: statistics
- User detail
- Reporting
- First connection
- Latest connection
- Time spent on the platform
- Progress
- Score
- Course
- Time
- Progress
- Score
- Detail: Student Detail
- Reporting
- Administrator interface: statistics
- Session detail
Currently available course reporting
- Learners tracking
- official code
- last name
- first name
- time (statistic)
- progress
- score
- assignments
- post
- first connection (statistic)
- last connection (statistic)
- detail: Student detail
- Course tracking
- Avarage progress in scorm courses
- Avarage score in tests
- Tools most used (statistic)
- Documents most downloaded (statistic)
- Links most visited (statistic)
- Student detail
- Information
- Reporting
- first connection (statistic)
- last connection (statistic)
- time (statistic)
- progress
- score
- Learningpaths
- learnpath
- time (statistic)
- score
- progress
- latest connection
- details
- Tests
- tests
- score
- attempts
- Other tools
Implementation proposal
- fully configurable tracking system
- enable/disable webserver tracking
- enable/disable course/users tracking
- select what you want to track (SCORM progress, test results, number of downloads, ..)
- option to clear the current tracking result without the need for database access (entire system, all users/specific user, all courses/specific course) (have an admin configuration to disable the possibility to remove statistics, as an additional prevention, as most of this data can have a legal value)
- general library for event handling
- general library for reporting
Implementation proposal tracking system
- Tracking table with all trackers and their settings (active, place, name, ...)
- General tracking class (user_id, ref_id, action, date)
- Every tracker is a subclass of the general tracking class and can extend the fields without to worry about the persistence
- The tracking framework will worry about the persistence (same method as with learning objects)
- During installation of the lcms every application/block will have the opportunity to register 0, 1 or more trackers to the tracking table
- A event handling class which has a list of all the events with their actions
- During installation the tracker framework registers the several events with their trackers
- Every application / block can, and should, trigger an event (name, parameters)
- For every event in the eventlist with the same name as the triggered event the action will be executed with the given parameters
- The administrator will have the opportunity to enable / disable all events
- The administrator will have the opportunity to enable / disable every event
- The administrator will have the opportunity to enable / disable the trackers in an event
- Because we want to give the administrator as much choice as possible we only provide one tracking method per class (ex: browsers)
- Every class has one method called track which has an array of parameters as parameter which starts the tracking
- Persistence
- Main settings of tracker will be in existing lcms settings
- A table for the registered trackers with standard settings
- A table for tracker groups that have +- the same fields example(browsers, os, countries...)
- A table for the other settings of every tracker
- A table for the events
- Tracking manager
- Overview of all the events with the standard options (active, ...)
- Events are merged in blocks that belong together (user, weblcms, repository)
- Each event can be enabled/disabled
- For each event a subview with all trackers
- Each tracker of an event can be enabled/disabled
- For each tracker a subview with extra options
- Possibility to change standard options, to go to subview, to clear tracker stats
- Trackers are divided into blocks of where they belong (users, weblcms, repository, ...)
- Possibility to change options of blocks, to clear tracker stats of blocks
- Possibility to change options of all trackers at once, to clear all trackers at once
Events Proposal
- Access to an application, a course, a tool
- Learning objects
- Create
- Update
- Delete
- Metadata
- Create
- Update
- Delete
- Versions
- Publications
- Create
- Update
- Delete
- Downloaded
- Viewed
- Login
- Change of admin settings
- Users
- Create
- Update
- User
- Admin
- Delete
- Registration
- Add user to class
- Remove user from class
- Add user to group
- Remove user from group
- Add user to course
- Remove user from course
- Courses
- Create
- Update
- Delete
- Tools
- Change settings
- Classes
- Create
- Update
- Delete
- Add to course
- Remove from course
- Roles and rights
- Create
- Update
- Delete
- Granting roles and rights
- Remove granted roles and rights
- Weblcms categories
- Create
- Update
- Delete
- Welbcms groups
- Create
- Update
- Delete
Tables Proposal
- Learning object tracker table
- User id
- Learning object id
- Action
- Date
- Publication tracker table
- User id
- Publication id
- Action
- Date
- Access tracker table
- User id
- Application
- Component
- Course id (optional)
- Tool (optional)
- Date
- Login tracker table
- Userid
- Date
- Ip
- Browser tracker, Os tracker, countries tracker, providers tracker, referers tracker table
- Name
- Value
- User tracker table
- User id
- Action
- Action User id (user where the action applies to)
- Date
- Classes tracker table
- User id
- Class id
- Action
- Date
- Course tracker table
- User id
- Course id
- Action
- Date
- Weblcms category tracker table
- User id
- Category id
- Action
- Date
- Roles and rights tracker table
- User id
- Type (role or right)
- Action
- Ref id
- Date
- Tool setting changes tracker
- User id
- Tool setting
- Course id
- Date
- Admin settings changes tracker
- User id
- Admin setting
- Date
Performance
Tracking is a part of the system that is very important but very space and performance consuming at the same time. A few possible solutions are listed here:
- Trackers don't share tables (there are a few exceptions like browsers, countries but that's because they are small trackers)
- Tracker tables should be archived in a given period of time
- This period of time is an extra setting that has to be filled in by the administrator
- The standard value of this period will be a month
- To archive the system has to create a new table (eg. tracker_table_name_0408 which could present the archive for a certain tracker of april) with table name and date of the archived data
- This archived tables should be stored in a controller table (archived_tables)
- From every tracker a compressed summary must be created in order to speed up performance for most searches
- The administrator must have the opportunity in the tracker manager to choose whether to keep the archived tables or remove them and continue with the summary's
- Archived tracker tables can be removed after a certain amount of time
- This option can be put on or off but is default off
- The administrator will have the opportunity to provide the period of time in which the archived tracker tables should be removed
- Default it will be 3years
- A "virtual table" (or temporary table in MySQL's naming terms) could be used for precise statistics queries that span over a large period of time.
You can use the TEMPORARY keyword when creating a table. A TEMPORARY table is visible only to the current connection, and is dropped automatically when the connection is closed. This means that two different connections can use the same temporary table name without conflicting with each other or with an existing non-TEMPORARY table of the same name. (The existing table is hidden until the temporary table is dropped.) To create temporary tables, you must have the CREATE TEMPORARY TABLES privilege.
Unresolved issues
- What about exercices
- What about scorms
- What about learning paths
Comparison other systems
- Drupal
- All statistics are logged into 1 access log table
- A few reports have been build that use this access log table
- Logs show statistics for how many times the site and specific content on the site has been accessed.
- Referrers tells you from where visitors came from (referrer URL).
- Top pages shows you what's hot, what is the most popular content on your site.
- Top visitors shows you the most active visitors for your site and allows you to ban abusive visitors.
- Recent hits displays information about the latest activity on the site.
- Node count displays the number of times a node has been accessed in the node's link section next to # comments.
- Moodle
- A few tables for tracking
- A few reports for the tables
- Reports / trackers are available in the blocks they are tracking
- Seperated classes for tracking and reporting
- Joomla
- Only calculated statistics

