The original Magic Mirror, created by GitHub user MichMich, is an application intended to work in joint with a Raspberry Pi and an LCD screen to create a smart mirror. A user will be able to see not only themselves in the mirror, but also the weather, the day's date, news, or any other information that a developer wishes to create.
Our goal is to create a new Calendar module that can be enabled to replace the default Calendar module, which by default only shows enabled ICal calendars - in this case, only US holidays. The new module, gCalendar, will display a mix of upcoming ICal and the user's Google Calendar events, with minimal user hassle (not having to constantly sign in).
The original Magic Mirror is written in the JavaScript scripting language for Node.js - an open source JavaScript runtime environment for developing a diverse variety of server tools and applications. The Magic Mirror is output via Electron, a framework for developing and displaying GUI. We will be testing on Mac (OSX Sierra v10.12.3, ) and Windows 10.
Ease of use for the user is one of our top priorities, as requested by the customer, so this is the most essential consideration. After retrieving the initial Oauth 2.0 credential from the Google API Console and placing it at the designated place in the code (which will, of course, be very clear in the documentation), the user should not have to sign in at any time in the future, assuming nothing changes with the way that Google APIs handle authorization.
We are considering using Passport to manage Google sign-ins and Oauth 2.0 tokens, but this comes with a couple of potential problems:
We are estimating that approximately 150 lines of code will need to be added to the default Calendar module and/or config file in order to meet our requirements.