Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing...

36
Turning code into wine Access control, wine dispensing and process management with PHP and JS. by Ralf Schwoebel (@orgaralf) #APIcon18

Transcript of Turning code into wine - API Conference · Turning code into wine . Access control, wine dispensing...

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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