Difference between revisions of "Developer Area"

From Mahara Wiki
Jump to: navigation, search
(Archived pages: there are no more archived pages)
(API Documentation)
(42 intermediate revisions by 7 users not shown)
Line 3: Line 3:
 
This is for people who want to understand how Mahara works, or want to develop new code or plugins for Mahara. If you want to customise your Mahara - e.g. change the language/theme, or simply install plugins, check out the [[Customising]] section.
 
This is for people who want to understand how Mahara works, or want to develop new code or plugins for Mahara. If you want to customise your Mahara - e.g. change the language/theme, or simply install plugins, check out the [[Customising]] section.
  
==Developer Documentation==
+
<div align="right">__TOC__</div>
  
 +
== Overview ==
 +
 +
* [[Developer Area/Mahara project overview|Mahara development overview]] - explains how Mahara gets developed, who does it, and how people become Mahara developers
 
* [[Developer Area/Mahara Architecture Introduction|Mahara Architecture Introduction]] - this series of articles explains how Mahara fits together, where it's pluggable and why it's written the way it is.
 
* [[Developer Area/Mahara Architecture Introduction|Mahara Architecture Introduction]] - this series of articles explains how Mahara fits together, where it's pluggable and why it's written the way it is.
 
* [[Developer Area/Plugins|Plugins]] - (soon to be) your one-stop-shop for information about developing plugins for Mahara
 
* [[Developer Area/Plugins|Plugins]] - (soon to be) your one-stop-shop for information about developing plugins for Mahara
 
* [[Developer Area/Language Packs|Language Packs]] - how to write a language pack for Mahara, and how to contribute it back
 
* [[Developer Area/Language Packs|Language Packs]] - how to write a language pack for Mahara, and how to contribute it back
 +
* [[Developer Area/Documentation Wishlist|Wishlist]] - what documentation did you find missing and would like people to contribute?
 +
* And if you just want the [[Developer Area/Source code|source code]], it's available via [http://en.wikipedia.org/wiki/git git] at
 +
** Our gerrit code review system: <tt>git clone https://reviews.mahara.org/mahara</tt>
 +
** git.mahara.org: https://git.mahara.org/mahara/mahara
 +
** Github: https://github.com/MaharaProject/mahara
  
<div style="clear:both; width:96%; background-color:#eee; float:left;padding:1% 2% 2% 2%;margin-top:30px;margin-bottom:30px;">
+
=== Finding your way around ===
    <div style="float:left; width:25%; margin-right:5%;">
 
        <div style="text-align:center;">
 
<!--
 
 
 
# This section is for architecture information that developers need to know.
 
  
-->
 
        <h3>Finding your way around</h3>
 
        </div>
 
        <div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;">
 
 
* [[Developer_Area/Mahara_Architecture_Introduction|Mahara Architecture Introduction]]
 
* [[Developer_Area/Mahara_Architecture_Introduction|Mahara Architecture Introduction]]
 
* [[Developer_Area/Core_Subsystems|Core Subsystems]]
 
* [[Developer_Area/Core_Subsystems|Core Subsystems]]
 
* [[Developer_Area/Database_conventions|Database conventions]]
 
* [[Developer_Area/Database_conventions|Database conventions]]
 +
** [[Developer_Area/Database_design_strategies|Database design strategies]]
 
* [[Developer_Area/Development_Tutorials|Development Tutorials]]
 
* [[Developer_Area/Development_Tutorials|Development Tutorials]]
* [[Developer_Area/HowToWriteAViewTemplate|How to write a view template]]
 
 
* [[Developer_Area/Import//Export|Import/Export]]
 
* [[Developer_Area/Import//Export|Import/Export]]
 
* [[Developer_Area/Language_Packs|Language Packs]]
 
* [[Developer_Area/Language_Packs|Language Packs]]
 
* [[Developer_Area/Plugins|Plugins]]
 
* [[Developer_Area/Plugins|Plugins]]
 
* [[Developer_Area/Release_Policy|Release Policy]]
 
* [[Developer_Area/Release_Policy|Release Policy]]
 +
* [[Developer_Area/CLI_Framework|Command Line Interface Framework]]
  
        </div>
+
=== Getting set up ===
    </div>
 
    <div style="float:left; width:25%; margin-left:7.5%;">
 
        <div style="text-align:center;">
 
<!--
 
 
 
# This section is for guides for getting development environments set up
 
  
-->
 
        <h3>Getting set up</h3>
 
        </div>
 
        <div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;">
 
 
* [[Developer_Area/Developer_Tools|Setting up your development tools]]
 
* [[Developer_Area/Developer_Tools|Setting up your development tools]]
 +
* [[Developer Area/Developer Environment|Setting up a development environment]]
 
* [[Developer_Area/Getting_Code_from_Git|Getting Code from Git]]
 
* [[Developer_Area/Getting_Code_from_Git|Getting Code from Git]]
 
* [[Developer_Area/Changing_Hostnames|Changing Hostnames]]
 
* [[Developer_Area/Changing_Hostnames|Changing Hostnames]]
 +
* [[Developer Area/Setting up Elasticsearch|Setting up Elasticsearch]]
  
        </div>
+
=== Contributing improvements ===
        <div style="height:20px;"></div>
+
* '''[[Developer_Area/Contributing_Code|Contributing Code]]'''
        <div style="text-align:center;">
+
* '''[[Developer_Area/Coding_guidelines|Coding guidelines]]'''
<!--
+
* '''[[Developer_Area/Code_Review|Commit Policy]]'''
 
+
* [https://mahara.org/tracker/ How to submit good bug reports]
# This section is for guides for submitting improvements (bug reports, patches, etc)
+
* [[Developer_Area/Accessibility_Checklist|Accessibility Checklist]]
 
 
-->
 
        <h3>Contributing improvements</h3>
 
        </div>
 
        <div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;">
 
* [http://mahara.org/tracker/ How to submit good bug reports]
 
 
* [[Developer_Area/Bug_Status|Bug Status Policy]]
 
* [[Developer_Area/Bug_Status|Bug Status Policy]]
 
* [[Developer_Area/Bite_Sized|Bite sized code tasks]]
 
* [[Developer_Area/Bite_Sized|Bite sized code tasks]]
* [[Developer_Area/Coding_guidelines|Coding guidelines]]
+
* [[Developer_Area/How_to_Review_Code|How to Review Code]]
* [[Developer_Area/Contributing_Code|Contributing Code]]
+
* [[Developer_Area/Unit_Testing|Unit Testing]]
* [[Developer_Area/Code_Review|Commit Policy]]
+
* [[Developer_Area/Behat_Testing|Behat Testing]]
 +
* [[Developer_Area/User_manual_setup|User manual setup]]
  
        </div>
+
=== Join in the discussion ===
    </div>
 
    <div style="float:right; width:25%; margin-left:4%;">
 
        <div style="text-align:center;">
 
<!--
 
  
# This section is for contact info
 
 
-->
 
        <h3>Join in the discussion</h3>
 
        </div>
 
        <div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;">
 
 
We have [http://mahara.org/group/view.php?id=1 a discussion forum] on mahara.org.
 
We have [http://mahara.org/group/view.php?id=1 a discussion forum] on mahara.org.
  
Line 81: Line 58:
  
 
If you have not got an IRC client or cannot connect with one, you can use the [http://webchat.freenode.net/?channels=mahara-dev&uio=MTE9MTAz8d freenode web client].  
 
If you have not got an IRC client or cannot connect with one, you can use the [http://webchat.freenode.net/?channels=mahara-dev&uio=MTE9MTAz8d freenode web client].  
        </div>
 
        <div style="height:20px;"></div>
 
        <div style="text-align:center;">
 
<!--
 
  
# This section is for guides for the dev team
+
=== Meeting minutes & dev team notes ===
  
-->
 
        <h3>Meeting minutes & dev team notes</h3>
 
        </div>
 
        <div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;">
 
* [[Developer_Area/Current_Tasks|Current Tasks]]
 
 
* [[Developer_Area/Developer_Meetings|Developer Meetings]]
 
* [[Developer_Area/Developer_Meetings|Developer Meetings]]
 +
* [[Developer_Area/Packaging|Packaging]]
 
* [[Developer_Area/Release_Instructions|Release Instructions]]
 
* [[Developer_Area/Release_Instructions|Release Instructions]]
 
* [[Developer_Area/Security_Team|Security Team]]
 
* [[Developer_Area/Security_Team|Security Team]]
 
* [[Developer_Area/Specifications_in_Development|Specifications in Development]]
 
* [[Developer_Area/Specifications_in_Development|Specifications in Development]]
 +
* [[Developer_Area/Significant_Bug_Documentation|Fixes for significant bugs that might bite later]]
 +
 +
== API Documentation ==
  
        </div>
+
These pages describe specific Mahara APIs. '''Note:''' we're in the process of reorganizing our developer documentation, so not all API documentation pages will be present in this list. Please use the wiki's search feature if you don't find what you need here. Also, not all API's are documented. :(
    </div>
 
  
</div>
+
* [[Developer_Area/Mahara_Architecture_Introduction/Core_Subsystems|Architecture Introduction]]
 +
* [[Developer_Area/Hello World|Hello World]]
 +
** https://mahara.org/interaction/forum/topic.php?id=5515&offset=0&limit=10#post23705
 +
** My sample page with pieforms and dwoo: https://wiki.mahara.org/index.php/BasicPHPFileTemplates#Sample_page_using_pieforms_and_dwoo
 +
* [[Developer_Area/Database-DML|Database-DML]]
 +
* [[Developer_Area/Database-DDL|Database-DDL]]
 +
** I wrote a forum post here that gives an outline of how the database works: https://mahara.org/interaction/forum/topic.php?id=5515&offset=0&limit=10#post23753
 +
* [[Developer_Area/Language strings|Language strings]]
 +
* [[Developer_Area/Local customizations]]
 +
** aka the "/local" directory
 +
* [[Developer_Area/Config API|Config API]]
 +
* [[Developer_Area/Retrieving user input|Retrieving user input]]
 +
** aka "What to use instead of $_GET and $_POST"
 +
* [[Developer_Area/Cron API|Cron API]]
 +
* [[Developer_Area/CLI_Framework|CLI Framework]] for writing command-line Mahara scripts
 +
* [[Developer_Area/Events API|Events API]]
 +
* [[Developer_Area/File uploads API|File uploads API]]
 +
* [[Developer_Area/Login form|Login form]]
 +
* [[Developer_Area/Mahara global variables|Mahara global variables]]
 +
** $SESSION, $USER, $THEME, etc
 +
* [[Developer_area/Mahara Mobile|Mahara Mobile]]
 +
* [[Developer_Area/Notification Plugins & Activities|Notification Plugins & Activities]]
 +
* [[Developer_Area/Pagetop Constants|Pagetop Constants]]
 +
* [[Developer_Area/Pieforms|Pieforms]]
 +
* [[Developer_Area/Sideblocks API|Sideblocks API]]
 +
* [[Developer_Area/Site menus|Site menus]]
 +
* [[Developer_Area/Smarty&Dwoo|Smarty&Dwoo]]
 +
* [[Developer_Area/Themes|Themes]]
 +
* [[Developer_Area/Webservices|Webservices]]
  
==Useful Resources==
+
== Useful Resources ==
  
 
* You can [https://code.launchpad.net/~vcs-imports/mahara/master/+subscribe subscribe to the master branch] on Launchpad to receive an email everytime a commit is made. There is also an  [http://gitorious.org/mahara/mahara.atom RSS feed of commits] if you prefer to receive information that way.
 
* You can [https://code.launchpad.net/~vcs-imports/mahara/master/+subscribe subscribe to the master branch] on Launchpad to receive an email everytime a commit is made. There is also an  [http://gitorious.org/mahara/mahara.atom RSS feed of commits] if you prefer to receive information that way.

Revision as of 11:34, 23 September 2016

Here is a bunch of developer documentation for Mahara, including design, policy and specific feature documents.

This is for people who want to understand how Mahara works, or want to develop new code or plugins for Mahara. If you want to customise your Mahara - e.g. change the language/theme, or simply install plugins, check out the Customising section.

Overview

Finding your way around

Getting set up

Contributing improvements

Join in the discussion

We have a discussion forum on mahara.org.

You can also find us in #mahara-dev on irc.freenode.net

If you have not got an IRC client or cannot connect with one, you can use the freenode web client.

Meeting minutes & dev team notes

API Documentation

These pages describe specific Mahara APIs. Note: we're in the process of reorganizing our developer documentation, so not all API documentation pages will be present in this list. Please use the wiki's search feature if you don't find what you need here. Also, not all API's are documented. :(

Useful Resources

  • You can subscribe to the master branch on Launchpad to receive an email everytime a commit is made. There is also an  RSS feed of commits if you prefer to receive information that way.
  • #mahara-dev on freenode (irc.freenode.org) is an IRC channel where the core developers discuss the development of Mahara. This channel is not for support of Mahara (use #mahara instead), but you can lurk and listen in on developer conversations - and even hear about the latest new features as they're added ;)