The hardware has changed to a PIC16F877, which has 40 pins. The new version looks much the
same, twice as many switches and relays. Plus it has a "Bank Toggle" switch, so you can have 2
settings for each switch, and toggle between them. So you can have 24 settings for the 12 relays
stored in memory.
The wiring is repetitive, and not really complicated. You can't attach a relay directly to the
microcontroller, it draws too much current from the chip. So you use a transistor "driver" to switch
the relay on. Relays need a diode across the coil to protect the transistor.