O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

APIconference London 2018: Turning code into wine

192 visualizações

Publicada em

With our customer wineBANK, https://orga.zone/ shows the way to international development with connecting systems across borders, writing invoices and dispensing wine with PHP, Javascript and APIs.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

APIconference London 2018: Turning code into wine

  1. 1. Turning code into wine Access control, wine dispensing and process management with PHP and JS. by Ralf Schwoebel (@orgaralf) #APIcon18
  2. 2. Don‘t drink and root... 212:28
  3. 3. What is going on? 312:28
  4. 4. wineBANK Palma 412:28
  5. 5. wineBANK • It is a club • It is a location to store wine • It is a location to drink wine • It is an eCommerce platform • It is technology driven • Its success is depending (partially) on APIs wineBANK smart card 512:28
  6. 6. Impressions worldwide A club and... ...event location... ... storage facility... ... gastronomy ... ... technology based! 612:28
  7. 7. wineBANK.club And why is that worth a talk on a conference? 712:28
  8. 8. wineBANK General Web 812:28
  9. 9. wineBANK eCommerce 912:28
  10. 10. wineBANK eCommerce 1012:28
  11. 11. wineBANK User Interface 1112:28
  12. 12. wineBANK User Interface 1212:28
  13. 13. wineBANK admin Interface 1312:28
  14. 14. wineBANK admin Interface II 1412:28
  15. 15. Obstacles and learnings 1512:28
  16. 16. 1 location: 1 problem 1612:28
  17. 17. 2 Locations: 100 Problems eg: CHF, Taxes, outside EU, 2 languages more, special handling of signups, promotioncodes 1712:28
  18. 18. wineBANK technology MariaDB PHP5 on Symphony Linux Servers (cloud) (PHP) Scripts API Connectors • Invoicing • Mailings • Up/Downgrades • Cancellations website PHP + JS = HTML5 Member Area PHP + JS = HTML5 Franchisee PHP + JS = HTML5 Franchisor PHP + JS = HTML5 Master Admin PHP + JS = HTML5 1812:28
  19. 19. wineBANK – Kung Fu Squad From „one man band“ to development team... PHP Server-Config Database APIs QA Design Info-Updates Monolith Code Symfony based services & classes Localize 1912:28
  20. 20. wineBANK Code style 2012:28
  21. 21. wineBANK – the need of the many... Migration with „Symphony Proxy“: do not throw the code away! 2112:28
  22. 22. wineBANK Code Explosion • 2 languages • 5+ tax regions (eg. Austria has something special) • PDF, XML, CSV generation • Cross border invoicing with 5x5 cases (Eg: invoice from Palma to London wineBANKer for BTG) • 2 evolving APIs, third to come • Upgrades / Downgrades / Missing Cards, etc. 2212:28
  23. 23. Integration Example 2312:28
  24. 24. Let‘s start simple: Opening Doors • Cards are produced in bulk: RFID+PIN (card has a number on it) • Cards are delivered to wineBANK with XLS file • Membership is sold: card is assigned to contract • 1 contract can have N cards in X locations (think spouse / team) • Card code is transferred to all BOSCH systems • Card is mailed to member: working! 2412:28
  25. 25. Opening Doors with code • Backend = proprietary Java Pages in German 2512:28
  26. 26. Opening Doors: the obstacles • Manual card registration in 2 systems • FTP pull system, no condition reporting (we have to check FTP log) 2612:28
  27. 27. real API 2712:28
  28. 28. Now more seriously: Code, give me wine (BTG)! • Embedded Windows (sigh) machines • Connected via local network (Cable, DSL, LTE) to Czech server • Franchisee needs to administer the machine CLEANLY! • Each „click“ converts into a database entry • Cards are supposed to work globally • A spanish wineBANKer receives an invoice from London after drinking there: tax and legal! 2812:28
  29. 29. 2912:28
  30. 30. Code, give me wine (BTG)! 1 Sign Up for the club 2 wB picks a card enters it manually 3 FTP to doors Push to BtG 4 Card mailed to you 5 You fly to Palma and drink a glass 6 Dataset pushed to BtG 7 Dataset pulled to backend 8 Invoice created eMailed to you 3012:28
  31. 31. Code 3112:28
  32. 32. Obstacles • 3rd party has different views on how to code • There is no real staging, because the state differs (always) • There is no Sandbox from the BtG side • The franchisee names the wine list: AN2 • Time and deadlines: 4 entities on 1 process! 3212:28
  33. 33. Working on an open heart 3312:28
  34. 34. Obstacles 3412:28
  35. 35. Learnings The customer has the idea, but you need to design much more than code: • Anticipate future expansion: cut your functionality in services! • Basic project management: external APIs change without warning! • Testing and automation: come up with a solid test scenario! • International process design: fix the characteristics before typing! 3512:28
  36. 36. Thank you! Thank you for your time and attention... Have a great conference! Next - 12.15: • Securing APIs and Microservices with OAuth and OpenID Connect – Room C • Micro Frontends – Auditorium Ralf Schwoebel, CEO orga.zone AG rs@orga.zone https://orga.zone/ 3612:28

×