Since I've managed to get version 1 working with all the functions I plan to add, I've decided to add the project to Hackaday. This site has been a major inspiration for getting started with electronics so it's only natural I would submit my first project, however humble, here.
This first version of the hardware uses just basic newbie-friendly breakouts for the complicated parts like the display and the RTC, so it should be quite easy for any beginner to get started with. This is another one of the reasons I've posted this as a project, I've been looking for an easy newbie-friendly hardware setup for an Arduino clock, but none of the projects I've found online were simple enough for me. During my search I've learned a bit more, but I hope what I've posted is enough for anyone to get started.
Two things in this basic design I'm quite happy with: the fact that it only requires two buttons to set everything including the alarm (I only had two buttons around I had scavanged from a broken router) and the custom 'GUI' for setting the brightness (it fills up one of the segment digits progressively as you increase).
The software part was quite a challenge since there weren't a lot of full-featured clock codes to be found online that included all the bits I needed. Because of this I've pretty much had to invent everything myself, and also because of this it's probably an inefficient mess :).
The controls work based on a simple principle: one button switches the 'view' between clock/brightness/hour setting/minute setting/alarm hour setting/alarm minute setting, the other one changes a value in the 'view' (for the clock view it toggles alarm and is also the snooze, for brightness it cycles values.. etc.).
For the next version of the project I plan to design a custom PCB in Eagle that will incorporate everything except the RTC (which I want to have a header for so you can switch breakouts anytime). It will probably be based on a more human solderable Atmega chip as well.