Coupez les aubergines en tranches et laissez-les reposer avec du sel pendant 30 minutes pour éliminer l'amertume.
Dans une poêle, faites revenir l'oignon et l'ail hachés dans l'huile d'olive.
Ajoutez la viande hachée et faites-la cuire jusqu'à ce qu'elle soit bien dorée.
Incorporez les tomates concassées, la cannelle, le sel et le poivre. Laissez mijoter pendant 15 minutes.
Faites cuire les pommes de terre à l'eau, puis coupez-les en tranches.
Rincez les aubergines, puis faites-les frire ou griller jusqu'à ce qu'elles soient dorées des deux côtés.
Préparez la béchamel : faites fondre le beurre, ajoutez la farine, puis incorporez lentement le lait tout en remuant jusqu'à épaississement. Hors du feu, ajoutez les œufs battus.
Dans un plat allant au four, disposez les tranches de pommes de terre, les aubergines, puis la viande. Recouvrez avec la béchamel.
Parsemez éventuellement de fromage râpé sur le dessus.
Enfournez pendant environ 45 minutes jusqu'à ce que le dessus soit doré.