Self-assembly describes the process of small building blocks organising into large supramolecular structures . Under certain conditions, self-assembly occurs spontaneously driving the systems towards favourable states in terms of free energy. The chemical nature and structure of the building blocks, together with the solvent properties and state conditions, determine the aggregation pathways and the type of the final aggregate. Non-covalent interactions are dominant in this process, and they play a crucial role in determining the properties and functionality of the self-assembled structures.