moodle development

19
Moodle Development •Why work with Moodle? •What skills are required. •Strategies for building up the Moodle development community in Thailand.

Upload: paxton

Post on 04-Jan-2016

44 views

Category:

Documents


0 download

DESCRIPTION

Moodle Development. Why work with Moodle? What skills are required. Strategies for building up the Moodle development community in Thailand. Advantages of Involvement with The World Wide Moodle Community. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Moodle Development

Moodle Development

•Why work with Moodle?•What skills are required.

•Strategies for building up the Moodle development community in Thailand.

Page 2: Moodle Development

Advantages of Involvement with The World Wide Moodle

Community• Open nature of Moodle means that popular ideas are integrated into

main Moodle distribution. You can influence the direction of Moodle if you have some good ideas.

• Due to the size and complexity of modern software projects new models are needed for us to collaborate together so that as individuals and institutions we can contribute to building the software tools we want to use.

• Satisfaction that your work is benefiting many people.• Recognition as a contributor to Moodle can lead to institutional links

with institutions around the world. International collaboration on projects.

• Review of your code and additions to your code.• Few institutions have the resources to make an effective and

popular tool. A tool that is secure, adaptable and has the functionality of Moodle.

Page 3: Moodle Development

Estimated Time / Expense to Code Moodle Equivalent

• Core code : 1,146,879 Lines of Code 317 Person Years at US$ 55,000 a year $17,423,701(estimated by ohloh.net).

Page 4: Moodle Development

Contributed code

• Contributed code : 608,543 Lines of Code 164 Person Years $9,021,019

Page 5: Moodle Development

Opportunities

• Theme development – only requires knowledge of xhtml and css. Nearly every new site needs some Theme customization – lots of work.

• Most development work involves adapting Moodle to local needs.

• Varying levels of skills are needed for development of Moodle.

Page 6: Moodle Development

Skills Useful for Moodle Development - Using Web

Technologies •

– PHP :• advanced procedural / object orientated PHP 4/5.

Moodle 2.0 will require PHP 5.2• Care should be taken when coding for Moodle that

security vulnerabilities are not introduced. PHP scripts can sometimes be insecure. All code going into Moodle core is carefully checked for possible security holes. And any vulnerabilities reported on the internet are quickly followed up.

Page 7: Moodle Development

Skills Useful for Moodle Development - Using Web

Technologies– SQL databases. Moodle uses standard SQL

that is cross database compatible and a custom data management library and data definition library so that installation, upgrade of database and data manipulation (INSERT, UPDATE, SELECTs, etc) work across many sql databases.

• Moodle has a built in ‘XMLDB editor’ which can be used to edit the structure of the database. The editor automatically generates upgrade code and

Page 8: Moodle Development

Skills Useful for Moodle Development - Using Web

Technologies– XHTML STRICT, CSS.

• We try to separate all styling into the CSS files and not use html attributes and tags for styling pages.

• Moodle is optimized for use with screen readers since Moodle 1.8. Someone developing themes should understand concepts of accessibility in web sites.

– JavaScript, generally we always have a fallback for if a user doesn’t have javascript eg. for people using screenreaders.

• Moodle now includes the Yahoo User Interface JS library.

Page 9: Moodle Development

Skills Useful for Moodle Development - Using Server

Technologies

– A Moodle developer should be able to install a local server for testing their code on their operating system of choice. XAMPP is a good choice currently for Windows.

– Being able to use the Linux shell can be useful if you need to administer a Moodle server and understanding Apache is useful.

Page 10: Moodle Development

Skills Useful for Moodle Development - Using Developer

Tools

– CVS– a php editor - vi and eclipse are the editors

favored by the core Moodle developers. A good editor can really speed up development and help you explore the Moodle code.

– phpMyAdmin is useful for examining the contents of databases.

– The firefox extension Firebug is excellent for debugging html / css and javascript.

Page 11: Moodle Development

Skills Useful for Moodle Development

• Familiarity with the Moodle LMS :– A developer could have some experience using

Moodle as a user or teacher. This familiarity with Moodle will help the developer to be able to fit new functionality into the system in a sensible way.

– A developer should have a good understanding of the Moodle architecture and the various APIs.

• We have some coding guidelines here http://docs.moodle.org/en/Coding. These cover General rules, Coding style, Database structures and Security issues (and handling form and URL data) .

Page 12: Moodle Development

Moodle Plug Ins• Activity Module• Admin Report• Assignment Type• Authentication Method• Block• Course Format• Course Report• Database Field• Database Preset• Enrolment Method• Filter• Grade Export• Grade Import• Grade Report• Message Processor• Question Import/Export Format• Question Type• Quiz Report• Resource Type• SSO Plugin

Page 13: Moodle Development

Participation in the Moodle community

• Participation in discussions on Moodle.org– Although the Moodle community is unusually helpful it should be remembered

that the Moodle forums are about give and take. • try to solve your problem yourself rather than asking about it on the forums. Search

through the forums and documentation using google or the built in search tools.• If you demonstrate that you have done some work trying to work out your problem

yourself and maybe leave a record on the forums of the steps you have taken which will help someone else then people are more likely to help you.

• Take the opportunity when you can to try to help someone else with their query when you can answer a question. You are likely to learn something yourself by participation in discussions!

• Post to the bug tracker when you have found a bug, not to the forums. A good way to start to be recognized as a serious developer for Moodle would be to post bug fixes as patches to the tracker. This would also be a good way to start to find your way around the Moodle code.

• Attend Moodle Moots and developer conferences to keep up to date with trends in Moodle development and get to know other Moodlers face to face.

Page 14: Moodle Development

Encouraging the Developer Community

Page 15: Moodle Development

Mentoring

• Hire experienced programmers to review development plans and code of new programmers.– This kind of on the job training is ideal, not

only do you end up with a better product, when done well it can be a very effective training tool so that inexperienced programmers can quickly learn the skills of more experienced coders.

Page 16: Moodle Development

Encourage Contribution Back to the Moodle Community

• Give your developers time to polish their code and publish it.

• Encourage development of English skills amongst at least some of your developers so that they can benefit from the wealth of resources out there on the web about web development and take a full part in the international Moodle development community.

• Of course there is also the Thai Moodle forums.

Page 17: Moodle Development

Freelancing

• Allow / encourage your more experienced developers to freelance, to work on international projects?

• This will help to attract, retain and motivate talented individuals and will also give them a broader experience.

• With good use of the inexperienced members to do what they can and the more experienced staff members / freelancers to review code you can keep costs down while being able to offer competitive rates of pay to experienced members of staff.

Page 18: Moodle Development

Learning to be a Moodle Developer

• There is a lot of material available online on php development.

• There is a good deal of documentation available for different aspects of Moodle development.

• The code itself includes plenty of documentation as phpdoc comments.

Page 19: Moodle Development

Contact Me

• Email : [email protected]

• Web Page : http://jamiep.org

• Skype : jamiepratt