Giter VIP home page Giter VIP logo

azure-samples / mydriving Goto Github PK

View Code? Open in Web Editor NEW
388.0 84.0 277.0 19.79 MB

Building IoT or Mobile solutions are fun and exciting. This year for Build, we wanted to show the amazing scenarios that can come together when these two are combined. So, we went and developed a sample application. MyDriving uses a wide range of Azure services to process and analyze car telemetry data for both real-time insights and long-term patterns and trends. The following features are supported in the current version of the mobile app.

Home Page: http://azure.com/mydriving

License: MIT License

C# 72.07% PowerShell 5.21% JavaScript 17.46% Shell 1.33% TSQL 3.93%

mydriving's Introduction

MyDriving - An Azure IOT and Mobile Sample Application

This repository contains the MyDriving sample that demonstrates the design and implementation of a comprehensive Internet of Things (IoT) solution that gathers telemetry from devices, processes that data in the cloud, and applies machine learning to provide an adaptive response. The demonstration logs data about your car trips using both your mobile phone and an On-Board Diagnostics (OBD) adaptor that collects information from your vehicle's control system. The Azure backend uses this data to provide feedback on your driving style in comparison to other users.

Quick Start and Reference Guide

In addition to the readme documentation included in this repository, please see:

Repository contents

A collection of resources to enable you to deploy and configure the Azure backend for MyDriving to your own Azure subscription. This includes Azure Resource Manager (ARM) templates for deploying all the necessary Azure services, Bash scripts, and PowerShell scripts.

It also includes scripts you can import into Visual Studio Team Services to set up build definitions for the Xamarin mobile app projects and the API endpoint project that's deployed to Azure App Service.

Refer to the scripts readme for additional details.

Open the individual solutions in their respective folders to build and deploy.

More information on deploying to your own environment is given in the Getting Started guide.

Data structure definitions used by the Data Factory service. The MyDriving system uses the Data Factory service to create an HDInsight cluster on demand. For details, refer to Chapter 8 of the MyDriving Reference Guide.

An example extension to the MyDriving system that performs a the Vehicle Identification Number (VIN) lookup in the course of processing IoT data. For details, refer to Chapter 9 of the MyDriving Reference Guide.

Copies of the resources the ARM templates use to configure the HDInsight cluster.

Visual Studio 2015 solution and project files for the Android, iOS, and UWP mobile apps for MyDriving. These are implemented with Xamarin. For details, refer to Chapter 3 of the MyDriving Reference Guide.

Visual Studio 2015 solution and project files for the API endpoints in Azure App Service. For details, refer to Chapter 4 of the MyDriving Reference Guide.

Visual Studio 2015 projects containing the OBD client libraries for communicating with OBD dongles.

PowerBI report definition. For details on how Power BI is used in MyDriving, refer to Chapters 6 and 8 of the MyDriving Reference Guide.

Copies of the SQL scripts executed by the PowerShell script to populate the SQL databases created by the ARM templates.

Copies of queries used by the ARM template to configure Stream Analytics jobs.

-- This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

mydriving's People

Contributors

acomsmpbot avatar bursteg avatar dominicbetts avatar ethanis avatar f2bo avatar haishi2016 avatar haishibai avatar jamesmontemagno avatar msftgits avatar nicolehaugen avatar nzthiago avatar pidibi avatar pierceboggan avatar romitgirdhar avatar supernova-eng avatar v-rajagt-zz avatar vaijanathb avatar xiangyan99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mydriving's Issues

Change 'keep driving, need more points' dialog

'Keep driving, need more points' is not a good way to inform the user that he did not move during the trip. The purpose of the application is not to get points.
Change the dialog to inform the user that he did not moved at all during the trip. Give three options:

  • keep driving
  • save the trip anyway
  • discard the trip

Master Solution needed

We need to have master MyDriving solution for all the projects

Proposed Structure (Solution Folders in Master SLN)

  • Mobile App (Xamarin + UWP)
  • Services (All server side code and projects)
  • Scripts (Scripts)
  • ARM Templates (Contains ARM templates files and metadata)
  • App Service (Contains mobile app backend)

[iOS]iOS app hangs the phone after I run the app and leave it there for a while

I launched the app and forgot it for a while (phone was auto-locked). When I tried to unlock the phone, the phone was hung.
I saw the message in the output window

2016-03-11 10:08:14.554 MyTripsiOS[1902:664013] ** -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion:] ** unhandled action -> <FBSSceneSnapshotAction: 0x146cc8510> {
handler = remote;
info = <BSSettings: 0x144e9c720> {
(1) = 5;
};
}

Make provisioning device API more robust to handle potential hanging issues

Currently the call to the provision API provided by the mobile service is wrapped in a try-catch. However, we've seen issues where the call to this API hangs seemingly forever with no exception returned.

Not sure why this is occurring, but we should add some timeout logic to more elegantly handle this.

Logout issue

Click logout, the app asks you to confirm. Click cancel. --> still logout?

Null value returned for UserInfo Api

Sometimes when loggin in, client.InvokeApiAsync(
"UserInfo",
System.Net.Http.HttpMethod.Get,
null);

returns null, even though the user/password was correct.
If I try the second time it returns the value.
I got this with MS and Twitter accounts.

[All] Need ability to delete past trips

Users are going to want to be able to delete a past trip if they want to.

For example, on the past trips list, if user presses and holds a trip show a context menu that allows you to delete.

We may also consider adding a delete button to the past trip detail screen. We may need UX recommendations on this.

Tasks

[ios]We don't poll obd data in a correct cadence

I changed the geolocator trigger to await Geolocator.StartListeningAsync(1000, 0);
So
expect: obd read() will be called per second
actual: It is not called for several seconds and then we keep poll it several times continuously.

No need to show temperature

As discussed with Pierce, looks like our temperature is the temperature of the air surrounding a power supply. Who will care about this temperature?

Add copyright notice to all files

This is what we should add to all source files

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for details.

Need to remove cancel button on Save Trip dialog

The cancel button is misleading today because it doesn't really cancel - it simply saves the trip with a default name.

We should remove the cancel button and then simply default the name if the user doesn't provide one.

[Windows] Errors in metric units conversion

I've noticed that changing the units to metric from Settings updated the distance but not speed units.
Also Nicole has observed some issues on Part trips screen, units not being updated.

Build in XS does not work

Clone repository, open in XS and try building. This wont work since the components are not getting dowloaded. Need to fix this before release.

Time not stored as UTC

It doesn't seem that we are storing our times as UTC - as a result, this is causing issues when calling the Humanize() method (such as in the TimeAgo field on Trip) which relies on the time being in UTC.

For consistency, we should look at using UTC throughout the app.

[android]Start a trip and stop it for several times, the app may crash

Just repeat

  1. Start a trip
  2. Wait for some points
  3. Stop the trip and upload the data

two ~ four times

The app may crash with the message
03-14 15:18:51.220 F/art (12827): art/runtime/fault_handler.cc:117] Check failed: !initialized_

In my case, I did not sign-in. I am not sure if this matters.

UWP Fit and finish issues

Here are some of the fit and finish issues that I saw when I was running the app with Rui.

  1. Summary Trip Map Control lacks Start point A and End Point B. Check the Zindex of these MapIcons and increase them to 3 if they are not appearing.
  2. UWP app does not have a launch splash icon. We need to fix it and probably use the same Icon used in iOS and Android.
  3. UWP LoginScreen SmartCar icon has a mesh art behind it. This is different from Android and IOS. Can you confirm this with Lena and try and use the same icon as Android ? The Android Icon also has SmartTrip written in it.
  4. Change the name of the app to MyTrips from MyTrips.UWP.
  5. Change the App icon on UWP. Currently the App has default Icon.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.