would you like a program challenge?

the atmega 328 has 14 digital and 6 analog ports wouldn't this be enough?
I would just drive relays near the board and run the circuit from them.