The Magic Mirror project was something I had always wanted to do. In recent years, there has been a crowing community of makers for this project including an entire site dedicated to it with add-on modules and a support forums. That, combined with some extremely helpful videos on Youtube, made this project a lot easier than going at it from scratch. Specifically, this particular video was very helpful for me. Because there are already a lot of great tutorials and resources on how to do this project, I won't get too into the weeds of the setup. Instead, I'll go over at a high level of what is needed, and show how I set mine up.
Hardware Per the Wicked Makers linked video, I essentially followed what they did. At a high level, you need:
Some plywood, screws, glue, paint, and misc. adapters
Software Following the link above to MagicMirror.builders, the introductory documentation explains further what you need. Basically, you install Node.js on your Raspberry Pi, and download their setup bash script. From there, you can customize which modules you want such as date, time, weather, stocks, etc.
By far the hardest part of this project for me was creating a frame for the mirror and monitor to sit in. While I know some people who are fantastic at wood working, I am not one of them. Once the frame was built, the fit to get everything inside of it was very tight. The materials were somewhat fragile and I had to pay close attention not to scratch anything.
In the end, I am really happy with how this came out. One thing to note is that I did end up mounting this in my bedroom. While it is not incredibly bright, it is still a monitor behind the mirror that needs to be turned off and on so that there is not a ton of light when you are trying to sleep. I did this with via a cron job on the Raspberry Pi:
vcgencmd display_power 1 #powers on the monitor vcgencmd display_power 0 #powers off the monitor