In line with zoomkat's comments, the main obstacle in this project is the mechanics since controlling the project with an Arduino is very simple. So don't even worry about that part until you've got the blinds working. Otherwise you may waste time, effort and money on electronics to drive a device that doesn't work. Whoa, gonna have to correct myself. It may not be so simple since you're gonna have to find a way to shut down the drive if there's a jam. For simplicity, perhaps a slow-blow fuse of the proper rating would work.
As for the sensor, nothing fancy is needed here since you could easily create your own using a photo cell and resistor (I'm talking 'cheap').
As for the motor something under 500mA, around 2300 rpm or so (Because arduino can only provide up2 50mA current).
This I don't understand at all. First, NEVER try to drive a motor from an Arduino pin. Arduinos are dainty, motors are BIG. You MUST use a driver to power the motor and the Arduino controls the driver. What I don't understand is your reasoning that you would like to use a motor under 500ma and then state that you know an Arduino can only provide up to 50ma current Not that it matters much since you can't do it anyway.
2300 RPM is way too fast. Something in the single digit RPMs would be better. The plus side of that is that are plenty of small, low cost, geared, low voltage dc motors out there with high torque and low output speed(which you will need). Although more costly, a high torque servo could be used; that would sure simplify things, being easier to mount and drive. But wait, I'm not sure if you simply want to open/close the blinds or if you intend to also/or raise and lower the blinds.
I think the best way to approach this project would be to work out the motor mounting and coupling to the blinds, then the motor driver, then the Arduino. - Scotty