PyconUA - How to build ERP application having fun?
-
Upload
andrew-mleczko -
Category
Technology
-
view
1.929 -
download
3
Transcript of PyconUA - How to build ERP application having fun?
How to build ERP
application having fun?Saturday, 22 October 2011
How to build ERP
application having fun?Saturday, 22 October 2011
Andrew MleczkoSoftware Integrator
Ferrara (Italy)
amleczko
author
Saturday, 22 October 2011
author
Andrew MleczkoSoftware Integrator
Ferrara (Italy)
amleczko
Saturday, 22 October 2011
Ferrara
author
Andrew MleczkoSoftware Integrator
Ferrara (Italy)
amleczko
Saturday, 22 October 2011
the teamSaturday, 22 October 2011
the teamSaturday, 22 October 2011
WHY this talk?
Saturday, 22 October 2011
My Reasons to be here
★ Building complex web applications could be
should be fun
★ Promote
and
Saturday, 22 October 2011
Saturday, 22 October 2011
This is
★ truly open source CMS
★ built on top of
★ more than 340 active core developers
Saturday, 22 October 2011
This is
developed since 2001
Saturday, 22 October 2011
★ 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
This is
great for web publishing
and enterprise ready
Saturday, 22 October 2011
This is
great for web publishing
and enterprise ready
Saturday, 22 October 2011
This is
Saturday, 22 October 2011
This is
Saturday, 22 October 2011
This is
Saturday, 22 October 2011
This is
Saturday, 22 October 2011
This is
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
SMALL “Roughly 5000 lines of code”
Saturday, 22 October 2011
SMALL
FAST
“Roughly 5000 lines of code”
Saturday, 22 October 2011
SMALL
FAST
STABLE
“Roughly 5000 lines of code”
Saturday, 22 October 2011
SMALL
TESTED
FAST
STABLE
“Roughly 5000 lines of code”
“100% statement coverage via unit and
integration tests”
Saturday, 22 October 2011
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
★ Decorator-based
configuration
★ Debug Toolbar
★ Event system
★ Configuration extensibility
Saturday, 22 October 2011
the projectSaturday, 22 October 2011
The Customer
★ .
★ Born as a startup
★ Offices in Miami,
New York and Los Angeles
Saturday, 22 October 2011
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
Saturday, 22 October 2011
Saturday, 22 October 2011
project requirementsSaturday, 22 October 2011
Saturday, 22 October 2011
paperless sale
Saturday, 22 October 2011
paperless sale
CRM
Sales
1 2 3 4 5
Warehouse
E-commerce
Support
Saturday, 22 October 2011
paperless saleCRM
Sales
1
2
3
4
5
Warehouse
E-commerce
Support
Saturday, 22 October 2011
paperless saleCRM
Sales
1
2
3
4
5
Warehouse
E-commerce
Support
Saturday, 22 October 2011
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
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
paperless saleCRM
Sales
1
2
3
4
5
Warehouse
E-commerce
Support
★ Catalog management
★ Warehouse management
★ Logistic tracking
Saturday, 22 October 2011
★ 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
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
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
Support
CRM
Sales
Warehouse
E-commerce
paperless sale
Saturday, 22 October 2011
Support
CRM
Sales
Warehouse
E-commerce
Intranet Extranet
paperless sale
Saturday, 22 October 2011
Totally paperless ERPSaturday, 22 October 2011
project gotchas
Saturday, 22 October 2011
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
Arch i tectural dec i s ionsSaturday, 22 October 2011
a n d
Saturday, 22 October 2011
a n d
Saturday, 22 October 2011
Saturday, 22 October 2011
★ 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
why ?
★ pyramid_formalchemy CRUD
★ easy pluggable widgets
★ Multi-upload
★ Metric units
★ Autocomplete
★ Multi-relation
★ 75% jQuery code
Saturday, 22 October 2011
why ?
★ pyramid_formalchemy CRUD
★ easy pluggable widgets
★ Multi-upload
★ Metric units
★ Autocomplete
★ Multi-relation
★ 75% jQuery code
Saturday, 22 October 2011
why ?
★ pyramid_formalchemy CRUD
★ easy pluggable widgets
★ Multi-upload
★ Metric units
★ Autocomplete
★ Multi-relation
★ 75% jQuery code
Saturday, 22 October 2011
why ?
★ The Best CMS
★ several years of experience
★ 1595 addons (and counting...)
on plone.org/products
Saturday, 22 October 2011
★ 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
★ 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
★ 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
★ 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
★ 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
★ 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
★ 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
★ 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
Integrat ionSaturday, 22 October 2011
SQ LA l chemy
Saturday, 22 October 2011
PostgreSQL
aeterna.models
SQ LA l chemy
Saturday, 22 October 2011
au then t i c a t ion - au thor iza t ion
Saturday, 22 October 2011
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
auth storage
au then t i c a t ion - au thor iza t ion
★ users
★ groups
★ roles
PostgreSQL
Saturday, 22 October 2011
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
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
T he b ig p i c ture
PostgreSQL
ZODB
Apa
che
repoze.who
pas.plugins.sa
beaker
Saturday, 22 October 2011
intranetextranet
T he b ig p i c ture
PostgreSQL
ZODB
Apa
che
repoze.who
pas.plugins.sa
beaker
Saturday, 22 October 2011
why not other compet i tors?
Saturday, 22 October 2011
django: no!★ less code more magic
★ not so flexible
(specification is growing)
★ using SQLAlchemy within
could be tricky
Saturday, 22 October 2011
drupal : no!★ security problems
(370 CVE entries)
★ integration is more difficult
(PHP vs. Python)
★ missing features
workflow, complex ACL, etc.
Saturday, 22 October 2011
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
resultsSaturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
Saturday, 22 October 2011
What matters?Saturday, 22 October 2011
Proper ToolsSaturday, 22 October 2011
and a good teamSaturday, 22 October 2011
★ 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
check this out!Saturday, 22 October 2011
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
pyramid_formalchemy
★ events hooks
★ view and action customizations
★ i18n support
★ paster templates
★ fanstatic integration
Saturday, 22 October 2011
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
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
★ 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
fa.bootstrapSaturday, 22 October 2011
fa.bootstrapSaturday, 22 October 2011
fa.bootstrapSaturday, 22 October 2011
fa.bootstrapSaturday, 22 October 2011
fa.bootstrapSaturday, 22 October 2011
fa.bootstrapSaturday, 22 October 2011
fa.bootstrapSaturday, 22 October 2011
Quest ions?Saturday, 22 October 2011
★ http://flickr.com/photos/mleczko
★ http://www.melaiphone.com/
★ http://static.iphoneitalia.com
★ http://www.theapplelounge.com
★ http://www.nonconvenzionale.com
★ http://craziestgadgets.com/
★ http://obsessivelystitching.blogspot.com/
★ http://theclockblog.blogspot.com/
★ http://www.scatoladeigiochi.altervista.org/
★ http://wallpapers.brothersoft.com/
★ www.prisionerodelpixel.com
★ http://jawaexpress.com/
★ http://mikehenneke.mvourtown.com/
★ http://android-apps.com/
Credits
Saturday, 22 October 2011