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
No edit summary
(This page will not be migrated to new devdocs)
 
(215 intermediate revisions by 33 users not shown)
Line 1: Line 1:
This evolving page lists possible Moodle projects for new developers derived from community suggestions.
{{Template:WillNotMigrate}}


''If you have any ideas for new features in Moodle which might be suitable as projects for new developers, please see [[New feature ideas]].''
{{GSOC}}
==Getting started==


==Email reminders for calendar events==
* 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 go through the [[Tutorial]].
* If you are looking for projects suggested in the tracker, look for issues with the [https://tracker.moodle.org/issues/?jql=Difficulty%20%3D%20Easy%20AND%20resolution%20%3D%20Unresolved%20 'addon_candidate' label].
* If you are looking to make a quick contribution, look for tracker issues with marked as [https://tracker.moodle.org/issues/?jql=Difficulty%20%3D%20Easy easy].
* As you become more involved in Moodle development, you might like to learn more about the [[Coding|coding conventions]] used and how changes to Moodle core code are [[Process|processed]]. Once you become confident enough, please consider adopting a [https://moodle.org/plugins/browse.php?list=set&id=61 plugin seeking a new maintainer].


It would be nice to have some automated and configurable functionality that enables email reminders for events to be sent automatically.
==Potential projects==


This would be integrated in the current messaging system as a message provider.
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.


:'''Skills required''': PHP
''If you have any ideas for new features in Moodle which might be suitable as projects for new developers, please see [[New feature ideas]].''
:'''Difficulty level''': Medium
:'''Mentors''': To be confirmed
 
For further details see:
 
* Tracker issue MDL-1329


==Extensions for individual students and/or groups for course activities==
=== Acceptance tests for the Moodle app ===


At present activities can have a deadline set that applies to all students in a course. It would be good if there was a universal way to allow individual/group extensions for all activities with deadlines.
Since Moodle 3.7 it will be possible to write and run acceptance tests for the Moodle app.


<blockquote>AFAIK, the only way to give an extension is to extend the closing date and then add a password which you give to the individual. The disadvantage to this approach is that it typically causes some confusion among the other students who think there is a new quiz due on the extended date. It would be nice to create a quiz_extension table that would hold the id, userid, quizid, extendstarttime, extendendtime, enforcetimelimit, timelimitfactor. Then, Moodle could be programmed to check for all extensions for that quiz. ([http://moodle.org/mod/forum/discuss.php?d=57271 ref], [[User:Anthony_Borrow]]).</blockquote>
Tasks:
* Write new acceptance tests for the Moodle app


Extensions are already possible in the Quiz module, which would be a good model to work from.
Requirement for GSOC prospective students:


:'''Skills required''': PHP, SQL
* We require prospective students to set-up and run in a local environment the existing tests hosted [https://github.com/moodlehq/moodle-local_moodlemobileapp here] following this documentation: [[Acceptance testing for the mobile app]]. Students must record and submit a video of the tests running on a local machine as part of the GSOC application process.
:'''Difficulty level''': Difficult
* We also require students to create an additional simple test based [https://github.com/moodlehq/moodle-local_moodlemobileapp on the existing ones]
:'''Mentors''': To be confirmed


For further details see:
:'''Skills required:''' Behat (PHP)
:'''Difficulty level:''' Medium
:'''Possible mentor:''' [https://moodle.org/user/profile.php?id=49568 Juan Leyva]


* Tracker issues MDL-7315, MDL-16808
=== Front-end editor for the plugin skeleton generator ===


==Video/audio capture repository plugin==
This is a follow-up project for a [[GSOC/2016#Plugin skeleton generator|successful GSOC 2016 project]] that resulted in a new tool allowing developers to quickly generate a skeleton (scaffolding, template) for a new Moodle plugin. The tool proved to be a helpful helper with significant impact on the quality of Moodle plugins code. This follow-up project aims at further improvements of the skeleton generator. The primary goal is to implement a developer-friendly user interface / front-end editor allowing to configure the plugin's properties (recipe file) easily. The UI should guide the developer through the process of designing and defining the plugin properties and facilitate the whole process.


A new repository plugin can be developed to allow the user to speak directly into the Moodle 2.0 filepicker via their microphone, and have the audio file saved securely as an MP3 into the correct current filearea.
* 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.


Flash would be ideal but Java might be required because of Flash's server requirements (but this should all be examined again to be sure).  One possibility might be to develop a single public server at xxx.moodle.org to act as a service for Moodle sites around the world.
:'''Skills required''': PHP + JS
 
[http://www.poodll.com/?p=242 Poodll] would be a good thing to look at, as ell as [http://gong.ust.hk/nanogong/ nanogong] and this previous project which used riffly.com:  MDL-18341. (update 6/2011: riffly.com is dead) Note that sam marshall has written a simple, GPL, record audio Java Applet, which you can get from https://github.com/sammarshallou/ouaudioapplets. also, see video and audio recording plugin for Moodle 1.9 (http://tracker.moodle.org/browse/CONTRIB-2730) that can (and probably will) be ported to Moodle 2 (as soon as i have some spare time,[[User:Nadav_Kavalerchik]])
 
:'''Skills required''': PHP, Javascript, Flash?, Java?
:'''Difficulty level''': Medium
:'''Difficulty level''': Medium
:'''Mentors''': To be confirmed
:'''Possible mentor''': [http://moodle.org/user/view.php?id=1601&course=5 David Mudrák]


==Improved spam detector==
=== Make badges criteria a subplugin ===


Improve Moodle's current [[:en:Spam cleaner]] tool.
Moodle is an acronym for "Modular Object-Oriented Dynamic Learning Environment" so it allows for extending and tailoring learning environments using community sourced plugins.


:'''Skills required''': PHP
Moodle let users create badges, which are a validated indicator of accomplishment, skill, quality or interest that can be earned. However, for now, the criteria for earning them are a closed list (https://docs.moodle.org/en/Using_badges#Criteria).
:'''Difficulty level''': Medium
:'''Mentors''': To be confirmed


For further details see:
* We require to prepare a mechanism to create custom create to Moodle as a third-party plugin. More information about that can be found here: https://tracker.moodle.org/browse/MDL-39864
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=119510 Improved SPAM detector] forum discussion
 
==Moodle for Windows==
 
Develop a new Windows package to replace the official ones at [http://download.moodle.org/windows download.moodle.org/windows]
 
The current one is build automatically for a variety of versions by Linux scripts that automatically combine a stripped version of XAMPP with a CVS checkout of Moodle.  The new one should also do this.
 
In addition, the new version should also allow the user to upgrade their Moodle via a native Windows control application.  This should make a backup of the site, then download the latest code from a CVS mirror (or the primary git repository) and then start the upgrade.  If the upgrade fails it should be possible to "roll back" code, database and files to the version before the upgrade.
 
:'''Skills required''': Windows, .NET?
:'''Difficulty level''': Medium
:'''Mentor''': We can't help much with Windows programming, but we can help with specs.
 
For further details see:
 
* Tracker issue MDL-26851
 
==Role assigning tool==
 
Develop a tool for easily assigning a role to a user in many places, for example, enrol a student in several courses.
 
:'''Skills required''': PHP
:'''Difficulty level''': Medium
:'''Mentors''': To be confirmed
 
For further details see:
* Tracker issue MDL-10002
 
==Course section manager==
 
Develop a tool for deleting a topic or weekly section from a course.
 
:'''Skills required''': PHP
:'''Difficulty level''': Medium
:'''Mentors''': To be confirmed
 
For further details see:
* Tracker issue MDL-10405
 
==Roles export/import==
 
Develop a tool for export/import of custom roles.


:'''Skills required''': PHP
:'''Skills required''': PHP
:'''Difficulty level''': Medium
:'''Difficulty level''': Medium
:'''Mentors''': To be confirmed
:'''Possible mentor''': [https://moodle.org/user/profile.php?id=119927&course=5 Sara Arjona]


For further details see:
* Tracker issue MDL-17081
==Email to Forums==
Develop the ability to post to forums via email, similar to the description in [https://docs.moodle.org/dev/Student_projects/Email_interface Email Interface]
:'''Skills required''': Unknown
:'''Difficulty level''': Unknown
:'''Mentors''': Unknown
(Sorry for all of the unknowns, but I'm not a programmer)
==See also==
==See also==


* [[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
* [[Talk:Projects for new developers]] for project ideas which have not yet been implemented
* [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]
* [http://tracker.moodle.org/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=type+in+%28%22New+Feature%22%2C+Improvement%29+AND+resolution+%3D+unresolved+ORDER+BY+votes+DESC&runQuery=true&clear=true Popular new feature and improvement requests in Tracker]
 
[[Category:GSOC]]

Latest revision as of 14:09, 20 May 2022


Warning: This page is no longer in use. The information contained on the page should NOT be seen as relevant or reliable.



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 go through the Tutorial.
  • 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.
  • 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. Once you become confident enough, please consider adopting a plugin seeking a new maintainer.

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.

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 GSOC prospective students:

  • We require prospective students to set-up and run in a local environment the existing tests hosted here following this documentation: Acceptance testing for the mobile app. Students must record and submit a video of the tests running on a local machine as part of the GSOC application process.
  • We also require students to create an additional simple test based on the existing ones
Skills required: Behat (PHP)
Difficulty level: Medium
Possible mentor: Juan Leyva

Front-end editor for the plugin skeleton generator

This is a follow-up project for a successful GSOC 2016 project that resulted in a new tool allowing developers to quickly generate a skeleton (scaffolding, template) for a new Moodle plugin. The tool proved to be a helpful helper with significant impact on the quality of Moodle plugins code. This follow-up project aims at further improvements of the skeleton generator. The primary goal is to implement a developer-friendly user interface / front-end editor allowing to configure the plugin's properties (recipe file) easily. The UI should guide the developer through the process of designing and defining the plugin properties and facilitate the whole process.

  • 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 + JS
Difficulty level: Medium
Possible mentor: David Mudrák

Make badges criteria a subplugin

Moodle is an acronym for "Modular Object-Oriented Dynamic Learning Environment" so it allows for extending and tailoring learning environments using community sourced plugins.

Moodle let users create badges, which are a validated indicator of accomplishment, skill, quality or interest that can be earned. However, for now, the criteria for earning them are a closed list (https://docs.moodle.org/en/Using_badges#Criteria).

Skills required: PHP
Difficulty level: Medium
Possible mentor: Sara Arjona

See also