SlideShare a Scribd company logo
1 of 36
Turning code into wine
Access control, wine dispensing and process
management with PHP and JS.
by Ralf Schwoebel (@orgaralf) #APIcon18
Don‘t drink and root...
212:28
What is going on?
312:28
wineBANK Palma
412:28
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
Impressions worldwide
A club and...
...event location...
... storage facility...
... gastronomy ...
... technology based!
612:28
wineBANK.club
And why is that worth a talk on a conference?
712:28
wineBANK General Web
812:28
wineBANK eCommerce
912:28
wineBANK eCommerce
1012:28
wineBANK User Interface
1112:28
wineBANK User Interface
1212:28
wineBANK admin Interface
1312:28
wineBANK admin Interface II
1412:28
Obstacles and learnings
1512:28
1 location:
1 problem
1612:28
2 Locations:
100 Problems
eg: CHF, Taxes, outside
EU, 2 languages more,
special handling of
signups, promotioncodes
1712:28
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
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
wineBANK Code style
2012:28
wineBANK – the need of the many...
Migration with „Symphony Proxy“: do not throw the code away!
2112:28
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
Integration Example
2312:28
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
Opening Doors with code
• Backend = proprietary Java Pages in German
2512:28
Opening Doors: the obstacles
• Manual card registration in 2 systems
• FTP pull system, no condition reporting (we have to check FTP log)
2612:28
real API
2712: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
2912:28
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
Code
3112:28
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
Working on an open heart
3312:28
Obstacles
3412:28
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
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

More Related Content

Similar to Turning Code into Wine: Building an API-Powered Wine Club

LA Micro Stock Report 18th March 2014
 LA Micro Stock Report 18th March 2014 LA Micro Stock Report 18th March 2014
LA Micro Stock Report 18th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 4th March 2014
 LA Micro Stock Report 4th March 2014 LA Micro Stock Report 4th March 2014
LA Micro Stock Report 4th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 5th March 2014
 LA Micro Stock Report 5th March 2014 LA Micro Stock Report 5th March 2014
LA Micro Stock Report 5th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 17th March 2014
 LA Micro Stock Report 17th March 2014 LA Micro Stock Report 17th March 2014
LA Micro Stock Report 17th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 26th February 2014
 LA Micro Stock Report 26th February 2014 LA Micro Stock Report 26th February 2014
LA Micro Stock Report 26th February 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 3rd March 2014
 LA Micro Stock Report 3rd March 2014 LA Micro Stock Report 3rd March 2014
LA Micro Stock Report 3rd March 2014LA Micro Group UK Ltd
 
How to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo WiiHow to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo WiiPongsakorn U-chupala
 
LA Micro Stock Report 6th March 2014
 LA Micro Stock Report 6th March 2014 LA Micro Stock Report 6th March 2014
LA Micro Stock Report 6th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 7th March 2014
 LA Micro Stock Report 7th March 2014 LA Micro Stock Report 7th March 2014
LA Micro Stock Report 7th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 10th March 2014
 LA Micro Stock Report 10th March 2014 LA Micro Stock Report 10th March 2014
LA Micro Stock Report 10th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 24th February 2014
 LA Micro Stock Report 24th February 2014 LA Micro Stock Report 24th February 2014
LA Micro Stock Report 24th February 2014LA Micro Group UK Ltd
 
How to Easily Upgrade to a Next-Generation Transit Payment System
How to Easily Upgrade to a Next-Generation Transit Payment SystemHow to Easily Upgrade to a Next-Generation Transit Payment System
How to Easily Upgrade to a Next-Generation Transit Payment SystemFEIG Electronics
 
LA Micro Stock Report 21st February 2014
 LA Micro Stock Report 21st February 2014 LA Micro Stock Report 21st February 2014
LA Micro Stock Report 21st February 2014LA Micro Group UK Ltd
 
Hitcon badge 2018
Hitcon badge 2018 Hitcon badge 2018
Hitcon badge 2018 Alan Lee
 
LA Micro Stock Report 14th March 2014
 LA Micro Stock Report 14th March 2014 LA Micro Stock Report 14th March 2014
LA Micro Stock Report 14th March 2014LA Micro Group UK Ltd
 
LA Micro Stock Report 25th February 2014
 LA Micro Stock Report 25th February 2014 LA Micro Stock Report 25th February 2014
LA Micro Stock Report 25th February 2014LA Micro Group UK Ltd
 

Similar to Turning Code into Wine: Building an API-Powered Wine Club (20)

LA Micro Stock Report 18th March 2014
 LA Micro Stock Report 18th March 2014 LA Micro Stock Report 18th March 2014
LA Micro Stock Report 18th March 2014
 
LA Micro Stock Report 4th March 2014
 LA Micro Stock Report 4th March 2014 LA Micro Stock Report 4th March 2014
LA Micro Stock Report 4th March 2014
 
LA Micro Stock Report 5th March 2014
 LA Micro Stock Report 5th March 2014 LA Micro Stock Report 5th March 2014
LA Micro Stock Report 5th March 2014
 
LA Micro Stock Report 17th March 2014
 LA Micro Stock Report 17th March 2014 LA Micro Stock Report 17th March 2014
LA Micro Stock Report 17th March 2014
 
La micro stock report
La micro stock reportLa micro stock report
La micro stock report
 
La micro stock report
La micro stock reportLa micro stock report
La micro stock report
 
LA Micro Stock Report 26th February 2014
 LA Micro Stock Report 26th February 2014 LA Micro Stock Report 26th February 2014
LA Micro Stock Report 26th February 2014
 
LA Micro Stock Report 3rd March 2014
 LA Micro Stock Report 3rd March 2014 LA Micro Stock Report 3rd March 2014
LA Micro Stock Report 3rd March 2014
 
La micro stock report
La micro stock reportLa micro stock report
La micro stock report
 
How to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo WiiHow to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo Wii
 
LA Micro Stock Report 6th March 2014
 LA Micro Stock Report 6th March 2014 LA Micro Stock Report 6th March 2014
LA Micro Stock Report 6th March 2014
 
LA Micro Stock Report 7th March 2014
 LA Micro Stock Report 7th March 2014 LA Micro Stock Report 7th March 2014
LA Micro Stock Report 7th March 2014
 
LA Micro Stock Report 10th March 2014
 LA Micro Stock Report 10th March 2014 LA Micro Stock Report 10th March 2014
LA Micro Stock Report 10th March 2014
 
LA Micro Stock Report 24th February 2014
 LA Micro Stock Report 24th February 2014 LA Micro Stock Report 24th February 2014
LA Micro Stock Report 24th February 2014
 
How to Easily Upgrade to a Next-Generation Transit Payment System
How to Easily Upgrade to a Next-Generation Transit Payment SystemHow to Easily Upgrade to a Next-Generation Transit Payment System
How to Easily Upgrade to a Next-Generation Transit Payment System
 
LA Micro Stock Report 21st February 2014
 LA Micro Stock Report 21st February 2014 LA Micro Stock Report 21st February 2014
LA Micro Stock Report 21st February 2014
 
Hitcon badge 2018
Hitcon badge 2018 Hitcon badge 2018
Hitcon badge 2018
 
LA Micro Stock Report 14th March 2014
 LA Micro Stock Report 14th March 2014 LA Micro Stock Report 14th March 2014
LA Micro Stock Report 14th March 2014
 
Tài liệu hướng dẫn sử dụng bộ điều khiển Siemens Simatics LOGO!
Tài liệu hướng dẫn sử dụng bộ điều khiển Siemens Simatics LOGO!Tài liệu hướng dẫn sử dụng bộ điều khiển Siemens Simatics LOGO!
Tài liệu hướng dẫn sử dụng bộ điều khiển Siemens Simatics LOGO!
 
LA Micro Stock Report 25th February 2014
 LA Micro Stock Report 25th February 2014 LA Micro Stock Report 25th February 2014
LA Micro Stock Report 25th February 2014
 

More from Ralf Schwoebel

Pagespeed SEO 2018: Google Mobile Index Optimization
Pagespeed SEO 2018: Google Mobile Index OptimizationPagespeed SEO 2018: Google Mobile Index Optimization
Pagespeed SEO 2018: Google Mobile Index OptimizationRalf Schwoebel
 
HTML5 AppCache: The Manifest
HTML5 AppCache: The ManifestHTML5 AppCache: The Manifest
HTML5 AppCache: The ManifestRalf Schwoebel
 
Updated: NW.js - Desktop Apps with Javascript
Updated: NW.js - Desktop Apps with JavascriptUpdated: NW.js - Desktop Apps with Javascript
Updated: NW.js - Desktop Apps with JavascriptRalf Schwoebel
 
Anatomy of mobile App development
Anatomy of mobile App developmentAnatomy of mobile App development
Anatomy of mobile App developmentRalf Schwoebel
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptRalf Schwoebel
 
Mobile Convergence: Trends for Online Marketeers
Mobile Convergence: Trends for Online MarketeersMobile Convergence: Trends for Online Marketeers
Mobile Convergence: Trends for Online MarketeersRalf Schwoebel
 
Technologie und SEO: Cloud, Big Data und Mobile First angeschaut
Technologie und SEO: Cloud, Big Data und Mobile First angeschautTechnologie und SEO: Cloud, Big Data und Mobile First angeschaut
Technologie und SEO: Cloud, Big Data und Mobile First angeschautRalf Schwoebel
 
Mastering On-Site Search / Custom Site Search
Mastering On-Site Search / Custom Site SearchMastering On-Site Search / Custom Site Search
Mastering On-Site Search / Custom Site SearchRalf Schwoebel
 
German: SMX Munich - Twitter Marketing
German: SMX Munich - Twitter MarketingGerman: SMX Munich - Twitter Marketing
German: SMX Munich - Twitter MarketingRalf Schwoebel
 
German Online Roundtable Frankfurt (OSF)
German Online Roundtable Frankfurt (OSF)German Online Roundtable Frankfurt (OSF)
German Online Roundtable Frankfurt (OSF)Ralf Schwoebel
 
International and European SEO - Pubcon 2008
International and European SEO - Pubcon 2008International and European SEO - Pubcon 2008
International and European SEO - Pubcon 2008Ralf Schwoebel
 
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne Google
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne GoogleSEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne Google
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne GoogleRalf Schwoebel
 
German Intro: Strategische Markenberatung
German Intro: Strategische MarkenberatungGerman Intro: Strategische Markenberatung
German Intro: Strategische MarkenberatungRalf Schwoebel
 
German: Frankfurt im Überblick für Buchmesse-Besucher
German: Frankfurt im Überblick für Buchmesse-BesucherGerman: Frankfurt im Überblick für Buchmesse-Besucher
German: Frankfurt im Überblick für Buchmesse-BesucherRalf Schwoebel
 
MySQL Install for Replication - Real Life Tutorial
MySQL Install for Replication - Real Life TutorialMySQL Install for Replication - Real Life Tutorial
MySQL Install for Replication - Real Life TutorialRalf Schwoebel
 
Seven steps to great PC health (Windows)
Seven steps to great PC health (Windows)Seven steps to great PC health (Windows)
Seven steps to great PC health (Windows)Ralf Schwoebel
 
How to make your website IPv6 ready (quickly)
How to make your website IPv6 ready (quickly)How to make your website IPv6 ready (quickly)
How to make your website IPv6 ready (quickly)Ralf Schwoebel
 
Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)Ralf Schwoebel
 
Hosting Issues and SEO
Hosting Issues and SEOHosting Issues and SEO
Hosting Issues and SEORalf Schwoebel
 
Pubcon 2012 Blog and Site performance
Pubcon 2012 Blog and Site performancePubcon 2012 Blog and Site performance
Pubcon 2012 Blog and Site performanceRalf Schwoebel
 

More from Ralf Schwoebel (20)

Pagespeed SEO 2018: Google Mobile Index Optimization
Pagespeed SEO 2018: Google Mobile Index OptimizationPagespeed SEO 2018: Google Mobile Index Optimization
Pagespeed SEO 2018: Google Mobile Index Optimization
 
HTML5 AppCache: The Manifest
HTML5 AppCache: The ManifestHTML5 AppCache: The Manifest
HTML5 AppCache: The Manifest
 
Updated: NW.js - Desktop Apps with Javascript
Updated: NW.js - Desktop Apps with JavascriptUpdated: NW.js - Desktop Apps with Javascript
Updated: NW.js - Desktop Apps with Javascript
 
Anatomy of mobile App development
Anatomy of mobile App developmentAnatomy of mobile App development
Anatomy of mobile App development
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
Mobile Convergence: Trends for Online Marketeers
Mobile Convergence: Trends for Online MarketeersMobile Convergence: Trends for Online Marketeers
Mobile Convergence: Trends for Online Marketeers
 
Technologie und SEO: Cloud, Big Data und Mobile First angeschaut
Technologie und SEO: Cloud, Big Data und Mobile First angeschautTechnologie und SEO: Cloud, Big Data und Mobile First angeschaut
Technologie und SEO: Cloud, Big Data und Mobile First angeschaut
 
Mastering On-Site Search / Custom Site Search
Mastering On-Site Search / Custom Site SearchMastering On-Site Search / Custom Site Search
Mastering On-Site Search / Custom Site Search
 
German: SMX Munich - Twitter Marketing
German: SMX Munich - Twitter MarketingGerman: SMX Munich - Twitter Marketing
German: SMX Munich - Twitter Marketing
 
German Online Roundtable Frankfurt (OSF)
German Online Roundtable Frankfurt (OSF)German Online Roundtable Frankfurt (OSF)
German Online Roundtable Frankfurt (OSF)
 
International and European SEO - Pubcon 2008
International and European SEO - Pubcon 2008International and European SEO - Pubcon 2008
International and European SEO - Pubcon 2008
 
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne Google
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne GoogleSEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne Google
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne Google
 
German Intro: Strategische Markenberatung
German Intro: Strategische MarkenberatungGerman Intro: Strategische Markenberatung
German Intro: Strategische Markenberatung
 
German: Frankfurt im Überblick für Buchmesse-Besucher
German: Frankfurt im Überblick für Buchmesse-BesucherGerman: Frankfurt im Überblick für Buchmesse-Besucher
German: Frankfurt im Überblick für Buchmesse-Besucher
 
MySQL Install for Replication - Real Life Tutorial
MySQL Install for Replication - Real Life TutorialMySQL Install for Replication - Real Life Tutorial
MySQL Install for Replication - Real Life Tutorial
 
Seven steps to great PC health (Windows)
Seven steps to great PC health (Windows)Seven steps to great PC health (Windows)
Seven steps to great PC health (Windows)
 
How to make your website IPv6 ready (quickly)
How to make your website IPv6 ready (quickly)How to make your website IPv6 ready (quickly)
How to make your website IPv6 ready (quickly)
 
Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)
 
Hosting Issues and SEO
Hosting Issues and SEOHosting Issues and SEO
Hosting Issues and SEO
 
Pubcon 2012 Blog and Site performance
Pubcon 2012 Blog and Site performancePubcon 2012 Blog and Site performance
Pubcon 2012 Blog and Site performance
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

Turning Code into Wine: Building an API-Powered Wine Club

  • 1. Turning code into wine Access control, wine dispensing and process management with PHP and JS. by Ralf Schwoebel (@orgaralf) #APIcon18
  • 2. Don‘t drink and root... 212:28
  • 3. What is going on? 312:28
  • 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. Impressions worldwide A club and... ...event location... ... storage facility... ... gastronomy ... ... technology based! 612:28
  • 7. wineBANK.club And why is that worth a talk on a conference? 712:28
  • 17. 2 Locations: 100 Problems eg: CHF, Taxes, outside EU, 2 languages more, special handling of signups, promotioncodes 1712:28
  • 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. 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
  • 21. wineBANK – the need of the many... Migration with „Symphony Proxy“: do not throw the code away! 2112:28
  • 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
  • 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. Opening Doors with code • Backend = proprietary Java Pages in German 2512:28
  • 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
  • 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
  • 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
  • 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. Working on an open heart 3312:28
  • 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. 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

Editor's Notes

  1. Short introduction of who we are and how the tasks are split. We are talking about a start-up in the wine business with unique processes and clear budget limitations fighting in a global marketplace and a rapidly changing market. Coding is done by conlabz Project management for wineBANK done by orga.zone This basically means translating and priotizing..
  2. Short introduction of who we are and how the tasks are split. We are talking about a start-up in the wine business with unique processes and clear budget limitations fighting in a global marketplace and a rapidly changing market. Coding is done by conlabz Project management for wineBANK done by orga.zone This basically means translating and priotizing..