Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Code for the "Enterprise Information Systems Patterns" series of posts - didatic framework.
Branch: master

This branch is 65 commits behind ratem:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bank_system
configurator
domain
spec
.gitignore
Makefile
README.rst
__init__.py

README.rst

EIS Patterns

This project aims to discuss and implement in dynamic languages Enterprise Information Systems Design Patterns. The ideas here presented are discussed in more detail in the blog Enterprise Information Systems Development, check the series of posts with the same title. The current implementation using the Decorator Pattern is explaned from the Part IV of this series onwards.

Code is built on top of some concepts borrowed from ERP5 system, implemented in a different way, given that this is a didactic framework. If you need a fully functional, scalable, and flexible EIS framework in Python, you should use ERP5 instead. The concepts here used are:

Concept 1: Resource
Is anything used for production. It can be material (components, money ...) or immaterial (machine time, human skill ...). A Kit is a set of resources.
Concept 2: Node
Is a business entity that transforms resources. It can be a person or a machine. An organization is a set of nodes.
Concept 3: Movement
Is a movement of any Resource between two nodes. It can be a transformation or a transportation. A process is a set of movements.

Naturally, some supportive concepts will appear as the project evolves, such as Category, used to classify and configure the core concepts.

The core idea is to use the concepts as Lego parts, which means, in general, avoid using subclasse, but masking the abstract concepts through configuration and using decorators instead. Check the blog for understanding this in detail.

Setup

Pre-setup (on Ubuntu):

$ apt-get install python-setuptools
$ easy_install pip

Install dependencies (if needed) and run all specs (depending on your envirnoment, you'll need to call with sudo):

$ make

Run only unit specs:

$ make unit

Run only acceptance specs:

$ make acceptance
Something went wrong with that request. Please try again.