Sunday, October 18, 2009

Yemek Önerici

Yemek yapmak bir dert. Derdin bir kısmı "bugün ne yapsak" ve pazardan nelerin alınması gerektiği. Sorunu otomatize edecek bir program yazabiliriz.

* Öncelikle kullanıcı programa hangi mevsimde/ayda hangi sebze/meyveleri, balık/tavuk/et, baklagil vs. istediğini ve iki gün yenilebilecek yemek için gerekli miktarları programa girecek. Her mevsim yenebilecekler için (cırdıngış vb.) genel bir kategori olur. Kısacası, kullanıcı programı ilk açtığında programı eğitecek. İlla herşeyi ilk seferde yazması gerekmez, sonradan da veritabanına eklemelerde bulunabilir.
* Veritabanı dosyaları text olacak, kolayca edit edilebilecek anlaşılır bir formatı olacak (xml?).
* Birden fazla veritabanı dosyası seçilebilecek. Böylece başkalarının veritabanlarını kendi sistemimize ekleyebileceğiz. Veritabanı dizini olur, kullanıcı settings'ten o dizinde bulunan dosyalarıdan hangilerini kullanmak istedeğini seçebilir.
* Program bilgisayar saatinden hangi mevsimde olduğumuzu anlayacak
* Mevsime uygun haftalık yemek listesini oluşturacak. Bir önceki haftanın yemeklerini kullanmayacak. Eğer yemeklerden birini canımız istemiyorsa iptal edebileceğiz, yerine yeni yemek önerecek
* Yemekler için gerekli sebze listesini oluşturacak
* Mevsime uygun meyve, et/balık vs. listesini oluşturacak
* Meyve ve sebze listesini miktarları ile birlikte kullanıcıya sunacak
* Program yeni haftanın listesini vermeden önce kullanıcıya geçen hafta hangi yemekleri yapmadığını sormalı (checklist), yapılmayan yemeklerin dayanıklı malzemelerini stokta tutmalı
* Pazar alışverişinden sonra kullanıcı stoğu güncelleyebilmeli (program ona 1 kg patetes al dediği halde 2 kg almış olabilir)
* Program sebze/meyvelerin tipik dayanma sürelerini bilmeli, ona göre stoktan düşmeli
* Programa sebzelerin tipik pişme süreleri girilebilmeli (düdüklüde, tencerede, fırında, yağda)
* Elindeki malzemeleri girdiğinde sana yapabileceğin yemekleri söylemeli (bkz Supercook)

Bu programı haftalık alışverişten önce çalıştırırsak satın alınacaklar listesini oluşturmuş oluruz.

Sourceforge'da biraz aradım. Bu işi yaptığı iddasında olan projeler var ama hiçbir dokümantasyon vs. yok, projenin çalışıp çalışmayacağı meçhul. Sanki öylesine başlatılıp yüzüstü bırakılmışlar gibi duruyor.