The ATmega328P is the brain of the clock. The chip has enough pins, so there is no need to use shift-registers or something similar. The red LED’s are multiplexed in a 4x3 arrangement (4x anodes, 3x cathodes) and a RTC is connected via I2C-Bus.
A light dependent resistor is connected via a voltage divider to an analog capable pin of the ATmega, for setting the right brightness of the LED’s according to the surrounding brightness.
The ESP8266 and the ATmega are connected via Serial. The ESP8266 can be turned off by the ATmega, therefore it only runs when needed for getting the time or running the webserver. The webserver is started by pressing the button on the backside of the clock. When the webserver is started the ESP8266 tries to connect to a WiFi network, if it fails connecting, it starts in AP mode. The webserver displays some info stuff and lets you change different settings (e.g. SSID, password, brightness-settings ...).