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 35: Line 35:
:'''Possible mentor''': [http://moodle.org/user/view.php?id=21591&course=5 Dan Marsden]
:'''Possible mentor''': [http://moodle.org/user/view.php?id=21591&course=5 Dan Marsden]


=== Migrate end-to-end testing support in the Mobile app to Ionic 3 ===
=== Acceptance tests for the Moodle app ===


[https://angular.github.io/protractor/#/ 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.
Since Moodle 3.7 it will be possible to write and run acceptance tests for the Moodle app.
 
There are almost 167 e2e tests in the Mobile app (see detailed information [https://magician03.github.io/2017/08/21/gsoc-moodle-final-phase/ here]).
 
The aim of this project is to upgrade the existing end-to-end testing support in the Mobile app to Ionic 3 (the original tests were implemented for Ionic 1/AngularJS).  


Tasks:
Tasks:
* Upgrade the Node, Protractor and dependencies versions to be able to run tests in modern environments.
* Write new acceptance tests for the Moodle app
* Update all the tests so they can run in the new version of the framework (Ionic 3)
* Update Moodle Mobile documentation with new instructions for setting up both environments.
 


Requirement for prospective students:
Requirement for prospective students:


* We require prospective students to set-up and run in a local environment the existing tests following this documentation: [[Moodle Mobile End To End Testing]], student must record a video of the tests running on a local machine.
* We require prospective students to set-up and run in a local environment the existing tests following this documentation: [[Acceptance testing for the mobile app]], students must record a video of the tests running on a local machine.
* We also require students to create an additional test (detailed instructions for writing tests are available in the previous link)
* We also require students to create an additional simple test (detailed instructions for writing tests are available in the previous link)
 


:'''Skills required:''' Javascript (Angular and Ionic 3)
:'''Skills required:''' Behat (PHP)
:'''Difficulty level:''' Medium
:'''Difficulty level:''' Medium
:'''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 20:12, 22 January 2019


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-37421)
  • 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)
  • Choose where to send users after completing SCORM (MDL-61677)

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

Acceptance tests for the Moodle app

Since Moodle 3.7 it will be possible to write and run acceptance tests for the Moodle app.

Tasks:

  • Write new acceptance tests for the Moodle app

Requirement for prospective students:

  • We require prospective students to set-up and run in a local environment the existing tests following this documentation: Acceptance testing for the mobile app, students must record a video of the tests running on a local machine.
  • We also require students to create an additional simple test (detailed instructions for writing tests are available in the previous link)
Skills required: Behat (PHP)
Difficulty level: Medium
Possible mentor: Juan Leyva

See also