Most Powerful Open Source ERP

Tutorial/Learning Track - Creating A Forum Module

Tutorial teaching to develop ERP5 by setting up a new instance and creating a forum application.
  • Last Update:2018-03-15
  • Version:005
  • Language:en

This learning track is designed for developers who want to understand ERP5 in depth. It should four days for fast developers, ten days in average and up to three weeks for beginners to complete.

Table of Contents

Install ERP5

There are multiple ways to install ERP5.

For learning purposes and developer setup you can directly follow the instructions on how to get an ERP5 webrunner through SlapOS, our cloud hosting and deployment platform. This will give you the core setup everyone at Nexedi uses to develop ERP5.

For evaluation of ERP5 we recommend installing ERP5 on a Virtual Machine. This approach requires little technical knowledge and is used in our OSOE class teaching business students in class or via MOOC how to use an ERP system.

Learn how to Use ERP5 as a Standard User

Once you have a working ERP5 instance, you need to understand the basics of working with ERP5 and what ERP5 is all about. The more you understand how users interact with ERP5, the more you will be able to provide them with suitable developments and customisations of ERP5 software.

We recommend to follow the user tutorials which are available on Learn how to use ERP5. The tutorials should take a few hours to complete. Note, that ERP5 tutorials are being regularly updated and improved as part of a partnership program with universities called One Student One ERP (OSOE). Under this program, students can get a free ERP5 SaaS instance from OSOE. Professors can customise ERP5 to fit their educational goals. If you are interested in contributing to improve ERP5 education, please contact OSOE directly.

Learn Python

Read "Dive Into Python" to learn python. Python is easy to learn and was designed to teach programming to children. Python also provides advanced reflexive programming approaches which do not exist for example in Java. Such reflexive programming techniques are used intensively in ERP5 and are one of the reasons why ERP5 code base can be kept small.

Also read "ERP5 Python Introduction" and make sure that there is nothing new for you.

Tutorial: ERP5 Python Introduction (Read - Download)

This tutorial is an introduction to Python. It presents the basics of the programming language. It must be well understood to be able to develop ERP5 applications on your own.

Learn Zope

Zope is the application server and object database which ERP5 is based on. Read the Zope Book, a comprehensive documentation about Zope. If you lack time, here is a list of the most important chapters to read:

Chapters about Zope service and DTML are less useful for ERP5. You may skip them. On the other hand, page templates are really important to understand.

Once you have learned Zope, read Page Template Introduction and make sure there is nothing new for you.

Tutorial: ERP5 Page Template Introduction (Read - Download)

This tutorial is an introduction to Page Templates in Zope. It must be well understood to be able to develop ERP5 applications on your own.

Learn Zope Core

The next step is to read the Zope Developer's Guide (http://docs.zope.org/zope2/zdgbook/). This documentation is a bit tough to read. However, it provides one of the best views about the internals of Zope. Read it once for now, even if you do not understand it completely. You will need it sooner or later if you need to debug some difficult issue.

Develop your first application with ERP5

Now that you are familiar with ERP5, you can start the forum tutorial. This tutorial is made of seven presentations which each teach a specific aspect of ERP5.

Tutorial 1: How To Create A New Module (Read -  Download)

This tutorial explains how to create a new module into ERP5. In our example, we will create a forum module (Discussion Threads) and its objects.


Tutorial 2: How to create a new portal type (Read - Download)

This tutorial explains how to create a new type of content into ERP5. In our example we will create the discussion post type.


Tutorial 3: How to create a new workflow (Read - Download)

This tutorial explains how to design and implement workflows into ERP5. We will design the workflow we should associate with a Discussion Post and a Discussion Thread.


Tutorial 4: How to create a view (Read - Download)

This tutorial explains some of the rendering features of ERP5. The purpose here is to display a list of all Discussion Threads then below each Discussion Thread, all Discussion Posts from which is made the specific Discussion Thread.


Tutorial 5: How to create security rules (Read - Download)

This tutorial explains how to create security rules into ERP5. This is important in ERP systems since you might not want everyone to be able to perform all actions into the system. In our example we will define three roles, the administrator of the forum, the user and the visitors.


Tutorial 6: How to create a Business Template (Read - Download)

This tutorial explains how to create a business template with all your code. Business Templates (bt5) are the packaging system of ERP5 and let you easily move and install features from one ERP5 installation to another. In our case we will create the "erp5_discussion" business template.


Tutorial 7: Create unit tests (Read - Download)

This tutorial explains how to create unit tests and by so how to make sure your business template will keep working from one upgrade to another. If you don't test your business template, it will sooner or later stop working and maybe even without you noticing when it happens.


Once you have finished all tutorials, you should already be able to use ERP5 as a development platform. It is now time to increase your knowledge by reading guidelines.

Read Guidelines

ERP5 is developed by people located on all continents in the world. In order to keep consistency across such as distributed team, guidelines have been written. Make sure you know them and that you enforce them all. This will save a lot of time to developers during the peer-review of your code. Guidelines can be found in the developer documentation and include: