SlideShare a Scribd company logo
1 of 116
Download to read offline
How to build ERP
                            application having fun?
Saturday, 22 October 2011
How to build ERP
                            application having fun?
Saturday, 22 October 2011
author
                            Andrew Mleczko
                            Software Integrator
                            Ferrara (Italy)
                               amleczko
                               amleczko@redturtle.it




Saturday, 22 October 2011
author
                            Andrew Mleczko
                            Software Integrator
                            Ferrara (Italy)
                               amleczko
                               amleczko@redturtle.it




Saturday, 22 October 2011
author
                            Ferrara   Andrew Mleczko
                                      Software Integrator
                                      Ferrara (Italy)
                                         amleczko
                                         amleczko@redturtle.it




Saturday, 22 October 2011
the         team
Saturday, 22 October 2011
the         team
Saturday, 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
This is
       ★ 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


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              “Roughly 5000 lines
                                 of code”
         FAST




Saturday, 22 October 2011
SMALL              “Roughly 5000 lines
                                 of code”
         FAST
         STABLE




Saturday, 22 October 2011
SMALL              “Roughly 5000 lines
                                 of code”
         FAST
                                   “100% statement
         STABLE
                                  coverage via unit and
         TESTED                     integration tests”




Saturday, 22 October 2011
SMALL              “Roughly 5000 lines
                                 of code”
         FAST
                                   “100% statement
         STABLE
                                  coverage via unit and
         TESTED                     integration tests”


         DOCUMENTED          “Literally nothing
                                 in Pyramid
                             is undocumented”

Saturday, 22 October 2011
★        Decorator-based
                 configuration

        ★        Debug Toolbar

        ★        Event system

        ★ Configuration          extensibility



Saturday, 22 October 2011
the project
Saturday, 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 requirements
Saturday, 22 October 2011
Saturday, 22 October 2011
paperless sale




Saturday, 22 October 2011
paperless sale
                            Sales           E-commerce




         1                     2    3           4          5




                     CRM            Warehouse            Support




Saturday, 22 October 2011
paperless sale
         1                     CRM



         2                    Sales




         3                  Warehouse



         4                  E-commerce




         5                   Support


Saturday, 22 October 2011
paperless sale
         1                     CRM



         2                    Sales



         3                  Warehouse



         4                  E-commerce



         5                   Support


Saturday, 22 October 2011
paperless sale
         1                     CRM       ★   Customer’s management
                                             (satisfaction, order status,
                                             etc.)
         2                    Sales
                                         ★   Reports (machine statistics,
                                             etc.)
         3                  Warehouse
                                         ★   Campaigns

         4                  E-commerce



         5                   Support


Saturday, 22 October 2011
paperless sale
         1                     CRM       ★   Sales network management


                                         ★   Invoicing / accountancy
         2                    Sales
                                         ★   Revenue counter

         3                  Warehouse    ★   Discount management


         4                  E-commerce



         5                   Support


Saturday, 22 October 2011
paperless sale
         1                     CRM       ★   Catalog management


                                         ★   Warehouse management
         2                    Sales
                                         ★   Logistic tracking

         3                  Warehouse



         4                  E-commerce



         5                   Support


Saturday, 22 October 2011
paperless sale
         1                     CRM       ★   Online shop (for beverages
                                             and accessories)


         2                    Sales      ★   Machine configurator
                                             (interactive wizard)

         3                  Warehouse    ★   Online payments



         4                  E-commerce



         5                   Support


Saturday, 22 October 2011
paperless sale
         1                     CRM       ★   Machine maintenance (filter
                                             change)


         2                    Sales      ★   Emergency services


                                         ★   Order / installation process
         3                  Warehouse



         4                  E-commerce



         5                   Support


Saturday, 22 October 2011
paperless sale
         1                     CRM       ★   Machine maintenance (filter
                                             change)


         2                    Sales      ★   Emergency services


                                         ★   Order / installation process
         3                  Warehouse



         4                  E-commerce



         5                   Support


Saturday, 22 October 2011
paperless sale


                            Warehouse    Support



                              CRM       E-commerce




                              Sales




Saturday, 22 October 2011
paperless sale
                            Intranet    Extranet

                            Warehouse    Support



                              CRM       E-commerce




                              Sales




Saturday, 22 October 2011
Totally paperless ERP
Saturday, 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
Arc hi t e ct u ral dec i si ons
Saturday, 22 October 2011
and



Saturday, 22 October 2011
and



Saturday, 22 October 2011
Saturday, 22 October 2011
why                                 ?
           ★ 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




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
why                                 ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
why                                 ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
why                                 ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
why                                 ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
why                                ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
why                                ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
why                                ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
why                                ?
       ★ The Best CMS


       ★ several years of experience


       ★ 1595 addons (and counting...)
            on plone.org/products
               ★    PloneFormGen

               ★    Poi

               ★    Diazo (plone.app.theming)

               ★    LinguaPlone

Saturday, 22 October 2011
I nt eg r at i o n
Saturday, 22 October 2011
SQL A lchemy




Saturday, 22 October 2011
SQL A lchemy

                            aeterna.models




                            PostgreSQL

Saturday, 22 October 2011
authentication - authorization




Saturday, 22 October 2011
authentication - authorization
                            auth storage
             Request




                             pas.plugins.sa




                              repoze.who




                             PostgreSQL


Saturday, 22 October 2011
authentication - authorization
                    auth storage
             ★    users

             ★    groups

             ★    roles



                        PostgreSQL


Saturday, 22 October 2011
authentication - authorization
                    auth storage          single-sign-on
             ★    users              ★   plone.session

                                     ★   repoze.who.plugins.auth_tkt
             ★    groups

             ★    roles
                                            mod_auth_tkt



                        PostgreSQL


Saturday, 22 October 2011
buildout
           [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
The big picture
                                     pas.plugins.sa


                                                              ZODB
        Apache




                            beaker               PostgreSQL


                                     repoze.who




Saturday, 22 October 2011
The big picture




                                                                     extranet
                                     pas.plugins.sa


                                                              ZODB
        Apache




                            beaker               PostgreSQL




                                                                     intranet
                                     repoze.who




Saturday, 22 October 2011
why not o t h er c o mpet i t o rs?
Saturday, 22 October 2011
d j ang o :                     no!
       ★ less         code more magic

       ★ not so             flexible
            (specification is growing)


       ★ using              SQLAlchemy within
            could be tricky




Saturday, 22 October 2011
d r u pal:               no!
       ★    security problems
            (370 CVE entries)


       ★    integration is more difficult
            (PHP vs. Python)


       ★    missing features
            workflow, complex ACL, etc.




Saturday, 22 October 2011
o pen erp :                     hmm
       ★ quite complex: CRM , sales,
             accounting and much more


       ★ not enough         time
             to fully investigate it


       ★ not a generic framework




Saturday, 22 October 2011
results
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
Saturday, 22 October 2011
What mat t ers?
Saturday, 22 October 2011
Proper Tools
Saturday, 22 October 2011
and a g o o d t eam
Saturday, 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

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


   ★     documentation
         http://docs.formalchemy.org/pyramid_formalchemy


   ★     download
         http://pypi.python.org/pypi/pyramid_formalchemy




Saturday, 22 October 2011
fa.bootstrap

                            ★ a   pyramid_formalchemy plugin

                            ★ based on   twitter bootstrap

                            ★ integrated with   fanstatic

                            ★ released on pypi

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




Saturday, 22 October 2011
fa.bootstrap
Saturday, 22 October 2011
fa.bootstrap
Saturday, 22 October 2011
fa.bootstrap
Saturday, 22 October 2011
fa.bootstrap
Saturday, 22 October 2011
fa.bootstrap
Saturday, 22 October 2011
fa.bootstrap
Saturday, 22 October 2011
fa.bootstrap
Saturday, 22 October 2011
Qu est i ons?
Saturday, 22 October 2011
Credits
     ★     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/




Saturday, 22 October 2011

More Related Content

Similar to PyconUA - How to build ERP application having fun?

JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forwardeug3n_cojocaru
 
Monitoring is easy, why are we so bad at it presentation
Monitoring is easy, why are we so bad at it  presentationMonitoring is easy, why are we so bad at it  presentation
Monitoring is easy, why are we so bad at it presentationTheo Schlossnagle
 
Ruby can haz Everyone
Ruby can haz EveryoneRuby can haz Everyone
Ruby can haz EveryoneRubyX
 
Donating a mature project to Eclipse
Donating a mature project to EclipseDonating a mature project to Eclipse
Donating a mature project to Eclipseglynnormington
 
Sharath Bulusu, Guardian News & Media
Sharath Bulusu, Guardian News & MediaSharath Bulusu, Guardian News & Media
Sharath Bulusu, Guardian News & MediaMashery
 
BruCON Agnitio Workshop
BruCON Agnitio WorkshopBruCON Agnitio Workshop
BruCON Agnitio WorkshopSecurity Ninja
 
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...Brian Huff
 
PLM Trends and Solutions Alternatives (ENGLISH)
PLM Trends and Solutions Alternatives (ENGLISH) PLM Trends and Solutions Alternatives (ENGLISH)
PLM Trends and Solutions Alternatives (ENGLISH) Oleg Shilovitsky
 
Agile Deployments with Puppet
Agile Deployments with PuppetAgile Deployments with Puppet
Agile Deployments with PuppetPuppet
 
Protect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security AttacksProtect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security AttacksAcquia
 
20110721 pankaku us
20110721 pankaku us20110721 pankaku us
20110721 pankaku us01Booster
 

Similar to PyconUA - How to build ERP application having fun? (13)

JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Monitoring is easy, why are we so bad at it presentation
Monitoring is easy, why are we so bad at it  presentationMonitoring is easy, why are we so bad at it  presentation
Monitoring is easy, why are we so bad at it presentation
 
Ruby can haz Everyone
Ruby can haz EveryoneRuby can haz Everyone
Ruby can haz Everyone
 
Donating a mature project to Eclipse
Donating a mature project to EclipseDonating a mature project to Eclipse
Donating a mature project to Eclipse
 
Sharath Bulusu, Guardian News & Media
Sharath Bulusu, Guardian News & MediaSharath Bulusu, Guardian News & Media
Sharath Bulusu, Guardian News & Media
 
BruCON Agnitio Workshop
BruCON Agnitio WorkshopBruCON Agnitio Workshop
BruCON Agnitio Workshop
 
Frontend caching
Frontend cachingFrontend caching
Frontend caching
 
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
 
PLM Trends and Solutions Alternatives (ENGLISH)
PLM Trends and Solutions Alternatives (ENGLISH) PLM Trends and Solutions Alternatives (ENGLISH)
PLM Trends and Solutions Alternatives (ENGLISH)
 
Agile Deployments with Puppet
Agile Deployments with PuppetAgile Deployments with Puppet
Agile Deployments with Puppet
 
Protect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security AttacksProtect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security Attacks
 
clrh58
clrh58clrh58
clrh58
 
20110721 pankaku us
20110721 pankaku us20110721 pankaku us
20110721 pankaku us
 

More from Andrew Mleczko

Lost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life backLost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life backAndrew Mleczko
 
Celery and the social networks
Celery and the social networksCelery and the social networks
Celery and the social networksAndrew Mleczko
 
PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...
PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...
PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...Andrew Mleczko
 
Project management software of your dreams
Project management software of your dreamsProject management software of your dreams
Project management software of your dreamsAndrew Mleczko
 
Bootstrap your app in 45 seconds
Bootstrap your app in 45 secondsBootstrap your app in 45 seconds
Bootstrap your app in 45 secondsAndrew Mleczko
 
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?Andrew Mleczko
 
Future is bright, future is Plone
Future is bright, future is PloneFuture is bright, future is Plone
Future is bright, future is PloneAndrew Mleczko
 
Needle in an enterprise haystack
Needle in an enterprise haystackNeedle in an enterprise haystack
Needle in an enterprise haystackAndrew Mleczko
 
Fast content import in Plone
Fast content import in PloneFast content import in Plone
Fast content import in PloneAndrew Mleczko
 
Plone TuneUp challenges
Plone TuneUp challengesPlone TuneUp challenges
Plone TuneUp challengesAndrew Mleczko
 

More from Andrew Mleczko (10)

Lost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life backLost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life back
 
Celery and the social networks
Celery and the social networksCelery and the social networks
Celery and the social networks
 
PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...
PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...
PloneConf2012 - Are you in a hole and still digging? Or how to become an agil...
 
Project management software of your dreams
Project management software of your dreamsProject management software of your dreams
Project management software of your dreams
 
Bootstrap your app in 45 seconds
Bootstrap your app in 45 secondsBootstrap your app in 45 seconds
Bootstrap your app in 45 seconds
 
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
 
Future is bright, future is Plone
Future is bright, future is PloneFuture is bright, future is Plone
Future is bright, future is Plone
 
Needle in an enterprise haystack
Needle in an enterprise haystackNeedle in an enterprise haystack
Needle in an enterprise haystack
 
Fast content import in Plone
Fast content import in PloneFast content import in Plone
Fast content import in Plone
 
Plone TuneUp challenges
Plone TuneUp challengesPlone TuneUp challenges
Plone TuneUp challenges
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

PyconUA - How to build ERP application having fun?

  • 1. How to build ERP application having fun? Saturday, 22 October 2011
  • 2. How to build ERP application having fun? Saturday, 22 October 2011
  • 3. author Andrew Mleczko Software Integrator Ferrara (Italy) amleczko amleczko@redturtle.it Saturday, 22 October 2011
  • 4. author Andrew Mleczko Software Integrator Ferrara (Italy) amleczko amleczko@redturtle.it Saturday, 22 October 2011
  • 5. author Ferrara Andrew Mleczko Software Integrator Ferrara (Italy) amleczko amleczko@redturtle.it Saturday, 22 October 2011
  • 6. the team Saturday, 22 October 2011
  • 7. the team Saturday, 22 October 2011
  • 8. WHY this talk? Saturday, 22 October 2011
  • 9. My Reasons to be here ★ Building complex web applications could be should be fun ★ Promote and Saturday, 22 October 2011
  • 11. This is ★ truly open source CMS ★ built on top of ★ more than 340 active core developers Saturday, 22 October 2011
  • 12. This is developed since 2001 Saturday, 22 October 2011
  • 13. This is ★ 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 Saturday, 22 October 2011
  • 14. This is great for web publishing and enterprise ready Saturday, 22 October 2011
  • 15. This is great for web publishing and enterprise ready Saturday, 22 October 2011
  • 16. This is Saturday, 22 October 2011
  • 17. This is Saturday, 22 October 2011
  • 18. This is Saturday, 22 October 2011
  • 19. This is Saturday, 22 October 2011
  • 20. This is Saturday, 22 October 2011
  • 23. SMALL “Roughly 5000 lines of code” Saturday, 22 October 2011
  • 24. SMALL “Roughly 5000 lines of code” FAST Saturday, 22 October 2011
  • 25. SMALL “Roughly 5000 lines of code” FAST STABLE Saturday, 22 October 2011
  • 26. SMALL “Roughly 5000 lines of code” FAST “100% statement STABLE coverage via unit and TESTED integration tests” Saturday, 22 October 2011
  • 27. SMALL “Roughly 5000 lines of code” FAST “100% statement STABLE coverage via unit and TESTED integration tests” DOCUMENTED “Literally nothing in Pyramid is undocumented” Saturday, 22 October 2011
  • 28. Decorator-based configuration ★ Debug Toolbar ★ Event system ★ Configuration extensibility Saturday, 22 October 2011
  • 29. the project Saturday, 22 October 2011
  • 30. The Customer ★ . ★ Born as a startup ★ Offices in Miami, New York and Los Angeles Saturday, 22 October 2011
  • 31. 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
  • 37. paperless sale Sales E-commerce 1 2 3 4 5 CRM Warehouse Support Saturday, 22 October 2011
  • 38. paperless sale 1 CRM 2 Sales 3 Warehouse 4 E-commerce 5 Support Saturday, 22 October 2011
  • 39. paperless sale 1 CRM 2 Sales 3 Warehouse 4 E-commerce 5 Support Saturday, 22 October 2011
  • 40. paperless sale 1 CRM ★ Customer’s management (satisfaction, order status, etc.) 2 Sales ★ Reports (machine statistics, etc.) 3 Warehouse ★ Campaigns 4 E-commerce 5 Support Saturday, 22 October 2011
  • 41. paperless sale 1 CRM ★ Sales network management ★ Invoicing / accountancy 2 Sales ★ Revenue counter 3 Warehouse ★ Discount management 4 E-commerce 5 Support Saturday, 22 October 2011
  • 42. paperless sale 1 CRM ★ Catalog management ★ Warehouse management 2 Sales ★ Logistic tracking 3 Warehouse 4 E-commerce 5 Support Saturday, 22 October 2011
  • 43. paperless sale 1 CRM ★ Online shop (for beverages and accessories) 2 Sales ★ Machine configurator (interactive wizard) 3 Warehouse ★ Online payments 4 E-commerce 5 Support Saturday, 22 October 2011
  • 44. paperless sale 1 CRM ★ Machine maintenance (filter change) 2 Sales ★ Emergency services ★ Order / installation process 3 Warehouse 4 E-commerce 5 Support Saturday, 22 October 2011
  • 45. paperless sale 1 CRM ★ Machine maintenance (filter change) 2 Sales ★ Emergency services ★ Order / installation process 3 Warehouse 4 E-commerce 5 Support Saturday, 22 October 2011
  • 46. paperless sale Warehouse Support CRM E-commerce Sales Saturday, 22 October 2011
  • 47. paperless sale Intranet Extranet Warehouse Support CRM E-commerce Sales Saturday, 22 October 2011
  • 50. 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
  • 51. Arc hi t e ct u ral dec i si ons Saturday, 22 October 2011
  • 55. why ? ★ 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 Saturday, 22 October 2011
  • 56. why ? ★ pyramid_formalchemy CRUD ★ easy pluggable widgets ★ Multi-upload ★ Metric units ★ Autocomplete ★ Multi-relation ★ 75% jQuery code Saturday, 22 October 2011
  • 57. why ? ★ pyramid_formalchemy CRUD ★ easy pluggable widgets ★ Multi-upload ★ Metric units ★ Autocomplete ★ Multi-relation ★ 75% jQuery code Saturday, 22 October 2011
  • 58. why ? ★ pyramid_formalchemy CRUD ★ easy pluggable widgets ★ Multi-upload ★ Metric units ★ Autocomplete ★ Multi-relation ★ 75% jQuery code Saturday, 22 October 2011
  • 59. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products Saturday, 22 October 2011
  • 60. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 61. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 62. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 63. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 64. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 65. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 66. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 67. why ? ★ The Best CMS ★ several years of experience ★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo (plone.app.theming) ★ LinguaPlone Saturday, 22 October 2011
  • 68. I nt eg r at i o n Saturday, 22 October 2011
  • 69. SQL A lchemy Saturday, 22 October 2011
  • 70. SQL A lchemy aeterna.models PostgreSQL Saturday, 22 October 2011
  • 72. authentication - authorization auth storage Request pas.plugins.sa repoze.who PostgreSQL Saturday, 22 October 2011
  • 73. authentication - authorization auth storage ★ users ★ groups ★ roles PostgreSQL Saturday, 22 October 2011
  • 74. authentication - authorization auth storage single-sign-on ★ users ★ plone.session ★ repoze.who.plugins.auth_tkt ★ groups ★ roles mod_auth_tkt PostgreSQL Saturday, 22 October 2011
  • 75. buildout [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
  • 76. The big picture pas.plugins.sa ZODB Apache beaker PostgreSQL repoze.who Saturday, 22 October 2011
  • 77. The big picture extranet pas.plugins.sa ZODB Apache beaker PostgreSQL intranet repoze.who Saturday, 22 October 2011
  • 78. why not o t h er c o mpet i t o rs? Saturday, 22 October 2011
  • 79. d j ang o : no! ★ less code more magic ★ not so flexible (specification is growing) ★ using SQLAlchemy within could be tricky Saturday, 22 October 2011
  • 80. d r u pal: no! ★ security problems (370 CVE entries) ★ integration is more difficult (PHP vs. Python) ★ missing features workflow, complex ACL, etc. Saturday, 22 October 2011
  • 81. o pen erp : hmm ★ quite complex: CRM , sales, accounting and much more ★ not enough time to fully investigate it ★ not a generic framework Saturday, 22 October 2011
  • 98. What mat t ers? Saturday, 22 October 2011
  • 100. and a g o o d t eam Saturday, 22 October 2011
  • 101. ★ 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
  • 102. check this out! Saturday, 22 October 2011
  • 103. 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
  • 104. pyramid_formalchemy ★ events hooks ★ view and action customizations ★ i18n support ★ paster templates ★ fanstatic integration Saturday, 22 October 2011
  • 105. 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
  • 106. pyramid_formalchemy ★ demo http://docs.formalchemy.org/demo/admin ★ documentation http://docs.formalchemy.org/pyramid_formalchemy ★ download http://pypi.python.org/pypi/pyramid_formalchemy Saturday, 22 October 2011
  • 107. fa.bootstrap ★ a pyramid_formalchemy plugin ★ based on twitter bootstrap ★ integrated with fanstatic ★ released on pypi http://pypi.python.org/pypi/fa.bootstrap Saturday, 22 October 2011
  • 115. Qu est i ons? Saturday, 22 October 2011
  • 116. Credits ★ 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/ Saturday, 22 October 2011