1) Upload Custom Images
2) After users upload custom images to selected item, they can click, drag, rotate, and resize uploaded image. All these functions already exist in the current API.
3) After users "add to cart", the user's raw, uploaded image is sent in an email to the website admin. Also, an image of the user's design is sent to the website Admin.
4) limit product colors to Black, White, and Grey.
The ideal candidate can get this done in 2-3 days. Really, all these features already exist in woocommerce and in the api provided. So, customization will simply require "connecting the dots"