For gracefully shutting down and turning on the RPi, look at Pimoroni’s OnOffShim. It connects to the GPIO header using the first six pairs of pins starting at Pin 1. It has a small switch on the edge of the shim, but also provides pads for connecting an external switch. It works quite nicely.
I recently used this on two Volumio projects, the most recent being A Small RPi Based Player with OLED, Buttons and IR Remote. In this case I used a lighted switch (from adafruit) so I can tell if the unit is on or off.
Rick