Color swatches can be added by adding each color as separate variant and the text box for engraving can be added near the buy button, when the user fill out the text box and clicks the button it should make the buyProduct call with this extra information to shopify backend so that shopify backend will retrieve and save the data.
I have good knowledge in LIQUID code that Shopify stores are built with and html, css, javascript and API, hence I can get these customization done without affecting the existing code and its functions.
My recent Shopify stores:
[login to view URL] [login to view URL] [login to view URL]