Code Monkey home page Code Monkey logo

voice-book-search's Introduction

voice-book-search

Search for books with a voice activated input

Development

Pre-install

Your local environment relies on Node.js, and Firebase (you may need to sudo on your machine):

npm install -g firebase-tools

Once installed, you may need to login if it's not already done:

firebase login

If you are in a cloud virtual machine, you might need to run a different login command, and when on another device you have authenticated, paste back into virtual machine the authorozation token:

firebase login --no-localhost

Install

To install development environment dependencies:

npm install

Build

The CSS can be minified after npm install has been run:

npm run build

Deployment

Deploy only hosting

firebase deploy --only hosting

Technical stack

This stack is using web native technologies for both desktop and mobile devices:

  • AMP-HTML
  • Service Workers
  • Web Components

Validate AMP

To check if AMP-HTML is valid, append #development=1 to the url and check the console.

https://voice-book-search.firebaseapp.com/#development=1

Learning resources

The following pages have been useful in learning how to write the code in this repository:

AMP-HTML

Web Speech

todo

Blockers

  • Search with voice (or plain text in input).
  • Web components (in Typescript).
  • Infinite carousel (no third party dependency, native only).
  • Stop scrolling on blur of page. See event slideChange triggered when slide changes. I could check if the page is in focus and allow the slide change, or return false and block the slide change if the page is on blur.
  • Display book covers (-S, -M, or -L) depending on size of viewport.
  • Load images lazily as the carousel scrolls with a small buffer of a few images.
  • Relative time of a moment when the last search query was performed should be updatedautomatically. Display the relative time in a user's preferred language (navigator.language).

Mediun priorities

  • Design

Low priorities

  • Improve build script, automatically paste custom css into html.
  • Minify the html from src to public.
  • Improve the microphone images (maybe svg).
  • Translate interface based on navigator.language
  • Offer to switch UI language with a menu.

voice-book-search's People

Contributors

ebabel-eu avatar

Watchers

 avatar

Forkers

flexninja21

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.