Development

See the dev branch for features that are actively in development.If you would like to contribute please follow the contribution guidelines.To launch the mirror with a debug window attached use the following command:

npm start dev

Project Structure

The smart mirror is an Electron app, which means it leverages Chromium, Node, and the V8 JavaScript engine to host and render the mirror.

Contains various help scripts. There aren't a ton today and they will expand over time.

Tips and tricks

The dev console is your friend! You can set breakpoints, log messages, and inspect the DOM - just like you would in a regular webdev console.

Speech Simulation

Since speech query limitations have becoming a limeting factor of development I've created a shim for Annyang to "simulate" speech to test the mirror. In the dev console try some of these examples:

// Play YouTube video
annyang.trigger("show me how to tie a bowtie");
// Play a song on SoundCloud
annyang.trigger("SoundCloud play Kero One so seductive");
// Display a map
annyang.trigger("show me a map of Seattle Washington");

Dev Environment

I typically wouldn't recommend developing directly on the Pi (unless you are trying to debug a Pi specific issue, in which case, I'm sorry. It's not the fastest thing in the world.)

The mirror is compatible with linux and OSX, and developing there will be much nicer. You can plug your mirror into your computer and use it as a second (or third, you lucky duck) monitor. There's some logic in main.js that will automatically put the electron app on to your secondary monitor.

It us not suggested that you develop on windows, the mirror is incompatible due to limitations of Snowboy. However, you can use a VM with ubuntu on it if you must...