Welcome to rea-project’s documentation!

Introduction

The django-rea organization is created in aim to create a set of building blocks on which other Django apps can build upon to create network resource planning systems - NRP, as opposed to the more restricted common patterns we encounter in enterprise resource planning systems - ERP.

The project starts from the valuenetwork project, centered around Open Value Networks. This evolved into a NRP gravitating towards openness and transparency. NRP was co-designed and is in daily use by Sensorica.

The NRP software was then adopted, forked , and changed, by Freedom Coop for their Open Collaborative Platform (OCP). They upgraded from Django 1.4 to Django 1.8, added the ability to handle the digital currency FairCoins, added a new app called work, with some separation, protections, and permissions between different organizations using the same system, added a membership procedure, and improved the menus and look-and-feel. OCP is in daily use.

The Freedom Coop fork was then forked again by GoPacifia for their Democratic Emancipatory Economy Platform (DEEP), which is still under development.

And the Matrioshka project, a spinoff from Sensorica, also wants to use the same code base, and is starting by using OCP.

The goal of this django-rea project is to unify all of those forks and modularize the code base, so all of those organizations can work on the same core software, and separate out all of the features that not everybody wants to use into optional modules. A secondary goal is to be able to be able to support future apps that could be even more limited than these groups need.

As we understand somebody’s needs might be different than those we have been using it for thus this project. Which is born to create a set of modular apps on which to develop business apps. In a sense it’s another framework in your toolbox.

In django-rea we are going a step forward generalizing and modularizing the previous projects since we think and understand REA modelling provides an invaluable asset in business model driven applications.

We encourage everyone to participate.

Project goals WIP

Up today as explained in the Introduction we are focused in Open Value Networks. What does this mean to you as a user of this system? For instance, all information is public. We believe in openness and transparency so this is one of the foundational core values. It doesn’t mean though we won’t appreciate contributions towards more fine grained access rules. As a matter of fact we are working on restricting some views to individual context agents so in bigger networks there’s no information overload.

Road map

Refactoring into separate applications

One of the main concerns at the moment is the code base is getting huge and it’s difficult to newcomers to navigate and make changes as it is. So we are following the next steps in order to produce better artifacts on which to work on:

  • Refactor models into multiple files.
  • Refactor views into multiple files and make use of Django’s generic class views whenever is possible.
  • Introduce DDD concepts such as factories and services to alleviate the logic present in views and forms.
  • And finally split into Django applications the different parts.

Unify docs under the Sphinx umbrella

Another important issue to raise is we are using different formats to document the system. This ends up making almost impossible to produce consumable artifacts by end users and developers. Sphinx is a well known documentation tool among the Python community able to produce html/pdf/epub documents containing formulas, images, diagrams and structured text. Furthermore we get the ability to publish these documents in readthedocs.org which will be good to ease diffusion.

Update to last LTS django release

When we have gotten all this refactoring, we are going to update all code to 1.11 django release, so we can use the new features of this version and keep the project sustainable for a long time.