Sounds like a fun little project… Go the SMD!!!
I found that a good pair of tweezers and a magnifying glass, are more important than the soldering iron when you’re a beginner. I did my first SMD with a seriously crappy cheapo soldering iron from one of those starter kits. And If you can do a schematic, you can do a PCB layout. That SMD board I mentioned was from Getting to Blinky (though an earlier version, where he’d made a mistake that I dutifully copied because I figured surely he knows what he’s doing more than I do). Though, expect to mess up the first one, and also expect to have to re-spin your first board. My first one actually worked, once I realised that Chris had in fact made the mistake I was worried about, and so lifted one leg of the IC up in the air. But I did a new board with the problem fixed, and some other minor tweaks, and then put all three together for practice. I was actually most happy with the second last one (the first two were a bit gruesome), and when I decided to do a 3rd version, a keyring sized one, I didn’t have any trouble at all — which was good because I also only had one IC left, having expected to mess up more than I did. If you are worried, or just haven’t finalised the design just yet, perhaps hit up one of the many tutorials and get some practice in first. Go with the nice chunky 1206 resistors, and you should be fine. You’re planning on using modules for all the fiddly stuff anyhow.
I hope your rules for tinkering with mains are better than ours here…
Personally, it sounds like I’d probably put the buttons, and LED on the front, and the resistors and D1 module on the back, with the power and relay on a stand-off, and going SMD avoids leads poking through in awkward places, and unsightly solder blobs showing through between the buttons.
The relay typically needs a transistor and flyback diode (I think they’re called — it’s been a while). The transistor likes to have a current limiting resistor (otherwise it tends to do nasty things to the ųC), and the diode is just a regular reverse biased power diode to catch current spikes kicked back from the coil when it turns off. You can find plenty of material about that on good ol’ Google. I’m not entirely sure why relays are so much more popular than triac’s or SSR’s or whatever (maybe someone better at that stuff can answer that for me, too), also, are latching relays a viable thing? The ones that just stay in whichever state you put them last.
As for scenes… This is part of a system. So pull the actual control back into a dedicated device, otherwise, you’re going to have to keep every switch that has any scene device in common, perfectly in sync, all the time. That’s not real difficult, and improves redundancy, but also makes it more complex, prone to glitches and desyncs, and a general pita. Another problem, however, is that it makes it hard to mix and match hardware, because every switch now also has to understand every device, and listen for updates to every device, and it ALL had to remain in sync. That’s fine if you have a nice heterogeneous system, but then say you want to just quickly add in an extra device for some temporary situation — and now you’re stuck. So split the functions of the device, and do the actual control centrally — when a button is pressed, send a message back to the controller, which sends a message back to the button to actually flip the relay, or change the LED colour. Introduces a little delay, but when everything’s working it should be barely noticeable. That said, the button device can still set it’s LED or switch the relay pro-actively, if the controller always sends back a response command; if the controller then says ‘no’, you’ll get a flicker, and it goes back to how it was. (And you can deal with that by adding in a delay of your own.) Also, since it has a brain, I’d probably add in bit of logic so if the button is held down, or the device notices the server has become unreachable, it goes into “dumb mode”, and behaves like a simple switch for it’s directly connected light until the server returns (or you take it out of dumb mode).
That’s my 2¢ worth, anyhow. (Of course, we don’t have 2¢ coins any more, so, expect it to round down to 0 sense.)