I'm getting familiar with Open Data Cube and its process to index EO data from different sources but I could not find any example of indexing products/datasets created by algorithms (i.e. running in Jupiter notebooks). Is there a proper way to do that or it is something I'm not supposed to do with ODC?
This is an important question, and the short answer is that it's a really good idea, but it's not done a lot.
The normal practice for the Open Data Cube is to develop analyses in Python code in a notebook and if that analysis becomes a product, it will be re-developed a little into a data production pipeline of some description.
Another alternative is to develop your own metadata that goes along with the data you're producing. I like doing this using Rio STAC, just make sure to include the Projection extension.