Note:

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

GSoC with Moodle

From MoodleDocs
Revision as of 00:41, 21 March 2012 by Michael de Raadt (talk | contribs) (Adding some links)

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 core 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

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; and
  3. find out how to apply to complete a GSOC project with Moodle.

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 Martin Dougiamas. Successful mentoring is quite a commitment so this task should not be taken on lightly.

Students apply to projects via Google and are evaluated and selected by the full group of Moodle mentors.

Development process

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

Create a specification in Moodle Docs
On the wiki page created for them students should start developing a detailed specification with feedback from mentors. The page should outline database table designs, the GUI (eg mock screenshots), the hows and whys etc. The document should be clear and logically organised.
Seek and absorb 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 keep responding 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, and students should add sub-tasks in roughly chronological order for all the 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 Sam Hemelryk/My Moodle Git workflow. Commits will note the related task in the Tracker. This process works best for contained projects like modules - for complicated patches it is often easier just to attach successive diffs directly to the tracker issues.
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 and uploaded to Google as per their instructions. Hopefully the code is also good enough to be shared in the repository or possibly go into the next Moodle release.

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

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

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

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

2011

Overview: GSOC/2011

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

See also