> Markdown version of [/videos/93-100-million-days-in-vienna-a-story-of-apis-ai-in-tourism?t=17](https://www.wearedevelopers.com/videos/93-100-million-days-in-vienna-a-story-of-apis-ai-in-tourism?t=17). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # 100 million days in Vienna: A story of APIs & AI in tourism. Travelers are overwhelmed by fragmented data across multiple tabs. See how developers cured decision fatigue by building a Node.js and TensorFlow.js recommender system. Discover the power of procedural scheduling. - **Speakers:** Thomas Reiter - **Event:** WeAreDevelopers LIVE - **Published:** December 3, 2020 - **Duration:** 43:11 - **URL:** https://www.wearedevelopers.com/videos/93-100-million-days-in-vienna-a-story-of-apis-ai-in-tourism ## Summary Fragmented data sources and the limitations of traditional, filter-based search engines often leave end-users overwhelmed by decision fatigue. For the tourism industry, this means travelers struggle to piece together viable itineraries without consulting multiple weather, transport, and content tabs. To solve this, developers engineered a prototype recommender system named Make My Day. Built with a Vue.js front-end and a Node.js Express server, this microservice-based application interfaces with a centralized data hub to abstract messy API integrations. By transforming fragmented endpoints into an opinionated location aggregation service, developers can treat a Place of Interest (POI) as the foundational root document, dramatically reducing API mapping complexity and instantly bundling relevant weather, route, and scheduling data. At the core of the application's planning logic is a procedural scheduling model referred to as "dressing a skeleton." Rather than relying on computationally heavy reinforcement learning models, the system takes an empty semantic itinerary skeleton and pairs it with a feature vector of user preferences gathered via a simple quiz. Using narrow AI techniques—including multinomial logistic regression via TensorFlow.js—the application dynamically classifies and links structured POI data with the best-matching slots in the itinerary. To enrich the experience, a retrieve-recommend-aggregate pipeline leverages bi-gram NLP matching to connect authentic, user-generated storytelling to structured data modeled around schema.org knowledge graphs. Navigating real-world data reveals critical architectural and operational insights. Attempting native NLP processing within Node.js introduces friction compared to Python-based libraries, particularly when handling localized language characteristics. Additionally, predictive models must account for human bias and subjective edge cases, validating the need to anchor logistic regression to specific user personas rather than universal generalizations. Ultimately, transitioning the prototype into a decoupled, pluggable framework reinforces the value of eating your own dog food. By utilizing oEmbed standards, the startup proves that unified data platforms allow developers not only to consume simplified APIs but to seamlessly provision modular capabilities back into the overarching ecosystem. **Keywords:** recommender systems, microservices architecture, vue.js front-end, node.js express development, natural language processing, tensorflow.js implementation, location aggregation service, api abstraction, schema.org knowledge graph, oembed frontend integration, etl data pipeline, logistic regression models, feature vector matching, cosine similarity algorithms, heuristic data quality, opinionated api design, point of interest data ## Chapters 1. **Introduction to tourism industry data and terminology** (00:17) — Understanding places of interest, guest terminology, and destination marketing data for developers building applications. 1. **Walkthrough of the itinerary generation application prototype** (03:22) — Demonstrating a questionnaire and personalized day plan results to inspire curated trips around Vienna. 1. **Software architecture overview using the C4 model** (12:15) — Using the C4 model to map out a microservices architecture communicating with a central data hub. 1. **Opinionated location aggregation and embedded plugin endpoints** (18:27) — Consuming aggregated place of interest APIs and providing routing interfaces via standard oEmbed endpoints. 1. **Building itineraries by iteratively dressing structural skeletons** (24:06) — Using feature vectors and cosine distance to map places of interest onto a structured daily schedule. 1. **Training logistic regression classification models in tensorflow.js** (30:28) — Applying multinomial logistic regression to classify weather and atmosphere despite subjective human labeling constraints. 1. **Building a structured data aggregation extraction pipeline** (34:44) — Extracting, transforming, and loading structured and unstructured tourism content into an aggregated knowledge graph. 1. **Implementing natural language processing algorithms in Node.js** (37:00) — Matching structured data via bigrams and cosine similarity while navigating the limitations of Node.js natural language libraries. 1. **Refactoring prototype application architecture into reusable frameworks** (40:29) — Decoupling the user interface from core data logic to support multiple destinations and flexible scaling. ## Related Moments - [Fragmented data challenges in the Austrian tourism industry](https://www.wearedevelopers.com/videos/92-poc-austria-experience-data-hub) (from "PoC “Austria Experience Data Hub”") - [Demonstrating an AI travel assistant for business applications](https://www.wearedevelopers.com/videos/100074-generative-uis-and-ai-assistants-for-your-angular-applications) (from "Generative UIs and AI Assistants for Your Angular Applications") - [Voice AI architecture and interactive kiosk demo](https://www.wearedevelopers.com/videos/10-raise-your-voice) (from "Raise your voice!") - [Architecting the multi-step travel discovery pipeline](https://www.wearedevelopers.com/videos/100319-llms-in-the-wild-building-an-ai-agent-that-survives-production) (from "LLMs in the wild: Building an AI agent that survives production") - [Five levels of generative AI using an Airbnb example](https://www.wearedevelopers.com/videos/1006-every-ceo-needs-a-digital-twin-to-understand-the-scope-of-generative-ai) (from "Every CEO needs a digital twin to understand the scope of generative AI") - [Summarizing developer experience and artificial intelligence companions](https://www.wearedevelopers.com/videos/884-forget-developer-platforms-think-developer-productivity) (from "Forget Developer Platforms, Think Developer Productivity!") ## Related Articles - [Dev Digest 137 - AI'm not sure about this](https://www.wearedevelopers.com/magazine/485-dev-digest-137-ai-m-not-sure-about-this) - [Dev Digest 120 - Apple and peers](https://www.wearedevelopers.com/magazine/455-dev-digest-120-apple-and-peers) - [Covid-19: A crowdsourced Map For Checking Supermarket Wait Times Worldwide](https://www.wearedevelopers.com/magazine/116-covid-19-a-crowdsourced-map-for-checking-supermarket-wait-times-worldwide) - [Dev Digest 132 - Binging WADFlix?](https://www.wearedevelopers.com/magazine/473-dev-digest-132-binging-wadflix) ## Related Jobs - [AI Software Engineer (Germany)](https://www.wearedevelopers.com/jobs/48317-ai-software-engineer-germany) at **Sunhat** - [AI Full Stack Engineer](https://www.wearedevelopers.com/jobs/ext/1354435-ai-full-stack-engineer) at **Almedia** - [Senior Software Engineer, Data](https://www.wearedevelopers.com/jobs/48273-senior-software-engineer-data) at **Sportradar Media Services GmbH** - [Senior AI Agent Software Engineer (Go, Python) (m/f/x)](https://www.wearedevelopers.com/jobs/48277-senior-ai-agent-software-engineer-go-python-m-f-x) at **Dynatrace** - [Principal Engineer - AI Search & Vector Infrastructure](https://www.wearedevelopers.com/jobs/ext/353953-principal-engineer-ai-search-vector-infrastructure) at **Redis** - [Staff Frontend Engineer (Expert+/Lead equivalent) - Hybrid working model, 100%, Ho Chi Minh City](https://www.wearedevelopers.com/jobs/48314-staff-frontend-engineer-expert-lead-equivalent-hybrid-working-model-100-ho-chi-minh-city) at **SMG Swiss Marketplace Group**