Giter VIP home page Giter VIP logo

martincostello / alexa-london-travel-site Goto Github PK

View Code? Open in Web Editor NEW
17.0 4.0 7.0 8.12 MB

The companion site for the London Travel Amazon Alexa skill

Home Page: https://londontravel.martincostello.com

License: Apache License 2.0

C# 76.25% PowerShell 0.68% JavaScript 0.37% CSS 0.92% HTML 19.25% TypeScript 2.37% Lua 0.05% Dockerfile 0.12%
alexa amazon-alexa-skill london-travel london-underground tfl

alexa-london-travel-site's Introduction

Alexa London Travel Site

London Travel

Build status codecov OpenSSF Scorecard

Overview

This repository contains the companion site for London Travel, an Amazon Alexa skill for checking the status for travel in London.

Feedback

Any feedback or issues can be added to the issues for this project in GitHub.

Repository

The repository is hosted in GitHub: https://github.com/martincostello/alexa-london-travel-site.git

Building and Testing

To build and test the website run the following commands from your terminal of choice:

git clone https://github.com/martincostello/alexa-london-travel-site.git
cd alexa-london-travel-site
./build.ps1

License

This project is licensed under the Apache 2.0 license.

Copyright and Trademarks

The London Travel skill and companion website is copyright (©) Martin Costello 2017.

Amazon Alexa is a trademark of Amazon.com, Inc.

The TfL roundel is a trademark of Transport for London (TfL).

alexa-london-travel-site's People

Contributors

costellobot avatar costellobot[bot] avatar dependabot-preview[bot] avatar dependabot[bot] avatar imgbotapp avatar martincostello avatar uatec avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

alexa-london-travel-site's Issues

View account data?

Consider an "advanced" feature to allow a user to view their own account data.

Tidy up page header

Tidy up the page header so it looks better on the desktop in terms of text and so that the brand icon is aligned correctly.

User sessions are logged out when site deployed

When the application is re-deployed, user sessions are terminated.

This is because no data protection storage is configured, meaning that session keys are stored in memory, thus they are lost when the process is restarted.

Data protection needs to be configured, along with an appropriate external key ring provider (as described here), so that material can be decrypted across App Service instances in different locations/slots.

Fix mobile scrolling

Fix mobile scrolling by removing the minimum height CSS rule for the body content.

Fix resource localisation for en-US

When trying to make en-US vs en-GB localisation work (favorite vs. favourite), the en-GB resources were never used for some reason.

Need to work out why this is and fix it so can properly localise based on the supported English Alexa localisations.

Browser icons

Create appropriate icons for Chrome, Safari, Windows etc. (i.e. favicon.ico) from the London Travel logo for use in the site.

Store claims

Store non-standard claims from external services (e.g. Twitter screenname) in the service to add to the principal when users sign in.

Fix incorrect log message

The AlexaController class emits incorrect log messages when linking an account due to a missing ! when testing if the signed-in user already has an Alexa access token.

TypeScript?

Investigate using TypeScript for the more complicated JavaScript (e.g. for the /and /manage pages) instead of vanilla JavaScript.

Add install redirect

Add a link that redirects the user to the skill on amazon.co.uk so they can install the skill.

Reduce DocumentDb queries

Only verify that the DocumentDb database and collection exist on first use, instead of for every request.

Selenium tests?

Using the approach described here, investigate adding Selenium tests for testing the UI when hosted in Kestrel for the integration tests.

That could also be extended for DVTs as part of deployment.

Setup Azure resources

Setup resources (development and production) in Microsoft Azure to host the site.

Account deletion

As well as to make testing easier, add a "delete account" button to /manage so a user can purge all their data from the application if they wish to.

Enable Alexa account linking

Enable account linking from Alexa.

Requirements will include:

  • Authorization URL
  • Client Id
  • Domain list
  • Scope(s)
  • Redirect URL(s)
  • Authorization Grant Type (Implicit Grant)
  • Privacy Policy URL
  • Message for the user if they have not linked their account yet.

Support page

Add a /support page with appropriate content.

Going to /help would redirect to the support page.

Use resource file

Use resource file for text, where possible, mainly just to ensure text is consistent.

Fix sign-in options for Alexa account linking

In the testing for #4, it was found that not all of the external authentication services worked when used from the Alexa app to sign-in. These should be fixed, or at least it determined why they don't work.

For example, Google actively disallows its use in embedded browsers so cannot be used at all.

  • GitHub
  • Microsoft
  • Twitter

Enable social login

Enable social login so that no authentication/authorization infrastructure needs managing by the application itself beyond any secret keys required to setup social login.

Enable support for login/linking via:

  • Amazon
  • Facebook
  • GitHub
  • Google
  • Microsoft
  • Twitter
  • Account linking

Ideally receive enough permissions/scopes to get first name and email address.

Add GA events

Add GA events for all user interactions (button clicks, link clicks etc.).

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.