I think the Arduino/ESP8266 code can be rather straightforward - save for the donations part, that is where all the complexity is when it comes to coding. The mechanical part is a whole different issue, maybe you can find suitable pet food dispensers for this that can easily be mechanised.
The rest is basically:
- receive notification of donation - MQTT comes to mind
- activate appropriate dispenser (there are apparently multiple) and bell(s)
- keep count (EEPROM to cover power outage)
- NTP to keep time over power outages and resets
- send back a message - again MQTT
That's all the Arduino side has to do.
The webcam is an off the shelf thing.
The donations/payments I really don't know how that could be done. You'd need some payment processor, you have to integrate it in your website together with the video feed, etc.
Most important part of this is making it very reliable as the easiest way to make people angry is if they do not get what they pay for (a happy animal in this case).