116
How to build ERP application having fun ? Saturday, 22 October 2011

PyconUA - How to build ERP application having fun?

Embed Size (px)

Citation preview

Page 1: PyconUA - How to build ERP application having fun?

How to build ERP

application having fun?Saturday, 22 October 2011

Page 2: PyconUA - How to build ERP application having fun?

How to build ERP

application having fun?Saturday, 22 October 2011

Page 6: PyconUA - How to build ERP application having fun?

the teamSaturday, 22 October 2011

Page 7: PyconUA - How to build ERP application having fun?

the teamSaturday, 22 October 2011

Page 8: PyconUA - How to build ERP application having fun?

WHY this talk?

Saturday, 22 October 2011

Page 9: PyconUA - How to build ERP application having fun?

My Reasons to be here

★ Building complex web applications could be

should be fun

★ Promote

and

Saturday, 22 October 2011

Page 10: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 11: PyconUA - How to build ERP application having fun?

This is

★ truly open source CMS

★ built on top of

★ more than 340 active core developers

Saturday, 22 October 2011

Page 12: PyconUA - How to build ERP application having fun?

This is

developed since 2001

Saturday, 22 October 2011

Page 13: PyconUA - How to build ERP application having fun?

★ among the top 2% of all open source projects

★ version 4.1.1 released 12 days ago

★ the best security track record of any major CMS

This is

Saturday, 22 October 2011

Page 14: PyconUA - How to build ERP application having fun?

This is

great for web publishing

and enterprise ready

Saturday, 22 October 2011

Page 15: PyconUA - How to build ERP application having fun?

This is

great for web publishing

and enterprise ready

Saturday, 22 October 2011

Page 16: PyconUA - How to build ERP application having fun?

This is

Saturday, 22 October 2011

Page 17: PyconUA - How to build ERP application having fun?

This is

Saturday, 22 October 2011

Page 18: PyconUA - How to build ERP application having fun?

This is

Saturday, 22 October 2011

Page 19: PyconUA - How to build ERP application having fun?

This is

Saturday, 22 October 2011

Page 20: PyconUA - How to build ERP application having fun?

This is

Saturday, 22 October 2011

Page 21: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 22: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 23: PyconUA - How to build ERP application having fun?

SMALL “Roughly 5000 lines of code”

Saturday, 22 October 2011

Page 24: PyconUA - How to build ERP application having fun?

SMALL

FAST

“Roughly 5000 lines of code”

Saturday, 22 October 2011

Page 25: PyconUA - How to build ERP application having fun?

SMALL

FAST

STABLE

“Roughly 5000 lines of code”

Saturday, 22 October 2011

Page 26: PyconUA - How to build ERP application having fun?

SMALL

TESTED

FAST

STABLE

“Roughly 5000 lines of code”

“100% statement coverage via unit and

integration tests”

Saturday, 22 October 2011

Page 27: PyconUA - How to build ERP application having fun?

SMALL

DOCUMENTED

TESTED

FAST

STABLE

“Roughly 5000 lines of code”

“100% statement coverage via unit and

integration tests”

“Literally nothingin Pyramid

is undocumented”

Saturday, 22 October 2011

Page 28: PyconUA - How to build ERP application having fun?

★ Decorator-based

configuration

★ Debug Toolbar

★ Event system

★ Configuration extensibility

Saturday, 22 October 2011

Page 29: PyconUA - How to build ERP application having fun?

the projectSaturday, 22 October 2011

Page 30: PyconUA - How to build ERP application having fun?

The Customer

★ .

★ Born as a startup

★ Offices in Miami,

New York and Los Angeles

Saturday, 22 October 2011

Page 31: PyconUA - How to build ERP application having fun?

Water today

★ U.S. - the largest consumer market

for bottled water in the world

★ in 2011, the market is forecast to have

a value of $86,421.2 billion

“Bottled water has become the second largest commercial beverage category”

Saturday, 22 October 2011

Page 32: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 33: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 34: PyconUA - How to build ERP application having fun?

project requirementsSaturday, 22 October 2011

Page 35: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 36: PyconUA - How to build ERP application having fun?

paperless sale

Saturday, 22 October 2011

Page 37: PyconUA - How to build ERP application having fun?

paperless sale

CRM

Sales

1 2 3 4 5

Warehouse

E-commerce

Support

Saturday, 22 October 2011

Page 38: PyconUA - How to build ERP application having fun?

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

Saturday, 22 October 2011

Page 39: PyconUA - How to build ERP application having fun?

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

Saturday, 22 October 2011

Page 40: PyconUA - How to build ERP application having fun?

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

★ Customer’s management (satisfaction, order status, etc.)

★ Reports (machine statistics, etc.)

★ Campaigns

Saturday, 22 October 2011

Page 41: PyconUA - How to build ERP application having fun?

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

★ Sales network management

★ Invoicing / accountancy

★ Revenue counter

★ Discount management

Saturday, 22 October 2011

Page 42: PyconUA - How to build ERP application having fun?

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

★ Catalog management

★ Warehouse management

★ Logistic tracking

Saturday, 22 October 2011

Page 43: PyconUA - How to build ERP application having fun?

★ Online shop (for beverages and accessories)

★ Machine configurator (interactive wizard)

★ Online payments

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

Saturday, 22 October 2011

Page 44: PyconUA - How to build ERP application having fun?

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

★ Machine maintenance (filter change)

★ Emergency services

★ Order / installation process

Saturday, 22 October 2011

Page 45: PyconUA - How to build ERP application having fun?

paperless saleCRM

Sales

1

2

3

4

5

Warehouse

E-commerce

Support

★ Machine maintenance (filter change)

★ Emergency services

★ Order / installation process

Saturday, 22 October 2011

Page 46: PyconUA - How to build ERP application having fun?

Support

CRM

Sales

Warehouse

E-commerce

paperless sale

Saturday, 22 October 2011

Page 47: PyconUA - How to build ERP application having fun?

Support

CRM

Sales

Warehouse

E-commerce

Intranet Extranet

paperless sale

Saturday, 22 October 2011

Page 48: PyconUA - How to build ERP application having fun?

Totally paperless ERPSaturday, 22 October 2011

Page 49: PyconUA - How to build ERP application having fun?

project gotchas

Saturday, 22 October 2011

Page 50: PyconUA - How to build ERP application having fun?

project gotchas

★ Requirements are not rock solid (it’s a startup) - project will

grow with the customer

★ Customer is in U.S. - planning

regular meetings is essential

★ We need to find new framework

★ Only 5 months to delivery

Saturday, 22 October 2011

Page 51: PyconUA - How to build ERP application having fun?

Arch i tectural dec i s ionsSaturday, 22 October 2011

Page 52: PyconUA - How to build ERP application having fun?

a n d

Saturday, 22 October 2011

Page 53: PyconUA - How to build ERP application having fun?

a n d

Saturday, 22 October 2011

Page 54: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 55: PyconUA - How to build ERP application having fun?

★ architecture is not so far

away from Zope

★ it supports SQLAlchemy

out of the box

★ great documentation and

active community

★ add’s some fresh air to your

architecture

why ?

Saturday, 22 October 2011

Page 56: PyconUA - How to build ERP application having fun?

why ?

★ pyramid_formalchemy CRUD

★ easy pluggable widgets

★ Multi-upload

★ Metric units

★ Autocomplete

★ Multi-relation

★ 75% jQuery code

Saturday, 22 October 2011

Page 57: PyconUA - How to build ERP application having fun?

why ?

★ pyramid_formalchemy CRUD

★ easy pluggable widgets

★ Multi-upload

★ Metric units

★ Autocomplete

★ Multi-relation

★ 75% jQuery code

Saturday, 22 October 2011

Page 58: PyconUA - How to build ERP application having fun?

why ?

★ pyramid_formalchemy CRUD

★ easy pluggable widgets

★ Multi-upload

★ Metric units

★ Autocomplete

★ Multi-relation

★ 75% jQuery code

Saturday, 22 October 2011

Page 59: PyconUA - How to build ERP application having fun?

why ?

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

Saturday, 22 October 2011

Page 60: PyconUA - How to build ERP application having fun?

★ Poi

★ LinguaPlone

★ PloneFormGen

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

why ?

★ Diazo (plone.app.theming)

Saturday, 22 October 2011

Page 61: PyconUA - How to build ERP application having fun?

★ Poi

★ LinguaPlone

★ PloneFormGen

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

why ?

★ Diazo (plone.app.theming)

Saturday, 22 October 2011

Page 62: PyconUA - How to build ERP application having fun?

★ Poi

★ Diazo (plone.app.theming)

★ LinguaPlone

★ PloneFormGen

why ?

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

Saturday, 22 October 2011

Page 63: PyconUA - How to build ERP application having fun?

★ Poi

★ Diazo (plone.app.theming)

★ LinguaPlone

★ PloneFormGen

why ?

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

Saturday, 22 October 2011

Page 64: PyconUA - How to build ERP application having fun?

★ Poi

★ Diazo (plone.app.theming)

★ LinguaPlone

★ PloneFormGen

why ?

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

Saturday, 22 October 2011

Page 65: PyconUA - How to build ERP application having fun?

★ Poi

★ Diazo (plone.app.theming)

★ LinguaPlone

★ PloneFormGen

why ?

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

Saturday, 22 October 2011

Page 66: PyconUA - How to build ERP application having fun?

★ Poi

★ LinguaPlone

★ PloneFormGen

why ?

★ Diazo (plone.app.theming)

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

Saturday, 22 October 2011

Page 67: PyconUA - How to build ERP application having fun?

★ Poi

★ LinguaPlone

★ PloneFormGen

why ?

★ Diazo (plone.app.theming)

★ The Best CMS

★ several years of experience

★ 1595 addons (and counting...)

on plone.org/products

Saturday, 22 October 2011

Page 68: PyconUA - How to build ERP application having fun?

Integrat ionSaturday, 22 October 2011

Page 69: PyconUA - How to build ERP application having fun?

SQ LA l chemy

Saturday, 22 October 2011

Page 70: PyconUA - How to build ERP application having fun?

PostgreSQL

aeterna.models

SQ LA l chemy

Saturday, 22 October 2011

Page 71: PyconUA - How to build ERP application having fun?

au then t i c a t ion - au thor iza t ion

Saturday, 22 October 2011

Page 72: PyconUA - How to build ERP application having fun?

auth storage

au then t i c a t ion - au thor iza t ionR

eque

st

PostgreSQL

repoze.who

pas.plugins.sa

Saturday, 22 October 2011

Page 73: PyconUA - How to build ERP application having fun?

auth storage

au then t i c a t ion - au thor iza t ion

★ users

★ groups

★ roles

PostgreSQL

Saturday, 22 October 2011

Page 74: PyconUA - How to build ERP application having fun?

auth storage

au then t i c a t ion - au thor iza t ion

★ users

★ groups

★ roles

PostgreSQL

single-sign-on

★ plone.session

★ repoze.who.plugins.auth_tkt

mod_auth_tkt

Saturday, 22 October 2011

Page 75: PyconUA - How to build ERP application having fun?

bu i l dout

[intranet-plone]

recipe = plone.recipe.zope2instance

eggs =

${intranet-plone:eggs} aeterna.models

[intranet-pyramid]

recipe = zc.recipe.egg

eggs =

${intranet-pyramid:eggs} aeterna.models

Saturday, 22 October 2011

Page 76: PyconUA - How to build ERP application having fun?

T he b ig p i c ture

PostgreSQL

ZODB

Apa

che

repoze.who

pas.plugins.sa

beaker

Saturday, 22 October 2011

Page 77: PyconUA - How to build ERP application having fun?

intranetextranet

T he b ig p i c ture

PostgreSQL

ZODB

Apa

che

repoze.who

pas.plugins.sa

beaker

Saturday, 22 October 2011

Page 78: PyconUA - How to build ERP application having fun?

why not other compet i tors?

Saturday, 22 October 2011

Page 79: PyconUA - How to build ERP application having fun?

django: no!★ less code more magic

★ not so flexible

(specification is growing)

★ using SQLAlchemy within

could be tricky

Saturday, 22 October 2011

Page 80: PyconUA - How to build ERP application having fun?

drupal : no!★ security problems

(370 CVE entries)

★ integration is more difficult

(PHP vs. Python)

★ missing features

workflow, complex ACL, etc.

Saturday, 22 October 2011

Page 81: PyconUA - How to build ERP application having fun?

openerp : hmm★ quite complex: CRM, sales,

accounting and much more

★ not enough time

to fully investigate it

★ not a generic framework

Saturday, 22 October 2011

Page 82: PyconUA - How to build ERP application having fun?

resultsSaturday, 22 October 2011

Page 83: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 84: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 85: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 86: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 87: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 88: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 89: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 90: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 91: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 92: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 93: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 94: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 95: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 96: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 97: PyconUA - How to build ERP application having fun?

Saturday, 22 October 2011

Page 98: PyconUA - How to build ERP application having fun?

What matters?Saturday, 22 October 2011

Page 99: PyconUA - How to build ERP application having fun?

Proper ToolsSaturday, 22 October 2011

Page 100: PyconUA - How to build ERP application having fun?

and a good teamSaturday, 22 October 2011

Page 101: PyconUA - How to build ERP application having fun?

★ it’s always a lot of fun to

Prototype but...

★ be aware of The

Learning Curve Effect

★ Collecting specification and

keeping docs up-to-date

is challenging

Saturday, 22 October 2011

Page 102: PyconUA - How to build ERP application having fun?

check this out!Saturday, 22 October 2011

Page 103: PyconUA - How to build ERP application having fun?

pyramid_formalchemy

★ started by Gaël Pasgrimaud

“gawel” supported by

★ using SQLAlchemy,

Formalchemy and fanstatic

★ available on pypi

more then 1720 downloads so far

Saturday, 22 October 2011

Page 104: PyconUA - How to build ERP application having fun?

pyramid_formalchemy

★ events hooks

★ view and action customizations

★ i18n support

★ paster templates

★ fanstatic integration

Saturday, 22 October 2011

Page 105: PyconUA - How to build ERP application having fun?

pyramid_formalchemy

def main(global_config, **settings): """ This function returns a Pyramid WSGI application."""

engine = engine_from_config(settings, 'sqlalchemy.') initialize_sql(engine) config = Configurator(settings=settings)

# pyramid_formalchemy's configuration config.include('pyramid_formalchemy')

# register an admin UI config.formalchemy_admin('/admin', package='pyramidapp')

return config.make_wsgi_app()

Saturday, 22 October 2011

Page 106: PyconUA - How to build ERP application having fun?

pyramid_formalchemy

★ demohttp://docs.formalchemy.org/demo/admin

★ documentationhttp://docs.formalchemy.org/pyramid_formalchemy

★ downloadhttp://pypi.python.org/pypi/pyramid_formalchemy

Saturday, 22 October 2011

Page 107: PyconUA - How to build ERP application having fun?

★ a pyramid_formalchemy plugin

★ based on twitter bootstrap

★ integrated with fanstatic

★ released on pypi

http://pypi.python.org/pypi/fa.bootstrap

fa.bootstrap

Saturday, 22 October 2011

Page 108: PyconUA - How to build ERP application having fun?

fa.bootstrapSaturday, 22 October 2011

Page 109: PyconUA - How to build ERP application having fun?

fa.bootstrapSaturday, 22 October 2011

Page 110: PyconUA - How to build ERP application having fun?

fa.bootstrapSaturday, 22 October 2011

Page 111: PyconUA - How to build ERP application having fun?

fa.bootstrapSaturday, 22 October 2011

Page 112: PyconUA - How to build ERP application having fun?

fa.bootstrapSaturday, 22 October 2011

Page 113: PyconUA - How to build ERP application having fun?

fa.bootstrapSaturday, 22 October 2011

Page 114: PyconUA - How to build ERP application having fun?

fa.bootstrapSaturday, 22 October 2011

Page 115: PyconUA - How to build ERP application having fun?

Quest ions?Saturday, 22 October 2011