Is there any sample code for this piece of hardware to help me understand how to code the alarm functions or read temperature?
I don't have any Arduino code, Dan, I used this RTC with a different micro-controller, but I will do my best to help. It was pretty straight-forward with the other uC, so I expect it will be easy with Arduino also. Google for the datasheet for the 3231 chip that the RTC uses. The datasheet is a long and complicated document, but don't worry. The only things you really need to know are the address that the chip uses on the I2C bus, and the locations of the registers for the day/month/year, hour/minute/second, temperature, alarm hours/minutes etc. They will be on a table on one page of the data sheet. Then read some of the Arduino tutorials on using the I2C bus (WIRE or TWI libraries) and ask any questions. I know all the theory, but not the details of how to do this stuff with Arduino, but I'm sure others will help. Also Google for "Binary Coded Decimal". You will need to understand that to write your sketch to set or read the time from the RTC chip.
I want an LCD since to give both temperature reading and the current time.
A 16x2 character LCD with an I2C interface may be your easiest option. You won't need any more pins at all, as both the RTC and the LCD can share the same connection to to the Arduino. They will have different "addresses" on the I2C bus.
I do have a 4 -digit seven segment display but I think I'll need shift registers to save on pins possibly but it may complicate the design.
You may not need a shift register for the LED display, or any other driver chips. Probably just 12 pins, using "multiplexing". Multiplexing is where it appears to the eye that all 4 digits are lit, but if you had a high speed camera you could see that actually only one of the 4 is lit at any one instant in time. This is a little more advanced technique from a programming point of view compared to the LCD, and its important to keep things simple for your first project, then build your skills up.
do you have any advice on how to set the time, should I do it via buttons and how?
You may not need to set the time again, once it has been set once, because the RTC is very accurate. Maybe a button to reset the seconds and minutes to zero once per year or so as needed. You will need buttons to set the alarm time, or maybe a potentiometer and a button to allow the user to "dial-up" the hours/minutes and press the button to enter.
Thank you for advice and showing the site!
That site is not the only one that sells that RTC. Check out eBay also. Shop around!
My advice would be to work on breadboards while you are working out your design. That's just because I happen to like them. I use the smaller ones that I can clip together into different configurations for each project. My first Arduino is a Nano instead of an Uno for example, so I can plug it straight into the breadboard.