Note:

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

GSoC with Moodle: Difference between revisions

From MoodleDocs
(Updating wording)
 
(33 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{GSOC}}
==Overview==
==Overview==


Line 4: Line 6:


==Applying to be a GSoC student with Moodle==
==Applying to be a GSoC student with Moodle==
Students apply for projects via the GSOC site. The project applications are then passed on to Moodle are evaluated and selected by the full group of Moodle mentors. The best proposals are often from students who take the time to interact and discuss their ideas in forums before submitting a proposal.
{{Note|With regards to the communication culture in the Moodle project: We always prefer transparent communication in public forums and tracker comments over private messages and emails. Please respect this and avoid contacting GSOC admins and mentors directly unless you really need to talk about something sensitive or personal.
[[https://moodle.org/mod/forum/discuss.php?d=397351 GSOC 2020 questions and answers]] }}


If you are a student older than 18 years and wish to participate in the GSoC with Moodle as the target project:
If you are a student older than 18 years and wish to participate in the GSoC with Moodle as the target project:
# check out what's involved in the [http://code.google.com/soc/ Google Summer of Code] (which can change from year to year);
 
# look at the list of [[Projects_for_new_developers|projects for new developers]], or think up one of your own; and
# Check out what's involved in the [http://code.google.com/soc/ Google Summer of Code] (which can change from year to year).
# find out [[Applying_to_work_with_Moodle_for_GSOC|how to apply]] to complete a GSoC project with Moodle.
# Look at the list of [[Projects_for_new_developers|projects for new developers]], or think up one of your own.
# Find out [[Applying_to_work_with_Moodle_for_GSOC|how to apply]] to complete a GSoC project with Moodle.


==Matching students and mentors==
==Matching students and mentors==


Mentors are regular Moodle developers who volunteer to help guide and support students in the program.  The final decision on who can be a mentor is made by [[:en:Martin Dougiamas|Martin Dougiamas]]. Successful mentoring is quite a commitment, so this task should not be taken on lightly.
Mentors are experienced Moodle core developers who volunteer to help guide and support students in the program. Successful mentoring is quite a commitment, so this task should not be taken on lightly.
 
Students apply for projects via Google. The project applications are then passed on to Moodle are evaluated and selected by the full group of Moodle mentors.


==Development process==
==Development process==
Line 41: Line 48:
: Once the time is up, finished projects need to be assessed; Google need to be given access to the result of the project, as per their instructions.  Hopefully the code is also good enough to be shared in the [http://moodle.org/plugins Plugins Directory] or possibly go into the next Moodle release, although neither is guaranteed.
: Once the time is up, finished projects need to be assessed; Google need to be given access to the result of the project, as per their instructions.  Hopefully the code is also good enough to be shared in the [http://moodle.org/plugins Plugins Directory] or possibly go into the next Moodle release, although neither is guaranteed.


==2006==
== 2019 ==
 
Moodle has been selected as a GSOC 2019 mentoring organization.
 
Overview:  [[GSOC/2019]] | [https://summerofcode.withgoogle.com/ Google Summer of Code 2019 site]
 
Projects:
 
* Attendance password rotation/expiry by [https://github.com/maksudr Mohammed Rahman]
* Adding multi-class classification to machine learning backend by [https://github.com/valadhi Vlad Apetrei]
 
== 2018 ==
 
Moodle has been selected as a GSOC 2018 mentoring organization. No project has been selected for mentoring this year.
 
== 2017 ==
 
[https://summerofcode.withgoogle.com/ Google Summer of Code 2017 site]
 
Moodle has been selected as a GSOC 2017 mentor organization.
 
Project:
 
* [[GSOC/2017|Improving End-to-End Testing in the Mobile App]] by Diwakar Moturu
 
== 2016 ==
 
Overview:  [[GSOC/2016]] | [https://summerofcode.withgoogle.com/ Google Summer of Code 2016 site] | [https://moodle.org/auth/mnet/jump.php?hostwwwroot=https://dev.moodle.org&wantsurl=/course/view.php?id=23 GSOC 2016 course]
 
Projects:
 
# [[GSOC/2016|Plugin skeleton generator]]
# [[GSOC/2016|Adding search to more Moodle components]]
# [[GSOC/2016|Atto image resize/crop/rotate]]
# [[GSOC/2016|Add support to end-to-end testing in the Mobile app]]
 
== 2015 ==
 
Overview: [[GSOC/2015]] | [https://www.google-melange.com/gsoc/homepage/google/gsoc2015 Google Summer of Code 2015 site] | [https://moodle.org/auth/mnet/jump.php?hostwwwroot=https://dev.moodle.org&wantsurl=/course/view.php?id=18 GSOC 2015 course]
# [https://docs.moodle.org/dev/GSOC/2015 Meta Enrollment Plugin with Multiple Courses Selection]
# [https://docs.moodle.org/dev/GSOC/2015 Moorsp Plagiarism API Test Plugin]
# [https://docs.moodle.org/dev/GSOC/2015 SCORM 1.2 player in the Moodle app]
 
== 2014 ==
 
Overview: [[GSOC/2014]]
# New question types
# SCORM improvements
 
==2013==
 
Overview: [[GSOC/2013]]
# [[Self-assessment activity using the question bank]]
# [[SCORM player rewrite]]
# [[Global search]]
# [[Course search]]
# [[Pronunciation evaluation question type]]
# [[A Moodle plugin for determining Quiz authorship]]
# [[Portfolio plugin for Evernote]]
 
==2012==
 
Overview: [[GSOC/2012]]
# [[Improve SCORM 2004 Support]]
# [[Plagiarism API improvements]]
# [[Email reminders for calendar events]]
# [[Audio/Video Capture repository plugin]]
 
* [http://www.google-melange.com/gsoc/homepage/google/gsoc2012 Google Summer of Code 2012]
 
==2011==
 
Overview: [[GSOC/2011]]
# [[SCORM reporting improvements]]
# [[Moodle flavours]]
# [[SCORM Test Harness]]
 
* [http://www.google-melange.com/gsoc/program/home/google/gsoc2011 Google Summer of Code 2011]


#[[Student projects/Presets for Database module|Presets for Database module project notes]]
==2009==
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]
#[[Student projects/AJAX course format|AJAX course format project notes]]
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]
#[[Student projects/Global search|Global search project notes]]


==2007==
Overview and results: [[GSOC/2009]]


Overview and results: [[GSOC/2007]]
# [[Record audio repository plugin|Record audio repository plugin]]
# [[Timeline course format|Timeline course format]]
# [[Usability/Improve Moodle User Experience Consistency|Improve Moodle user experience consistency]]
# [[Paint tool|What you paint is what you get]]
# [[Google Gears integration|Google Gears integration]]


#[[Student projects/New question types|New question types]]
* [http://www.google-melange.com/gsoc/program/home/google/gsoc2009 Google Summer of Code 2009]
#[[Student projects/Enterprise-level improvements|Enterprise-level improvements]]
#[[Student projects/Chat revamp|Chat revamp]]
#[[Student projects/Messaging improvements|Messaging improvements]]
#[[Student projects/Automated grading of programs|Automated grading of programs]]
#[[Student projects/User Management Improvements|User Management Improvements]]
#[[Student projects/Email interface|Email interface]]
#[[Student projects/Social Networking features|Social Networking features]]
#[[Voice|Voice]]


==2008==
==2008==
Line 80: Line 156:
#[[Student projects/Moodle IDE|Moodle IDE]]
#[[Student projects/Moodle IDE|Moodle IDE]]


==2009==
* [http://code.google.com/soc/2008/ Google Summer of Code 2008]
 
==2007==


Overview and results: [[GSOC/2009]]
Overview and results: [[GSOC/2007]]


# [[Record audio repository plugin|Record audio repository plugin]]
#[[Student projects/New question types|New question types]]
# [[Timeline course format|Timeline course format]]
#[[Student projects/Enterprise-level improvements|Enterprise-level improvements]]
# [[Usability/Improve Moodle User Experience Consistency|Improve Moodle user experience consistency]]
#[[Student projects/Chat revamp|Chat revamp]]
# [[Paint tool|What you paint is what you get]]
#[[Student projects/Messaging improvements|Messaging improvements]]
# [[Google Gears integration|Google Gears integration]]
#[[Student projects/Automated grading of programs|Automated grading of programs]]
#[[Student projects/User Management Improvements|User Management Improvements]]
#[[Student projects/Email interface|Email interface]]
#[[Student projects/Social Networking features|Social Networking features]]
#[[Voice|Voice]]


==2011==
* [http://code.google.com/soc/2007/ Google Summer of Code 2007]


Overview: [[GSOC/2011]]
==2006==
# [[SCORM reporting improvements]]
# [[Moodle flavours]]
# [[SCORM Test Harness]]


==2012==
#[[Student projects/Presets for Database module|Presets for Database module project notes]]
Overview: [[GSOC/2012]]
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]
# [[Improve SCORM 2004 Support]]
#[[Student projects/AJAX course format|AJAX course format project notes]]
# [[Plagiarism API improvements]]
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]
# [[Email reminders for calendar events]]
#[[Student projects/Global search|Global search project notes]]
# [[Audio/Video Capture repository plugin]]


==2013==
* [http://code.google.com/soc/2006/ Google Summer of Code 2006]
Overview: [[GSOC/2013]]
# Projects to be decided


==See also==
==See also==


* [[Projects for new developers]]
* [[Projects for new developers]]
* [http://code.google.com/soc/2006/ Google Summer of Code 2006]
* [http://code.google.com/soc/2007/ Google Summer of Code 2007]
* [http://code.google.com/soc/2008/ Google Summer of Code 2008]
* [http://www.google-melange.com/gsoc/program/home/google/gsoc2009 Google Summer of Code 2009]
* [http://www.google-melange.com/gsoc/program/home/google/gsoc2011 Google Summer of Code 2011]
* [http://www.google-melange.com/gsoc/homepage/google/gsoc2012 Google Summer of Code 2012]
[[Category:GSOC]]

Latest revision as of 09:01, 21 February 2020


Overview

Moodle has been involved in Google's Summer of Code program since 2006. This program pays students to work on open source software products for about three months (over the northern hemisphere summer), mentored by existing developers of those products. The work usually adds a new feature or a new module. The intention is that this new code improves the software, as well as helping new programmers to become familiar with developing in an open source community.

Applying to be a GSoC student with Moodle

Students apply for projects via the GSOC site. The project applications are then passed on to Moodle are evaluated and selected by the full group of Moodle mentors. The best proposals are often from students who take the time to interact and discuss their ideas in forums before submitting a proposal.

Note: With regards to the communication culture in the Moodle project: We always prefer transparent communication in public forums and tracker comments over private messages and emails. Please respect this and avoid contacting GSOC admins and mentors directly unless you really need to talk about something sensitive or personal.

[GSOC 2020 questions and answers]


If you are a student older than 18 years and wish to participate in the GSoC with Moodle as the target project:

  1. Check out what's involved in the Google Summer of Code (which can change from year to year).
  2. Look at the list of projects for new developers, or think up one of your own.
  3. Find out how to apply to complete a GSoC project with Moodle.

Matching students and mentors

Mentors are experienced Moodle core developers who volunteer to help guide and support students in the program. Successful mentoring is quite a commitment, so this task should not be taken on lightly.

Development process

Once students and mentors have been matched with projects within Moodle, our process runs something like this:

Create a project specification page
A page will be created in Moodle Dev Docs (this wiki) for each project when they are selected. On the wiki page students should start developing a detailed specification with feedback from mentors. The page should include database table designs, GUI mockups, class structures and other implementation details. The document should be clear and logically organised.
Seek and utilise community feedback
Students should introduce the project in the appropriate forums on Using Moodle to help draw attention to it and to stimulate some discussion around their development. The more feedback we have the better, especially if it includes a wide variety of users (developers, teachers, students, etc). Students should be responsive in those forums to build a dialogue with the community.
Evolve the specification
Students and mentors should use the feedback to evolve the specification into something that all users are happy with. Sometimes it's worth doing more research to find the "best" way to do something without adding Yet Another Option.
Set up tasks in the Moodle Tracker
Once the specification has settled down, it's time to start work. The mentor should create a new issue in the Moodle Tracker (in the CONTRIB project) and assign it to the student (after they added to the "contrib-developer" Tracker group). Students should add sub-tasks in roughly chronological order for different parts of the project. This helps students keep track of where they are, but also allows the community to "watch you" develop and to help you where they can.
Develop in Git and link to tracker
Students can develop their code in Git repository. When projects are producing an independent plugin, a single repository can be used. For more complex integrations involving changes to Moodle core, Sam Hemelryk/My Moodle Git workflow will be necessary. Git commits will be related to tracker issues and should note the issue number at the beginning of the commit message. If you are new to Git development, have a look at this documentation.
Advertise milestones in the forums
Major milestones should be posted in the forums, to maintain community interest and draw in new testers and more feedback.
Finish off projects
Once the time is up, finished projects need to be assessed; Google need to be given access to the result of the project, as per their instructions. Hopefully the code is also good enough to be shared in the Plugins Directory or possibly go into the next Moodle release, although neither is guaranteed.

2019

Moodle has been selected as a GSOC 2019 mentoring organization.

Overview: GSOC/2019 | Google Summer of Code 2019 site

Projects:

2018

Moodle has been selected as a GSOC 2018 mentoring organization. No project has been selected for mentoring this year.

2017

Google Summer of Code 2017 site

Moodle has been selected as a GSOC 2017 mentor organization.

Project:

2016

Overview: GSOC/2016 | Google Summer of Code 2016 site | GSOC 2016 course

Projects:

  1. Plugin skeleton generator
  2. Adding search to more Moodle components
  3. Atto image resize/crop/rotate
  4. Add support to end-to-end testing in the Mobile app

2015

Overview: GSOC/2015 | Google Summer of Code 2015 site | GSOC 2015 course

  1. Meta Enrollment Plugin with Multiple Courses Selection
  2. Moorsp Plagiarism API Test Plugin
  3. SCORM 1.2 player in the Moodle app

2014

Overview: GSOC/2014

  1. New question types
  2. SCORM improvements

2013

Overview: GSOC/2013

  1. Self-assessment activity using the question bank
  2. SCORM player rewrite
  3. Global search
  4. Course search
  5. Pronunciation evaluation question type
  6. A Moodle plugin for determining Quiz authorship
  7. Portfolio plugin for Evernote

2012

Overview: GSOC/2012

  1. Improve SCORM 2004 Support
  2. Plagiarism API improvements
  3. Email reminders for calendar events
  4. Audio/Video Capture repository plugin

2011

Overview: GSOC/2011

  1. SCORM reporting improvements
  2. Moodle flavours
  3. SCORM Test Harness

2009

Overview and results: GSOC/2009

  1. Record audio repository plugin
  2. Timeline course format
  3. Improve Moodle user experience consistency
  4. What you paint is what you get
  5. Google Gears integration

2008

Overview and results: GSOC/2008

  1. Usability issues
  2. SQLite
  3. Animated grade statistics report
  4. Language editing interface
  5. Feed aggregation library
  6. Customisable theme
  7. Blog improvements
  8. Further messaging improvements
  9. Automatic accessibility checking
  10. Progress tracking
  11. Secure RSS feeds
  12. Moodle IDE

2007

Overview and results: GSOC/2007

  1. New question types
  2. Enterprise-level improvements
  3. Chat revamp
  4. Messaging improvements
  5. Automated grading of programs
  6. User Management Improvements
  7. Email interface
  8. Social Networking features
  9. Voice

2006

  1. Presets for Database module project notes
  2. Integrated bug tracker project notes
  3. AJAX course format project notes
  4. Admin page cleanup project notes
  5. Global search project notes

See also