Note: You are currently viewing documentation for Moodle 3.7. Up-to-date documentation for the latest stable version of Moodle may be available here: GSOC.

GSOC: Difference between revisions

From MoodleDocs
(Shifted to dev docs)
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This page describes Moodle's involvement with Google in their Summer of Code program.  (This page was moved from [[Student_projects]]).
{{Moved_to_dev_docs}}
 
==Overview==
 
Moodle has been involved in Google's [http://code.google.com/soc 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.
 
==Matching students and mentors==
 
Mentors are regular Moodle developers who volunteer to help guide and support students in the program.  They may suggest new projects on these pages or just make themselves available to mentor existing projects.  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 [http://moodle.org/course/view.php?id=5 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.  Before CVS permission is granted, patches and code can be attached to the sub-tasks.
 
;Develop in CVS and link to tracker: Once CVS permission is granted, students can develop their code in Moodle's CVS repository. Every commit will then be attached automatically to the tracker if it includes an issue number (eg MDL-7777).  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 bugs.
 
;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 go into the next Moodle release too!
 
==2006==
 
#[[Student projects/Presets for Database module|Presets for Database module project notes]]
#[[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==
 
[[GSOC/2007|Overview and results]]
 
#[[Student projects/New question types|New question types]]
#[[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]]
#[[Development:Voice|Development:Voice]]
 
==2008==
 
Proposed projects for 2008 will be added here.
 
==See also==
 
#[[Student projects]]
#[http://code.google.com/soc/2007/ Google Summer of Code]

Latest revision as of 02:01, 15 September 2011

This development related page is now located in the Dev docs.

See the GSOC page in the Dev docs.