magento2 – Magento 2.3. – Customize product image on frontend

I would like to create custom fonts, pre-defined images uploaded in admin, and then on the frontend user can choose to customize the main product (for example product is a mug) and can choose to add one of the uploaded images in admin to be shown on the mug or can upload his own or can add his own text and can set font-family from one of the uploaded in the admin. And then the product is successfully added to the cart with users added information

Is there any advice on how to achieve that? I know that it will probably be a lot of javascript work to get it working as expected but any ideas and help would be appreciated.