Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Projects for new developers: Difference between revisions

From MoodleDocs
Line 72: Line 72:
:'''Skills required''': HTML5, Javascript, AngularJS
:'''Skills required''': HTML5, Javascript, AngularJS
:'''Difficulty level''': Medium-High
:'''Difficulty level''': Medium-High
:'''Possible mentor''': [https://moodle.org/user/profile.php?id=49568 Juan Leyva]
=== Javascript basic IMS CP player for the Mobile app ===
This is a minor project related to the previous one, it can be described as an initial step for implementing the SCORM player.
:'''Skills required''': HTML5, Javascript, AngularJS
:'''Difficulty level''': Low
:'''Possible mentor''': [https://moodle.org/user/profile.php?id=49568 Juan Leyva]
:'''Possible mentor''': [https://moodle.org/user/profile.php?id=49568 Juan Leyva]



Revision as of 14:56, 11 February 2015


Getting started

Moodle uses PHP, JavaScript, SQL and a number of other Web languages, so learning those is a good place to start.

When you have some basic PHP programming skills, you may wish to start learning about how to Moodle code is organised. It is recommended that you complete the Introduction to Moodle Programming course on dev.moodle.org. To access this you will need to have an account on moodle.org first.

If you are looking for projects suggested in the tracker, look for issues with the 'addon_candidate' label.

If you are looking to make a quick contribution, look for tracker issues with marked as easy.

Please consider adopting a plugin seeking a new maintainer. See the Plugins adoption programme.

As you become more involved in Moodle development, you might like to learn more about the coding conventions used and how changes to Moodle core code are processed.

Potential projects

This evolving page lists possible Moodle projects for new developers derived from community suggestions.

If you have any ideas for new features in Moodle which might be suitable as projects for new developers, please see New feature ideas.

Plagiarism plugin (Moorsp)

There are various commercial plugins available that use the Plagiarism API in Moodle, but because these plagiarism systems can require paid subscriptions, testing them can be difficult. I'd like to see a basic plugin developed (called Moorsp) that could be used for testing the Plagiarism API and provides a structure that can be built on in future to add further functionality.

The initial aim of this project is not to develop a new Plagiarism checking tool but to develop a tool that provides complete Behat and unit tests for the Moodle Plagiarism API.

All files uploaded to Moodle are stored on disk using the contenthash of the file as the filename - this means that if a user uploads the exact file multiple times in different locations only one file is stored on disk. The plugin should implement a check to see if the exact file has been submitted to any other courses/activities and display related information if another match has been found.

Deliverables:

  • All Plagiarism API functions should be implemented.
  • Support for Assign, forum and Workshop modules should be implemented.
  • Full Unit test coverage of all plugin functions.
  • Full Behat tests for Assign, forum and workshop modules should be implemented to ensure that all Plagiarism API functions are working as expected.
  • The code should pass 100% of the Moodle codechecking tools to ensure the code meets with Moodle Guidelines.
  • The code should be perform well with appropriate use of the Moodle caching tools.

Future Improvements (outside scope of initial project)

  • Add Plagiarism API to the Moodle Glossary plugin.
  • Implement functions that allow the plugin to post content to an external source - a future open source moorsp server that will receive content and generate a similarity report - we may be able to re-purpose some of the code from the old plagiarism_crot plugin to do this.
Skills required: PHP
Difficulty level: Medium
Possible mentor: Dan Marsden
Discussion: [1]
Initial code structure: [2]

Javascript basic SCORM 1.2 player for the Mobile app

Currently there are several Javascript SCORM players with basic support for SCORM 1.2:

The aim of this project is to fix and package inside an Angular module one of those players to be included in the official Moodle Mobile app.

This will allow the app to play SCORM files in online and offline mode.

The player should be able to:

  • Parse the imsmanifest.xml file in order to display the available Organizations and structures inside the package.
  • Display a basic SCORM player with a basic menu tree.
  • Implement a basic runtime support in order to be able to retrieve the SCOs tracking from the Moodle site.
  • Store in the app local storage the user interactions (API runtime) to be synchronized when the user is online again.
Skills required: HTML5, Javascript, AngularJS
Difficulty level: Medium-High
Possible mentor: Juan Leyva

Javascript basic IMS CP player for the Mobile app

This is a minor project related to the previous one, it can be described as an initial step for implementing the SCORM player.

Skills required: HTML5, Javascript, AngularJS
Difficulty level: Low
Possible mentor: Juan Leyva

See also