I've used this simple project to explain the basics of the IoT by setting up an MQTT broker on a raspberry pi.
If you want you can watch the full project log on YouTube.
Very often I don't hear this unit ringing because I temporarily left the room or have my headphones on. So I thought there might be room for improvement here!
A NodeJS App is used to receive Bluetooth messages from an Arduino which is connected to the hacked doorbell. The Arduino sends a little BT packet once a person is at the door hitting the button. It then publishes a MQTT message to the Broker that is running on the RPi.
Another NodeJS App listens for that message and once received sends a push notification to a third party push service.
Also I've used PM2 as a Nodejs process manager. Both, the MQTT and the Bluetooth receiving Nodejs App are managed my that.