Inspiration & What it does
Students at university have very busy schedules and often find it difficult to find time to plan their day, with a multitude of lectures, labs, supervisions, and other events.
Scout is a timetable/calendar app which automatically shows on the calendar itself how to get between your events, when to leave, what mode of transportation to take, and automatically overlays the forecasted weather for all of your events. Additionally, we use natural language processing to provide a 'quick add' interface, where you can just type, for example, "Lunch with Brendan at the Corn Exchange at 2pm tomorrow", and it'll automatically work out the location, time, event, and put it in your planner and show when you have to leave for the event and so on.
Most calendars don't provide any of this contextual information that we can glean from the age of APIs, providing limitless data at our fingertips - scout aims to change this.
How we built it
We used a Vue.js frontend, combined with a user system and API written in Flask, and running on Azure Virtual Machines, interfacing with Azure CosmosDB to store user data.
We used the Azure Maps APIs and Bing Maps APIs for getting rich information about locations, routing, and using this to optimise you day - also using the DarkSky API to integrate weather information.
Our quick add functionality uses machine learning powered by Azure's Cognitive Services to analyse unstructured events entered by the user - finding locations and times, which we can use as clues to work out what the user wants.
When events are added to the timetable, the site is able to parse the sentence and auto-fill the event fields immediately.
We built a modern UI with an original logo and animations designed in Adobe After Effects and Inkscape at the hackathon.
Challenges we ran into
We originally spent 6 hours trying to implement a server-less infrastructure using Azure Functions, but we ran into lots of problems that made us completely pivot and refactor to a Flask-based web app, and work through the night without sleep to get it running.
We also discovered an issue with 40 minutes to go where we found out the Bing Maps API was returning just "United Kingdom" as the location for most addresses we tried it on - leading to a last-minute overhaul to the Azure Maps API on the front-end which worked way better for recognising addresses.
Accomplishments that we are proud of
We are proud of being able to implement the Azure APIs successfully - and discovering some bugs in Azure's Maps APIs which we were able to report to the Microsoft team. We're proud of how well and how fast the NLP functionality works - successfully parsing almost anything we throw at it.
What we learned
We learned a lot about Azure - none of us had used any of the services before. We also learned how to animate SGV files programmatically and using Adobe After Effects.
What's next for Scout
We want to extend the functionality of the routing algorithm, for example by automatically highlighting breaks where you have enough time to go home and study between timetabled activities - as well as integrations with scrapers to automatically get cafeteria food menus and dynamically insert them into the timetable. Future implementations of Scout can include extending this to iOS and Android, allowing ease of use on the go.