View on GitHub

1100 0011

Smart Mirror

My mirror is smarter than yours :P


The Mirror to get you ready for the day.

Offers features like showing date, time, weather, schedule and notifications custom-tailored to the person standing in the front of the mirror.

Summer Project under Programming Club IIT Kanpur. Team Members:

  • Abhinav Kumar Sharma (@jmoriarty221B)
  • Shubham Jain (@shubjn)
  • Subhdeep Saha (@subhdeep)
  • Yash Srivastav (@yashsriv)



Hosted completely on Github.


Shows Current Time


Displays current Date


Displays weather according to location


Displays phone notifications using Pushbullet

Face Detection

Uses Microsoft's Project Oxford

Project Description

Date & Time

Fetches current date and time using javascript from the system date and time


Uses HTML5 Geolocation features to obtain location, i.e., latitude and longitude.

Uses the latitude and longitude to obtain weather data using API


Fetches the user's schedule using Google's Calendar API


Uses Pushbullet's API to mirror notifications on the mirror.

The user needs to have the pushbullet app installed and mirror notifications set to on.

Face Detection

Uses a javascript library - js-object-detect to check if a person is standing in front of the mirror

If yes, then we proceed to face identification which requires Internet Access

Face Identification

Uses Microsoft's Project Oxford Face API for face identification.

For more details on how to use it, refer to our project's wiki page -

The User Model

The User Model

The user model looks like this:

  name: "foo bar",
  userId: "microsoft user id",
  pushKey: "pushbullet api key",
  refreshKey: "google authentication key"

We will have a registration page where the user can enter all this data and it will be saved in a file called users.json

Users contains an array of objects looking like the above. All our API keys are also stored in a different json file called keys.json


LaTeX Documentation
The LaTeX document can be found here : report.pdf
Github Wiki
Help for the more harder technologies used can be found here : wiki