Connect(); 2017: SmartHotel360 Demo Apps and Architecture

Last month we hosted Microsoft Connect(); in New York City. Connect(); is a three-day, in-person and online developer event. If you missed it, no worries! You can watch our keynotes, sessions, and on-demand videos on Channel 9.

For the past five months our keynote demo team worked on a new set of reference apps. We used most of these apps and Azure backend for our keynote demos. As every year, today we are delighted to share the availability of our newest reference sample apps and Azure backend: SmartHotel360 in GitHub.

SmartHotel360Logo

SmartHotel360 is a fictitious smart hospitality company showcasing the future of connected travel.

Their vision is to provide:

  • Intelligent, conversational, and personalized apps and experiences to guests
  • Modern workplace experiences and smart conference rooms for business travelers
  • Real-time customer and business insights for hotel managers & investors
  • Unified analytics and package deal recommendations for campaign managers.

There’s never been a better time to be a developer. Our intent with these set of reference apps and Azure backend is to show developers how to get started building the apps of the future, today!

The heart of this application is the cloud – best-in-class tools, data platform, and AI – and the code is built using a microservice oriented architecture orchestrated with multiple Docker containers. There are various services developed in different languages: .NET Core 2.0, Java and Node.js. These services use different data stores like SQL Server, Azure SQL DB, Azure CosmosDB, and Postgres.

In production, all these microservices run in a Kubernetes cluster, powered by Azure Container Service (ACS) as shown in the accompanying architecture diagram.

Architecture diagram

You can find everything you need to run the backend services locally and/or deploy them in a Azure environment at our SmartHotel360 Backend repository in GitHub.

Websites

SmartHotel360Website SmartHotel360 has multiple apps that share a common Azure backend, including a public website where hotel guests can book a room, smart conference rooms, and even include their accompanying family travelers and their pets! The site was built using ASP.NET Core 2.0. We published the SmartHotel360 Public Website code in GitHub and a few simplified versions on our demo scripts as well.
SentimentApp For hotel managers, we built a simple Node.js website to analyze customer sentiment from Twitter by using Text Analysis Cognitive Services APIs. This website was built with Visual Studio Code and we used multiple of our newest extensions for Cosmos DB, App Service, Azure Functions, and Docker for Visual Studio Code and Azure to build this app. You can find this app at our Sentiment Analysis GitHub repo.

Mobile and Desktop Apps

SmartHotel360GuestApp Travelers are always on the go, so SmartHotel360 offers a beautiful fully-native cross-device mobile app for guests and business travelers built with Xamarin. In this app guests and business travelers can book rooms and smart conference rooms as well as customize room temperature and lighting settings. The mobile app is available in iOS, Android, and Windows.
SmartHotel360DesktopApp We also built a desktop app. This is a version of the SmartHotel360 Xamarin app. With this app, travelers can adjust the temperature and lighting settings of their rooms and find nearby recommended places to go, like coffee shops. All based on deeply personalized preferences.
SmartHotel360SmartDoorNFCApp Travelers need quick access to their rooms. What if we can provide an automated way to have them go straight to their room when they get to the hotel? We used the power of mobile development with Android and NFC to provide this experience. We included NFC access from the SmartHotel360 traveler application and we also created a digital door application to check-in and open your room. All you need is to tap your phone on the digital door. No need to get a key from the lobby.
SmartHotel360MaintenanceApp For hotel managers and maintenance crew, we built a maintenance iOS app and used Xamarin.Forms Native Forms. This is a great way to showcase how companies can modernize existing line-of-business apps with Xamarin. In this app, hotel managers and maintenance crew can get notifications of issues and resolve those directly from their mobile app.

Given the interest, we published all the SmartHotel360 mobile and desktop apps code in GitHub and we are very excited to share those with you as well.

Watch demos in action and download the code!

We used most of the SmartHotel360 reference apps and our Azure backend in multiple Connect(); 2017 keynote demos. If you missed it, you can watch Scott Guthrie’s Keynote: Journey to the Intelligent Cloud in Channel 9 or you can watch individual demo videos at our Microsoft Visual Studio YouTube Channel as well.

You can also grab all the presentations, links to workshops and demos, and creative assets to host your own Re-Connect(); events, also available in our Connect-Event-in-a-Box repo on GitHub.

Our Microsoft Application Platform gives developers the power or Azure, our best-in-class tools, our data platform, artificial intelligence, and cross-device apps to start building the apps of the future. We hope you can use SmartHotel360 as a great learning resource to start building what you need today with any apps, any tools, and any platform.

Enjoy SmartHotel360 from our demo team: Brady Gaster, Beth Massi, PJ Meyer, Bowden Kelly, David Ortinau, Rajen Kishna, Thomas Dohmke, Maria Naggaga, Steve Lasker, Stephen Provine, Tara Shankar Jana, Anitah Cantele, Sachin Hridayraj, Paul Stubbs, Giampaolo Battaglia, and Nishant Thacker.

Erika Ehrli, Director of Product Marketing, Cloud Apps Dev, Data + AI
@erikaehrli1

Erika has been at Microsoft for 14 years. In her current role she manages a creative and energetic team of technical product managers for Developer Tools and DevOps building tier 1 event keynote and general session demos, reference content apps, and technical content to showcase App Innovation.