Thursday, February 23, 2017

Request for advice on refactoring a big Django project

Dear Django people,


We are working on an open-source Django system that has grown both in terms of user and developer communities and also size of code base. It is in production with 370 users that we know of.


It has several names, but one is NRP, which stands for Network Resource Planning system, as contrasted with ERP, which stands for Enterprise Resource Planning. NRP has the same scope as ERP, but is for economic networks, not single enterprises. And it is aimed at communities who are experimenting with cooperative economic systems.


We want to refactor the system. It has become too big and unmanagable. So we are looking for advice on how to refactor.


Here's the original repo: https://github.com/valnet/valuenetwork which is being used byhttp://www.sensorica.co/
Here are the active forks:
https://github.com/FreedomCoop/valuenetwork used by https://freedomcoop.eu/
https://github.com/gopacifia/DEEP planning to be used by http://gopacifia.org/en/


Here's an overview slide deck of the the original system. The forks have added other features, including digital currencies.
https://speakerdeck.com/mikorizal/1-nrp-overview


We think if we refactor this software, many of the features could be reusable by other projects that are not necessarily aimed at the same kinds of user communities. For example, any supply chain or business joint venture is an economic network, and many LLCs are actually networks under the covers. Moreover, we think that economic networks and ecosystems are the wave of the future, more than individual companies. But some of the features of this software base would also be useable by individual organizations.


The system is based on the Resource-Event-Agent (REA) model, which is a much simpler basis for business systems than the usual ERP model. Here's how REA applies to supply chains, for example.


Here's our current discussion about how to do the refactoring: #215


Anyway, we will be grateful for any advice, and if anybody wants to help, that would be even better.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/5bda3dfa-00ab-43db-be91-c21a2a82f321%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment