Projects for new developers: Difference between revisions
Dan Marsden (talk | contribs) (remove advanced grading project as possible GSOC project - unless someone else wants to mentor a project on it.) |
Helen Foster (talk | contribs) (→See also: removing old links) |
||
Line 86: | Line 86: | ||
* [[GSOC]] - describing Moodle's involvement with Google in their Summer of Code program | * [[GSOC]] - describing Moodle's involvement with Google in their Summer of Code program | ||
* [https://tracker.moodle.org/issues/?jql=type%20in%20%28%22New%20Feature%22%2C%20Improvement%29%20AND%20resolution%20%3D%20unresolved%20and%20labels%20in%20%28addon_candidate%29%20ORDER%20BY%20votes%20DESC Popular new feature and improvement requests in Tracker that can be implemented as plugins] | * [https://tracker.moodle.org/issues/?jql=type%20in%20%28%22New%20Feature%22%2C%20Improvement%29%20AND%20resolution%20%3D%20unresolved%20and%20labels%20in%20%28addon_candidate%29%20ORDER%20BY%20votes%20DESC Popular new feature and improvement requests in Tracker that can be implemented as plugins] | ||
Revision as of 09:15, 13 February 2018
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 the 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 and lists projects together with experienced core developers willing to mentor new developers.
If you have any ideas for new features in Moodle which might be suitable as projects for new developers, please see New feature ideas.
Improve SCORM plugin
There are a number of areas of SCORM that could be improved as part of a GSOC project, some of these are bigger projects and others could be combined to form a single project.
These are just some examples, take a look at the open SCORM issues in the Moodle tracker for a list of other issues.
- Improve Grading (MDL-51086, MDL-52871, MDL-55004, MDL-37421)
- Add Support for Safe Exam Browser (MDL-41054)
- Add new option to force new attempts (MDL-32585)
- Improve validation of SCORM packages (MDL-38060, MDL-24057)
- Convert YUI Treeview to use Jquery (Moodle is moving away from YUI and the existing Treeview has a few issues)
Requirement for prospective students:
- We require prospective students to make an attempt at fixing at least 1 issue in the Moodle tracker before their proposal can be considered. This MUST be completed before your application can be considered valid.
- Skills required: PHP
- Difficulty level: Medium
- Possible mentor: Dan Marsden
Improve end-to-end testing in the Mobile app
Protractor is an end-to-end test framework for AngularJS applications. Protractor runs tests against your application running in a real browser, interacting with it as a user would.
There are almost 40 e2e tests in the Mobile app, right now tests only works in old versions of Node and Protractor.
The aim of this project is to upgrade the Node, Protractor, Selenium and the rest of dependencies to be able to run tests in both a browser and in real devices via external systems like Saucelabs.
Tasks:
- Upgrade the Node, Protractor and dependencies versions to be able to run tests in modern environments.
- Configure the app to be able to be launched in Saucelabs via Travis (if possible).
- Fix existing tests that are failing
- Update Moodle Mobile documentation with new instructions for setting up both environments.
- Skills required: Javascript (AngularJS)
- Difficulty level: Medium
- Possible mentor: Juan Leyva
Migrate Moodle Mobile publishing scripts to Gulp tasks
Right now the Mobile app uses several scripts ([see here https://github.com/moodlehq/moodlemobile-scripts]) for common tasks related to publishing.
Those scripts should be migrated to Gulp tasks so they are available among the other tasks already implemented.
Tasks:
- Migrate the prepare-release-version.sh script to gulp task
- Migrate the prepare-release-integration.sh script to gulp task
- Improve previous scripts to compile the resulting app via Phonegap Build API
- Migrate the rest of scripts that synchronizes language translations
- Skills required: Javascript
- Difficulty level: Medium
- Possible mentor: Juan Leyva
Add Mobile app support to Attendance plugin
A new version of the Moodle Mobile app will be finished in May 2018 - This will provide a simpler way for plugins to add support for the Mobile app. Draft spec is available here https://moodle.org/mod/forum/discuss.php?d=361230
Minimum requirements for this would involve the ability for teachers and students to take attendance, and for students to view their reports.
Requirement for prospective students:
- We require prospective students to make an attempt at fixing at least 1 issue in the Moodle tracker before their proposal can be considered. This MUST be completed before your application can be considered valid.
- Skills required: PHP
- Difficulty level: Medium
- Possible mentor: Dan Marsden
See also
- GSOC - describing Moodle's involvement with Google in their Summer of Code program
- Popular new feature and improvement requests in Tracker that can be implemented as plugins