Coming up on today's show, we'll meet the developers at Lotus F1 team as they
transform their current travel application from a static and
standalone itinerary system optimized for paper printouts
to an Office 365 integrated dynamic and mobile app experience on the team's phones and email
and we'll hear from members of the race team as they returned from the Hungarian Grand Prix
Microsoft Mechanics
One of the critical aspects of Formula 1 is getting the crew to the race location
at Lotus F1 team with one in five of their staff on the go and living in email
demand for better integration across email mobile and calendar is strong
compared to the paper based solution used today
And I know that you are actually manually entering these into your calendar inside of Outlook, right?
Exactly, yes.
Some people, individuals will take the time to put those
things into their calendar so it pops up on their laptop or their phone
and warns them when things are. But there's no, at the moment, we have nothing automated for that
The travel office equally wanted a better way of managing and communicating itinerary changes
to affected individuals and keeping personnel details up-to-date
It's hard to make changes to the itinerary it's all done in Word
and we have to do it manually and then republish it on the intranet
It's quite painful at the moment to keep on top of everyone's personal details
we have to track them down to keep their addresses, their Passports, their Visas all up to date
Knowing there was a better path forward using Office extensibility
I caught up with Mark Everest from IT to see how he was looking to solve the problem
So Mark, we heard the pain points from Joanna and Allen surely there has got to be a better way
It turns out there is and what we decided to do was build a brand new application from scratch
So firstly we wanted to integrate with people's emails and calendars
because they are tools that everyone's familiar with now
we wanted to move away from the paper-based team view
and create a more personalized dynamic view that would be up to date at all times
And also we wanted to be able to support different devices on mobile platforms
And where do you start?
The current application is a VB6 application that we don't have the code for
and it uses an Access 2003 database at the back end.
It enforces nine hardcoded steps for traveling to events that don't always fit the model that we use
There is now Active Directory integration so everything has to be manually entered
and the result is a paper based document that we either email or print out to give to people
So not very ideal in terms of dynamically planning for events but where did you get started with the new app?
So for the new application
we decided to integrate with Office 365 because it gives us access to emails and calendars
using calendars means that we don't have problems with
the appointments across time zones because that's all worked out for us
And what Office 365 is doing, is creating a bridge between our applications and the Azure Active Directory
Now you mentioned the nine hardcoded steps
did you have to change the database schema in the new app in order to accommodate
a more free way of planning events?
Absolutely and there is a good opportunity to do that
because we can modernize and make it more future-proof as well
so we also decided to store the data in Azure
which would allow us to use the central database access model that we want to for the application
And you built a few apps to accomplish this right?
Yes, we did. So there's a user interface for the travel team to enter into all the details
then there's an application for the travel team to use on the go
We also created an Outlook add-in
Tell me about security and the model you took there
So we use Active Directory On-premises now for most of our applications
So we wanted to continue using that model
all the users are defined in Office 365 and they have to be to get access to our application
And the good thing about that is, if somebody leaves the team and we deactivate their account
then they no longer have access to the application even if they installed it on personal devices
Azure Ad allows us to create granular controllers to what our application can access in the AD
So for example, the application can access my calendar
but it can't read my email
Ok, so how was the app actually built?
So we started off creating a web application, let me show you
Ok.
So we have a single page app that is hosted out of an MVC application
and we use angular and angular route to provide a rich Ajax interface for the users
what that means is, that when you click on a link or you click on something in the application
You don't have to wait for the whole page to refresh
before you see anything so individual bits of HTML are dynamically loaded
That makes it a lot more fluid
Absolutely, yeah.
And it very easy to create database objects
So we've got our database model here, that we've created
because this was a database project inside VisualStudio
When we publish it to Azure
it automatcally runs all the script for us
So the kinds of things we had to do for example you can see here
we've made it so we start and end time zones to get around the issues we had
with a previous application
Ok and how hard was it to add Office 365 capabilities to this app?
It was very simple in fact there's an option to do this
So you right click and you choose to add
connect to service and there are a few options there so you choose the Office 365 APIs
And then you just follow this wizard
So you have to have a Office 365 developer account already but you just fill in the details from here
and from that you can access calendar, contacts, mail as well as your OneDrive for business files
Now ultimately this is running somewhere on a server
but where do you actually publish everything?
so everything's been published into Azure
we have the web application here as well as the database
Ok
The good thing about web applications on Azure
you automatically get https, so get SSL for free
So you don't have to worry about registering a certificate and having all of those issues
The one tip I'd advise is to always change the name of an application that the users are going to remember
because that's important, that's part of the URL
Ok, so that's all the plumbing for the app, but can we actually see it running?
Yeah, sure.
As I'm an administrator, I get the cog in the top right corner which means I can administer events
and here you can see all the events have been entered as well as the users in the system
so I can easily add a new user
So this is looked up in our Azure AD to put in the user details which are now added to the system
So if we look at a particular event
You can see one that is defined here
and now we're not restricted to the nine stages that we had previously
so we've got a standard event here and I might want to add a new stage
so let's say a team dinner
We can also reorder these stages so I want to have this on one of the evenings
and I can go ahead and add people to that team dinner
So if I create one here
and you can see here that we've got the choice of using the destination or the original time zone
and I can drag people in to that team dinner
As you can see the whole application is very drag and drop
and once I finished entering all the details I can publish this
It will send an email to all the users to tell them that the event has been updated
So what happens in terms of that versus, maybe the old app?
Does that get out of date once I've sent that email?
It can do which is why we created an Outlook add-in
so as you can see here the email has arrived
I've already added the add-in on my machine here
so you could either do it as an individual user
or you can get your Exchange administrator to roll it out to everyone in your company
so just by clicking on the travel advisor add-in here the details of the event are loaded
I can then choose individual items to add those to my calendar
so tell us about mobile support, if I'm using my phone maybe while I'm at the track
So the second part of this project was a mobile application
We've created this using HTML5
And we've used Cordova as part of Visual Studio 2015
which creates native applications.
So there it's HTML5. It compiles native applications for Windows, Android and iOS
Most of the functionality was at the server level
so we've just ported over the key functionality needed for the client application
And because, of course, their native applications they also work offline
That's great for saving also data charges that you might have while you are traveling around the world
Can we see all this working?
Yeah, sure.
I have the application loaded here in an emulator on my PC so don't even have to loaded my phone
I can see the list of events that are coming up. Here is the one that I published earlier
You can see all the details in there, you see who I'm on the flight with
I can also choose to add individual items to my calendar
Or I can choose to bulk select items and choose to add them all to my calendar in on go
at the bottom of the applications it tells you when it was last updated
and you can use standard phone gestures to get lastest updates
and also the application has been written to handle when you're offline
so you can see, when everything goes grey, I'm offline and it's using a cached version
and again you can still see the last time the data was pushed out
The aspects I like about the app, is the ease of making changes and updates
now that the team has access to the app
They can add their own details
we don't have to keep chasing them down
So I just got back from the Hungarian Grand Prix
and one of the great things was using the new travel app
this has replaced a mountain of paperwork for us
and now I have everything at my fingertips in an app
and the best thing about it is, it's personalized to me
I don't have to trawl through lists of names and flight details and stuff. It's all there.
For example, I can click on my outbound flights, with one swipe I can add it to my calendar
Outlook then gives me a pop-up a day before and tells me when I need to go to the airport
We just got back from Hungary
we've been using the app for the first time and it's made a lot of efficient changes to the team
whether we are on the network or offline the information is on the phone for the guys or their tablets etc.
It takes a lot of pressure off me
in that when we're changing events, leave times, adding in meetings we can do that efficiently
the guys, I know the guys have got the information now, it's on the phone
custom events, if something out of the blue changes that we really not banking on
we can put that in there as well, so the guys are all aware
This completes our visit with the IT team and we've seen quite an impressive transformation along their journey
from a five-day email migration to Office 365,
Skype for Business implementation
secure file sharing for OneDrive for business
interactive data visualization with Power BI
and as we saw today race team logistics automation using Office 365 extensibility
I'm headed back to Seattle now
Of course you can watch all the episodes of Lotus F1 team on Office Mechanics
Thank you for watching and goodbye for now
Microsoft Mechanics
www.microsoft.com/mechanics