Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

APIconference London 2018: Turning code into wine

128 views

Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

×