Moodle flavours: Difference between revisions
No edit summary |
|||
Line 141: | Line 141: | ||
* flavours_packaging.class.php | * flavours_packaging.class.php | ||
* forms/flavours_deployment_form.php | * forms/flavours_deployment_form.php | ||
* forms/flavours_deployment_upload_form.php | |||
* forms/flavours_packaging_form.php | * forms/flavours_packaging_form.php | ||
* ingredient/flavours_ingredient.class.php | * ingredient/flavours_ingredient.class.php |
Revision as of 15:49, 3 July 2011
Moodle flavours | |
---|---|
Project state | Planning |
Tracker issue | http://tracker.moodle.org/browse/CONTRIB-2948 |
Discussion | http://moodle.org/mod/forum/discuss.php?d=174755 |
Assignee | David Monllaó (project blog - login into moodle.org required to view the content) |
Project specification in progress...
Introduction
A flavour is a packaged set of Moodle site settings, plugins and language packs. Moodle Administrators will be able to create a flavour from their installation, selecting which settings, plugins and language packs will be packaged into a compressed file. They can then, share the package with the Moodle community, store it as a backup or use it to replicate the flavour to other installations they manages. It could also be useful for administrators with little Moodle experienced, allowing them to explore the Moodle settings and setup recommended by others.
Examples
- Flavours for universities with common language packs, videoconferencing plugins and the secure quiz settings
- Flavours for schools with plugins more oriented towards children
- Sets of audio plugins for music teaching
- Local language customisations for Italian (for example) and Romanic language packs, for languages teaching
- Packs of admin monitoring / reporting plugins
- Flavours for specific industry sectors (e.g. Retail, Automotive, Health, Defence - each have common needs)
- Flavours for Distance Learning organisations
- Flavour for Apprenticeships
Requirements
Moodle 2.1 required
Community bonding period
Milestones
- DONE - Refine the project proposal with Michael and the community feedback
- DONE - Define steps/screens and navigation
- DONE - Create mockups
Collection of possible ingredients to include in a flavour
Still in progress...
- Site settings
- Language packs
- Local language strings
- Plugins
- Subplugins
- Question types
- Activity modules
- Authentication methods
- Enrolment methods
- Messaging processors
- Blocks
- Text filters
- Editors
- Course formats
- Profile field types
- Site reports
- Course reports
- Grade export methods
- Grade import methods
- Gradebook reports
- MNet services
- Webservice protocols
- Plagiarism
- Repositories
- Portfolios
- Question behaviours
- Question import/export formats
- Themes
- Assignment types
- Database field types
- Database presets
- Quiz reports
- Workshop grading strategies
- Workshop submissions allocation methods
- Workshop grading evaluation methods
- Local plugins
Features
There are two main use cases: flavour packaging and flavour deployment.
Packaging
This use case will allow Moodle Administrators to package their installation ingredients into a compressed file.
Steps to generate new flavours
- Ingredients selection
- Ingredients listed in tree form
- Expandable and collapsible tree nodes for easy ingredients selection
- Checkable nodes maintaining the hierarchy
- File-system permissions checking
- Download resulting compressed file containing
- Flavour meta data such as name, author, description, contexts where the flavour could be used, creation time, source site URL and source site version
- Selected site settings data
- A set of directories with the selected ingredients reflecting the folder structure used in Moodle
Deployment
This use case will load a flavour into a Moodle site. Flavours deployed should came from a known/trusted source.
Steps to deploy a flavour into a Moodle site:
- Fill the upload flavour form with the selected flavour
- Ingredients pre-visualisation and selection which ones will be deployed
- Ingredients listed in tree form
- Expandable and collapsible tree nodes for easy ingredients selection
- Checkable nodes maintaining the hierarchy
- Deployment expected consequences
- Versioning incompatibilities
- Over-writes
- File-system permissions issues
- Show results
Coding period
Milestones
- DONE - Specify the file structure
- DONE - Add a class diagram
- DONE - Packaging system
- DONE - Ingredients classes - packaging public interface
- DONE - Packaging methods
- DONE - Methods to populate the ingredients tree
- DONE - User interface
- DONE - Create a moodleform with flavour general info fields (name, description...)
- DONE - A javascript tree view implementation to check ingredients
- DONE - Packaging system
- DONE - Use a moodledata temp folder to store the flavour contents
- DONE - Create a XML writer which will contain flavour data and flavour ingredients info (not code) something like <plugins><mod><feedback>...</feedback></mod>
- DONE - PHP compression library usage
- DONE - Ingredients classes - packaging public interface
- Deployment system
- Ingredients classes - deployment public interface
- Validation methods (is the folder writable? have you a newer version already installed?...)
- Deployment methods
- User interface
- Forms
- To upload a flavour
- To previsualize the flavour and select which ingredients will be deployed (tree view)
- Complete the previsualization form with expected results info
- Forms
- Ingredients classes - deployment public interface
- Testing (iterative)
- Documentation (iterative)
- Complete Moodle Docs documentation and refactor structure if is necessary
- Ensure that all the functions/methods/classes have it's own phpDoc comment block
File structure
- flavours.class.php
- flavours_deployment.class.php
- flavours_packaging.class.php
- forms/flavours_deployment_form.php
- forms/flavours_deployment_upload_form.php
- forms/flavours_packaging_form.php
- ingredient/flavours_ingredient.class.php
- ingredient/flavours_ingredient_lang.class.php
- ingredient/flavours_ingredient_plugin.class.php
- ingredient/flavours_ingredient_setting.class.php
- lang/XX/local_flavours.php
- index.php
- module.js
- README
- settings.php
- styles.css
- version.php
Class diagram
To be filled with methods...
Mockups
Packaging - Select flavour ingredients
Deployment - Upload a flavour
Deployment - Ingredients previsualization
GSOC Original Proposal
Short description
This project will bring flavours to Moodle, allowing Administrators to choose and load a flavour from a public repository. Flavours can contain administration settings, Moodle plugins, sub-plugins, language packs and local language strings. The repository management could be done with a database module instance on moodle.org or through the Modules and Plugins databse, although, this project will focus on the development of the flavour packaging and deployment system.
Long description
There are a lot of Moodle settings, plugins and integrations with other applications. It's fun to explore Moodle options, but not everyone has time to achieve this.
Based on Appfuse nomenclature, a flavour will be a Moodle package of administration settings, installed plugins, languages and the local customisations. Flavours will be distributed using a database (like the M&P or themes dbs) on moodle.org where flavour contributors can share, describe, comment or rate the submitted flavours.
Flavours will be distributed as compressed files, with a .xml file to structure the flavour contents. The packaging system should respect the moodle and moodledata directory structure.
To deploy a flavour, the user interface will be similar to the courses backup and restore interface, which should be familiar to Administrators. During deployment, administrators will be able to selectively nominate the flavour contents that will be used.
Another consideration will be versioning; there will need to be control over configuration, plugin and language pack versions to avoid incompatibilities between releases.