How to build complexweb applications having   fun?
author         Andrew Mleczko         Software Integrator         Ferrara (Italy)         twitter: amleczko         amlecz...
the   team
WHY this talk?
My Reasons to be here★   Building   complex web    applications could be   fun★   Architectural    decisions are    more i...
★   among the    top 2% of all open source projects worldwide★   more than   340 active core developers★   developed   sin...
★   available in more than   40 languages★   the   best security track record of any major CMS
powered
the growing   community
SMALL   “Roughly 5000 lines             of code”
SMALL   “Roughly 5000 lines             of code”FAST
SMALL    “Roughly 5000 lines              of code”FASTSTABLE
SMALL    “Roughly 5000 lines              of code”FAST                “100% statementSTABLE               coverage via uni...
SMALL        “Roughly 5000 lines                  of code”FAST                    “100% statementSTABLE                   ...
The   Bad   story
Th e Cus to mer★   Large    public sectore    entity★   >   1000 employees★   Needs a complex   intranet★   Deadline:   2 ...
T he T eam
Th e T eam             ★   Mixed    roles:                          Software                          architect           ...
t ec h no lo g y★   Temptation to be on the    technological   edge★   The   Learning      Curve Effect    everything is a...
bad deci si ons             ★   Project manager as                 Software architect as                 Tester           ...
The Good Story
The Customer★   .★   Born as a startup★   Offices in Miami,    New York and Los Angeles
Water today★   U.S. - the largest consumer market for    bottled water in the world★   in 2011, the market is forecast to ...
project requirements
paperless sale1      CRM2     Sales3   Warehouse4   E-commerce5    Support
paperless sale1      CRM       ★   Customer’s management                     (satisfaction, order status,                 ...
paperless sale1      CRM       ★   Sales network management                 ★   Invoicing / accountancy2     Sales        ...
paperless sale1      CRM       ★   Catalog management                 ★   Warehouse management2     Sales                 ...
paperless sale1      CRM       ★   Online shop (for beverages                     and accessories)2     Sales      ★   Mac...
paperless sale1      CRM       ★   Machine maintenance (filter                     change)2     Sales      ★   Emergency s...
paperless sale1      CRM       ★   Machine maintenance (filter                     change)2     Sales      ★   Emergency s...
paperless sale    Warehouse     Support      CRM        E-commerce      Sales
paperless sale   Intranet      Extranet    Warehouse     Support      CRM        E-commerce      Sales
Totally paperless ERP
project gotchas
project gotchas★   Requirements are   not rock    solid    (it’s a startup) - project will grow with    the customer★   Cu...
proj ect backg round
The DEV TEAM★   Software architect    ★   database design    ★   integration layer (data,        authentication)★   Develo...
★   Prototyping - the good way★   Collecting specification and    keeping docs up-to-date★   Software development having  ...
Arc hi t e ct u ral dec i si ons
and
why                                   ?★   architecture is not so far away    from Zope★   it supports SQLAlchemy out    o...
why                         ?★   Pyramid CRUD    ★   Multi-upload widget    ★   Metric units widget    ★   Autocomplete wi...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
why                             ?★   The Best CMS★   Enterprise ready★   1595 addons (and counting...)    on plone.org/pro...
I nt eg r at i o n
SQL A lchemy         aeterna.models         PostgreSQL
authentication - authorization           auth storage Request            pas.plugins.sa             repoze.who            ...
authentication - authorization      auth storage        single-sign-on ★   users           ★   plone.session              ...
buildout[intranet-plone]recipe = plone.recipe.zope2instanceeggs =    ${intranet-plone:eggs} aeterna.models[intranet-pyrami...
The big picture                                                 extranet                  pas.plugins.                    ...
why not o t h er c o mpet i t o rs?
d j ang o :             no!★   less   code more magic★   not so   flexible    (specification is growing)★   using   SQLAlc...
d r u pal:              no!★   security problems    (370 CVE entries)★   integration is more    difficult    (PHP vs. Pyth...
o pen erp :                   hmm★   quite complex: CRM , sales,    accounting and much more★   not enough   time    to fu...
What mat t ers
Proper Tools
Proper R O L ES
Whats next?
Pyramid CRUD★   started from Sergey Volobuev    Kelpie (repoze.bfg crud prototype)★   using SQLAlchemy, Formalchemy    and...
Sprint summary                 ★   what is   accomplished:                     ★   events hooks                     ★   vi...
paster template>>> $ pip install pyramid_formalchemy>>> $ paster create -t pyramid_fa myapp     more details:     http://b...
Sprint summary                 ★   sprinters:                     ★   Gaël Pasgrimaud [gawel]                     ★   Patr...
Qu est i ons?
Credits★   http://flickr.com/photos/mleczko★   http://www.melaiphone.com/★   http://static.iphoneitalia.com★   http://www....
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?
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
Upcoming SlideShare
Loading in …5
×

EuroPython 2011 - How to build complex web applications having fun?

15,187 views

Published on

Web development is a complexity challenge nowadays. Growing number of functionalities results in customer expectations increase which makes project design more difficult. Using proper tools that suite your customer needs is essential.

This talk is about successful story using closely together Pyramid and Plone. Basing on these examples you will see the main reasons for using Plone as a CMS only and letting Pyramid do the rest (vertical application).

Published in: Technology
4 Comments
16 Likes
Statistics
Notes
  • 2----MEGA EVENTOS DE FÉRIAS jogando.net/mu/
    Venham conhecer nossos Servidores de Mu
    Online Season 6 e participar dos EVENTOS
    De Férias que preparamos para vocês.
    CONFIRAM = http://www.jogando.net/mu/
    Fazemos sua Diversão com qualidade,há mais de 5 anos
    Servers ON 24 horas por dia.
    Vários Server esperando por você.Venha se divertir de verdade.
    Site http://www.jogando.net/mu/ Benvindos ao nosso servidor.
    HYCLEN Divulgadora Oficial ..Boa semana a todos e boas férias !!!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • video will be published on europython site http://ep2011.europython.eu/conference/talks/how-to-build-complex-web-applications-having-fun in few days
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • There is a video for this presentation? nice user case
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Love it. Great summary of the project, fresh looking slides. Congrats to Andy and RedTurtle.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
15,187
On SlideShare
0
From Embeds
0
Number of Embeds
176
Actions
Shares
0
Downloads
304
Comments
4
Likes
16
Embeds 0
No embeds

No notes for slide

EuroPython 2011 - How to build complex web applications having fun?

  1. How to build complexweb applications having fun?
  2. author Andrew Mleczko Software Integrator Ferrara (Italy) twitter: amleczko amleczko@redturtle.it
  3. the team
  4. WHY this talk?
  5. My Reasons to be here★ Building complex web applications could be fun★ Architectural decisions are more important than you think★ Promote and
  6. ★ among the top 2% of all open source projects worldwide★ more than 340 active core developers★ developed since 2001★ version 4.1 released 12 days ago
  7. ★ available in more than 40 languages★ the best security track record of any major CMS
  8. powered
  9. the growing community
  10. SMALL “Roughly 5000 lines of code”
  11. SMALL “Roughly 5000 lines of code”FAST
  12. SMALL “Roughly 5000 lines of code”FASTSTABLE
  13. SMALL “Roughly 5000 lines of code”FAST “100% statementSTABLE coverage via unit andTESTED integration tests”
  14. SMALL “Roughly 5000 lines of code”FAST “100% statementSTABLE coverage via unit andTESTED integration tests”DOCUMENTED “Literally nothing in Pyramid is undocumented”
  15. The Bad story
  16. Th e Cus to mer★ Large public sectore entity★ > 1000 employees★ Needs a complex intranet★ Deadline: 2 years
  17. T he T eam
  18. Th e T eam ★ Mixed roles: Software architect Project Tester manager Developer ★ No development philosophy
  19. t ec h no lo g y★ Temptation to be on the technological edge★ The Learning Curve Effect everything is a “prototype”★ Technical design debt is... ... more then average
  20. bad deci si ons ★ Project manager as Software architect as Tester ★ Technology didnt fit in ★ no fun at all
  21. The Good Story
  22. The Customer★ .★ Born as a startup★ Offices in Miami, New York and Los Angeles
  23. 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”
  24. project requirements
  25. paperless sale1 CRM2 Sales3 Warehouse4 E-commerce5 Support
  26. paperless sale1 CRM ★ Customer’s management (satisfaction, order status, etc.)2 Sales ★ Reports (machine statistics, etc.)3 Warehouse ★ Campaigns4 E-commerce5 Support
  27. paperless sale1 CRM ★ Sales network management ★ Invoicing / accountancy2 Sales ★ Revenue counter3 Warehouse ★ Discount management4 E-commerce5 Support
  28. paperless sale1 CRM ★ Catalog management ★ Warehouse management2 Sales ★ Logistic tracking3 Warehouse4 E-commerce5 Support
  29. paperless sale1 CRM ★ Online shop (for beverages and accessories)2 Sales ★ Machine configurator (interactive wizard)3 Warehouse ★ Online payments4 E-commerce5 Support
  30. paperless sale1 CRM ★ Machine maintenance (filter change)2 Sales ★ Emergency services ★ Order / installation process3 Warehouse4 E-commerce5 Support
  31. paperless sale1 CRM ★ Machine maintenance (filter change)2 Sales ★ Emergency services ★ Order / installation process3 Warehouse4 E-commerce5 Support
  32. paperless sale Warehouse Support CRM E-commerce Sales
  33. paperless sale Intranet Extranet Warehouse Support CRM E-commerce Sales
  34. Totally paperless ERP
  35. project gotchas
  36. 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 proper (new?) framework★ Only 5 months to delivery
  37. proj ect backg round
  38. The DEV TEAM★ Software architect ★ database design ★ integration layer (data, authentication)★ Developers ★ Plone team ★ Pyramid team
  39. ★ Prototyping - the good way★ Collecting specification and keeping docs up-to-date★ Software development having fun
  40. Arc hi t e ct u ral dec i si ons
  41. and
  42. 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
  43. why ?★ Pyramid CRUD ★ Multi-upload widget ★ Metric units widget ★ Autocomplete widget ★ Multi-relation widget ★ ... and more ★ 75% jQuery code
  44. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products
  45. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  46. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  47. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  48. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  49. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  50. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  51. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  52. why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  53. I nt eg r at i o n
  54. SQL A lchemy aeterna.models PostgreSQL
  55. authentication - authorization auth storage Request pas.plugins.sa repoze.who PostgreSQL
  56. authentication - authorization auth storage single-sign-on ★ users ★ plone.session ★ repoze.who.plugins.auth_tkt ★ groups ★ roles mod_auth_tkt PostgreSQL
  57. buildout[intranet-plone]recipe = plone.recipe.zope2instanceeggs = ${intranet-plone:eggs} aeterna.models[intranet-pyramid]recipe = zc.recipe.eggeggs = ${intranet-pyramid:eggs} aeterna.models
  58. The big picture extranet pas.plugins. sa ZODBApache beaker PostgreSQL intranet repoze. who
  59. why not o t h er c o mpet i t o rs?
  60. d j ang o : no!★ less code more magic★ not so flexible (specification is growing)★ using SQLAlchemy could be tricky
  61. d r u pal: no!★ security problems (370 CVE entries)★ integration is more difficult (PHP vs. Python)★ missing features - workflow, complex ACL, etc.
  62. o pen erp : hmm★ quite complex: CRM , sales, accounting and much more★ not enough time to fully investigate it
  63. What mat t ers
  64. Proper Tools
  65. Proper R O L ES
  66. Whats next?
  67. Pyramid CRUD★ started from Sergey Volobuev Kelpie (repoze.bfg crud prototype)★ using SQLAlchemy, Formalchemy and fa.jquery★ known as pyramid_formalchemy
  68. Sprint summary ★ what is accomplished: ★ events hooks ★ view and action customizations ★ i18n support ★ autocomplete widget ★ paster templates ★ plans: ★ fanstatic integration
  69. paster template>>> $ pip install pyramid_formalchemy>>> $ paster create -t pyramid_fa myapp more details: http://blog.redturtle.it/redturtle-blog/pyramid-crud-sprint-summary
  70. Sprint summary ★ sprinters: ★ Gaël Pasgrimaud [gawel] ★ Patrick Gerken [do3cc] ★ Me [amleczko] ★ new version of: ★ pyramid_formalchemy 0.4 ★ fa.jquery 0.9.4
  71. Qu est i ons?
  72. 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/

×