![Page 1: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/1.jpg)
Turning code into wine Access control, wine dispensing and process management with PHP and JS. by Ralf Schwoebel (@orgaralf) #APIcon18
![Page 2: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/2.jpg)
Don‘t drink and root...
2 14:40
![Page 3: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/3.jpg)
What is going on?
3 14:40
![Page 4: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/4.jpg)
wineBANK Palma
4 14:40
![Page 5: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/5.jpg)
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
5 14:40
![Page 6: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/6.jpg)
Impressions worldwide
A club and...
...event location...
... storage facility...
... gastronomy ... ... technology based!
6 14:40
![Page 7: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/7.jpg)
wineBANK.club
And why is that worth a talk on a conference?
7 14:40
![Page 8: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/8.jpg)
wineBANK General Web
8 14:40
![Page 9: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/9.jpg)
wineBANK eCommerce
9 14:40
![Page 10: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/10.jpg)
wineBANK eCommerce
10 14:40
![Page 11: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/11.jpg)
wineBANK User Interface
11 14:40
![Page 12: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/12.jpg)
wineBANK User Interface
12 14:40
![Page 13: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/13.jpg)
wineBANK admin Interface
13 14:40
![Page 14: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/14.jpg)
wineBANK admin Interface II
14 14:40
![Page 15: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/15.jpg)
Obstacles and learnings
15 14:40
![Page 16: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/16.jpg)
1 location: 1 problem
16 14:40
![Page 17: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/17.jpg)
2 Locations: 100 Problems eg: CHF, Taxes, outside EU, 2 languages more, special handling of signups, promotioncodes
17 14:40
![Page 18: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/18.jpg)
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
18 14:40
![Page 19: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/19.jpg)
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
19 14:40
![Page 20: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/20.jpg)
wineBANK Code style
20 14:40
![Page 21: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/21.jpg)
wineBANK – the need of the many...
Migration with „Symphony Proxy“: do not throw the code away!
21 14:40
![Page 22: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/22.jpg)
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.
22 14:40
![Page 23: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/23.jpg)
Integration Example
23 14:40
![Page 24: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/24.jpg)
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!
24 14:40
![Page 25: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/25.jpg)
Opening Doors with code
• Backend = proprietary Java Pages in German
25 14:40
![Page 26: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/26.jpg)
Opening Doors: the obstacles
• Manual card registration in 2 systems • FTP pull system, no condition reporting (we have to check FTP log)
26 14:40
![Page 27: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/27.jpg)
real API
27 14:40
![Page 28: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/28.jpg)
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!
28 14:40
![Page 29: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/29.jpg)
29 14:40
![Page 30: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/30.jpg)
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
30 14:40
![Page 31: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/31.jpg)
Code
31 14:40
![Page 32: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/32.jpg)
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: AN\2 • Time and deadlines: 4 entities on 1 process!
32 14:40
![Page 33: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/33.jpg)
Working on an open heart
33 14:40
![Page 34: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/34.jpg)
Obstacles
34 14:40
![Page 35: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/35.jpg)
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!
35 14:40
![Page 36: Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing and process ... •Basic project management: external APIs change without warning!](https://reader033.vdocuments.us/reader033/viewer/2022053001/5f05c21d7e708231d4148f2b/html5/thumbnails/36.jpg)
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 [email protected] https://orga.zone/ 36 14:40