I'm not aware of any off the shelf widget that provides all this, and I don't think it would be trivial, it would probably take a significant investment in time to put something like this together.
Perhaps, if you made a start and could build a significant part, then the community here might be able to guide you through the more challenging or novel aspects.
Would you be able to produce even a primitive version yourself as a starting point ?