Skip to content

OOP Car Rental System Using SQLite and Tkinter in Python

Notifications You must be signed in to change notification settings

nazli-d/Rent-a-car-oop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Araç Kiralama Uygulaması (Rent Car OOP GUI)

Araba kiralama uygulaması, Python programlama dili kullanılarak geliştirilen ve grafik kullanıcı arayüzü (GUI) tasarımını bir araya getirerek, araç kiralama süreçlerini yönetebilen bir yazılımın nasıl oluşturulacağını gösterir. Kodun temelinde, nesne tabanlı programlama (OOP) prensipleri ve SQLite veritabanı kullanımı bulunmaktadır.

image

Kullanılan Sınıflar ve OOP Prensipleri

Araba Sınıfı:

Encapsulation (Kapsülleme):

Araba sınıfı, özelliklerini (marka, model, yıl, kilometre) ve bu özelliklere erişim yöntemlerini içerir. Bu sayede, sınıfın iç yapısını gizleyerek dış dünyadan gelebilecek olası değişikliklere karşı koruma sağlanır.

image

Inheritance (Kalıtım):

Elektrikli Araba ve Benzinli Araba sınıfları, Araba sınıfından türetilmiştir. Bu sayede, temel özellikleri Araba sınıfından miras alarak, kod tekrarı önlenir ve kodun genişletilebilirliği artar.

Abstraction (Soyutlama):

Araba sınıfı, soyut bir sınıftır. İçerisinde soyut bir metot olan "bakim" metodu bulunur. Araç tipine özel bakım sürecini soyut olarak tanımlayarak yöntemin alt sınıflara göre uygulanması gerektiğini belirtir.

image

Elektrikli Araba ve Benzinli Araba Sınıfları:

Inheritance (Kalıtım):

Her iki sınıf da Araba sınıfından türetilmiştir. Bu sayede, her iki sınıf da Araba sınıfının özelliklerini ve metotlarını kullanabilir.

Polymorphism (Çok Biçimlilik):

Her iki alt sınıf, Araba sınıfının soyut metodu olan "bakim"ı kendi ihtiyaçlarına göre uygular. Aynı isimli metodun farklı davranışlar sergilemesine olanak tanır.

Kiralama Sınıfı

Kiralama sınıfı, bir kiralama işlemini temsil eder. Bu sınıf, kiralama işleminde kullanılan özellikleri ve bu işlemin ücretlendirilmesini içerir.

Araç Kiralama Uygulaması Sınıfı

Bu sınıf, uygulamanın ana penceresini yönetir. Müşteri girişi, veritabanı bağlantısı, ana pencerenin oluşturulması ve araç listesinin gösterilmesi gibi temel işlevselliği içerir.

Özellikler

  • Müşteri Girişi: Kullanıcıların adlarını girerek sisteme giriş yapmalarını sağlar.
  • Araç Listesi: Kullanıcıların kiralayabileceği arabaların listesini görüntüler.
  • Araç Kiralama: Müşterilerin seçtikleri araçları belirli bir süre için kiralayabilmelerini sağlar.
  • Veritabanı Entegrasyonu: SQLite veritabanı üzerinde müşteri, araç ve kiralama bilgilerini saklar.
  • Tablo Dışa Aktarma: Veritabanındaki bilgileri CSV formatında dışa aktarma (export) imkanı sunar.

GUI Ekran Görüntüleri

Ana Sayfa Ana Sayfa Ana Sayfa

Veritabanı Yapısı

Proje, SQLite veritabanı kullanır ve aşağıdaki tabloları içerir:

  • musteri: Müşteri bilgilerini saklar.
  • arabalar: Araç bilgilerini saklar.
  • kiralama: Kiralama işlemlerine ait detayları saklar.

Veritabanı Ekran Görüntüleri

Müşteri Tablosu Arabalar Tablosu Kiralama Tablosu

Katkıda Bulun

Projeye star vermek için aşağıdaki adımları takip edebilirsiniz:

  1. Projenin GitHub sayfasına gidin.
  2. Sayfanın sağ üst köşesinde bulunan "Star" düğmesine tıklayın.
  3. Eğer oturum açmadıysanız, GitHub hesabınızla oturum açmanız istenecektir. Oturum açın veya yeni bir GitHub hesabı oluşturun.
  4. "Star" düğmesine tekrar tıklayarak projeye star verebilirsiniz.