Restoran sipariş sistemi nasıl yazılır? — Otomasyon Hikayeleri #2

Javad Ibrahimli
4 min readJul 23, 2022

--

Merhaba arkadaşlar. Bugün sizlere, Restoranlarda kullanılılması için geliştirilen Restoran sipariş sisteminin nasıl yazacağımızı adım-adım anlatıcam.

Başlamadan önce bildirmek isterim ki bu uygulama, Python3 ve ona bağlı olan Tkinter modulü ile yazılmıştır. Bu yüzden açık kaynak kodlarını da paylaşacağım bu uygulamanı kendi halinde geliştirmek isteyenlerin adını verdiğim modulü öğrenmeleri iyi olur.

Nedir bu Restoran Yönetim Sistemi?

Restoran Yönetim Sistemi, günlük yönetim faaliyetlerimizi yapmak için planlamayı birleştirme sürecidir. Ailesi ve arkadaşlarıyla restoranlara giden müşteriler için faturalandırma sistemini akılda tutmak için geliştirilmiştir.

Restoran Yönetim sistemi sahiplerinin, faturayı müşterilere verebilecekleri ve hatta toplam tutarı hesaplayabilecekleri bazı faturalandırma sistemlerine sahip olmaları gerekmektedir. Bu ihtiyacı karşılamak için yazılabilecek uygulamalardan birini bu makalede görüceksiniz.

Kodlamaya başlayalım

Daha önce de belirttiğim üzere bu uygulamanı tkinter sayesinde yazıyoruz. Bu yüzden, time ve random gibi modüllerin yanına Tkinteri de eklememiz lazım. İmport fonksiyonu ile olan işler bittikden sonra. Tk() kullanarak yazmağa başladığımız kısımdan itibaren programımızın gözükeceği ekranı tasarlamış olucaz. Tittle kullanarak pencere ismini, geometry kullanarak ise ekran boyutunu sonradan kendimiz değişecek şekilde ayarlamış olucaz. Uygulama ekranının üst orta kısmında “Restoran hesap uygulaması” yazısı ve onun altında ise TİME modulunu kullanma sebebimiz olan gerçek zaman gösterecek time komutunu ekleyeceğiz. Bulunduğumuz regionda saat neyse onu da ekrana yansıtacak olan bu komut hakkında okumak isteyeneler, PYTHON Documentation diye Googlede arama başlatıb time modulü hakkında bilgi elde edebilir.

Yukarıda gösterilen koda da bakarsak 6 tane fonksiyon ataması olduğunu görebiliriz. Butonlara basılmayı, ekrana fiyatları yazmayı, verilen ürünlerden son fiyatı bulmayı, ekranı kapatmayı ve reset tuşunu basdıkdan sonra tüm verilerin temizlenmesini sağlayan reset fonksiyonu ardı ardına sıralanmıştır.

Her restoranın bünyesinde siparişlere çok farklı seri numaraları veren bir sistemi var. Bunu biz 10000 ile 50000 arasında RANDOM bir rakam atayabilmek için RANDOM modulünü kurarak belli etmiş oluyoruz. Bu kod yazıldığı zaman McDonalds restoranlar zincirinin menüsü göz önüne alınmıştır diye atanan yemek isimleri sizin restorankinden farklı ola bilir. (Fiyatlar da aynı şekilde). Bunu sonradan kodlara ulaşıp kendi istediğiniz hale getirmekte serbestsiniz. Ben yine de kod sonu çıktısında Lahmacun, Döner gözüksün istiyorum.

Kodun içine TAX olarak verilen Katma Değer Vergisi de eklenmiştir ve bunun ne kadar olacağını kod üzerinde değişe bilirsiniz. Cost ise bize en önemli olan kısımdır, zira son verilmesi gereken para miktarını bize vericek.

Kodun en karmaşık kısımlarından biri ise fotoğrafta görünen üzere ekrana grid komutu kullanılarak tuşlar(özellikle de hesap makinesi tuşları ) eklen kısımdır. Yukarıda tekrar edilen aynı fonksiyon topluluğu da bu işe yarıyor.

Programın içinde yerleştirdiğimiz FİYAT butonunun açılması sonucunda oluşan bu kod kısımında ise programın içine kendi menülerini ekleyecek işverenlerin fiyat ve isim eklemesi ayarlaması üzerine kurulmuştur. (Ayran, Döner, Dürüm ve benzeri lezzetleri ben ekledim.)

Kodun en son fonksiyonlarından biri olan PRİCE sayesinde isimlerini eklediğimiz ürünlerin fiyatlarının ne olduğunu ekrana yansıtmak için bir ekran panosu hazırlamak için kullanıcaz. Ve mainloop koyarak işlem sırasının durmadan akdığı bir loop yaratıcaz.

Yukarıdaki kodun tamamını çalıştırdıktan sonra, müşteriden siparişi verdiğimiz ve siparişlerini toplayabilecekleri ve verebilecekleri sipariş numarasına göre sipariş numarasını verdiğimiz restoran yönetim sisteminin oluşturulduğu aşağıdaki çıktıyı alıyoruz.

Okuduğunuz için teşekkür ederim. Bir sonraki Otomasyonlaşdırma hikayesinde görüşünceye kadar.

Kendinize iyi bakın.

--

--

Javad Ibrahimli

Electronics and Communication Engineering student @ ITU | 2 x IBM Champion Learner Gold | IT Support Enthusiast | IBM certified Co-Creator