Creating a circular time left component

this is more of a general question, because it’s pretty hard to do and I don’t expect anyone to full code this for me, I’m just wondering if somebody have a starting point or an online tutorial(I couldn’t find any). Here is what I want to do:

enter image description here

I know how to do the logic of the no time left, but I can’t think of a proper way to animate those circles based on your time left. Can anybody can give me some direction?