I want to create a smart doorbell that can be muted - both scheduled (like every night 10PM to 7AM) and on-demand - that will also send notifications to a phone. The hardware will consist of a doorbell button and an actual doorbell (or a speaker to enable custom ringtones) that are both connected to a Raspberry Pi 2 Model B running Windows 10 IoT Core. On the software side, I will create two applications. The server (one running on Pi) will load settings from Azure, periodically check if you (or any other housemates) are home using Bluetooth/WiFi/GPS data from the clients, detect button presses and, depending on time of day settings and your presence, either "ring" the doorbell / play ringtone or send notifications to clients via Azure and/or email.
The client (originally a Windows phone to keep things simple, but eventually plan to port it to other phones and/or make a web app) will allow to configure silent periods, edit household members, update positional information (home/not home), and notify of "missed" doorbell rings if you are not home. Coding will be done in .NET and the source will obviously be part of the project. Down-the-line enhancements could also include adding a microphone/speaker for communication and leaving "voicemail" or a camera for checking who is at the door, but these are out of the scope of the original project. This project is a work in progress and I will be adding more code snippets (as well as full project repository in the end) and details.