Nice project idea, but for a first project, you should look for a project that is less complex. Make sure the processor selected supports enough PWM pins for your project (only two different colored RGB LEDs are supported on UNO board). You need to consider Gamma correction values too, because LED colors are not perceived by the human eye evenly with RGB values.
For my Ambient Lighting project, I had searched the internet for an Arduino RGB Library. I found several, but not one that could go both ways (RGB ->HSB & HSB_-> RGB). So I had to code my own in C++. So, if I wanted to adjust brightness but keep the same color, I'd need the new RGB values computed from HSV.
Be careful of the pseudocode on web sites. There are minor errors in the calculation formulas on several sites, including the english language HSL/HSV wikipedia.
Fortunately, I was only able to find the correct formulas on the german version wiki.
Good luck with the project.