Skip to content

hamer1818/rent-a-car-with-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rent-a-Car Automation Program with Python

📚 Dil / Language


Araç Kiralama Otomasyonu

Python, Tkinter ve TTKBootstrap kullanılarak geliştirilmiş, MySQL ve SQLite veritabanı destekli, modern ve güvenli Araç Kiralama Otomasyonu projesi.

✨ Özellikler

  • Çoklu Dil Desteği:

    • Türkçe ve İngilizce dil seçenekleri.
    • İlk açılışta dil seçimi ve sonradan Ayarlar menüsünden değiştirme imkanı.
    • Değişiklikler otomatik olarak kaydedilir.
  • 🔒 Veri Güvenliği (Şifreleme):

    • Müşteri (TC, Telefon, Adres vb.) ve Araç (Şasi No, Motor No) bilgilerindeki hassas veriler veritabanına Fernet (AES) ile şifrelenerek kaydedilir.
    • Veriler sadece uygulama arayüzünde şifresi çözülmüş olarak görüntülenir.
  • Çoklu Veritabanı Desteği:

    • Varsayılan olarak kurulum gerektirmeyen SQLite ile çalışır.
    • İstenirse config üzerinden MySQL'e geçiş yapılabilir.
  • Kapsamlı Yönetim:

    • Müşteri Yönetimi: Ekleme, listeleme, çift tıklayarak detay görüntüleme.
    • Araç Yönetimi: Araç ekleme, listeleme, müsaitlik durumu takibi.
    • Kiralama İşlemleri: Kolay seçim arayüzleri, ücret hesaplama, kiralama başlatma ve sonlandırma.
  • Modern ve Kullanışlı Arayüz:

    • ttkbootstrap ile modern, temiz ve duyarlı (responsive) tasarım.
    • Özelleştirilmiş Tema: Rent A Car sektörüyle uyumlu renk paleti.
    • Görsel Geri Bildirim: Butonlar üzerine gelince parlama ve çerçeve efekti (Hover).
    • Kolay Erişim: Sol menüde tüm işlemlere ve Çıkış (Exit) butonuna hızlı erişim.

🚀 Kurulum ve Çalıştırma

Yöntem 1: Doğrudan Çalıştırma (Önerilen)

  1. Gerekli kütüphaneleri yükleyin:

    pip install -r requirements.txt
  2. Uygulamayı çalıştırın:

    python main.py

Yöntem 2: Docker ile Çalıştırma

Not: GUI uygulaması olduğu için Docker ile çalıştırırken X11 yönlendirmesi (Xming, VcXsrv vb.) gereklidir.

  1. Docker imajını oluşturun:

    docker build -t rent-a-car .
  2. Konteynerı çalıştırın:

    docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix rent-a-car

    (Windows Kullanıcıları İçin Önemli Not): Docker üzerinden arayüzü görebilmek için VcXsrv (veya benzeri bir X Server) kurulu olmalıdır.

    1. VcXsrv'ı başlatırken "Extra settings" ekranında "Disable access control" seçeneğini mutlaka işaretleyin.
    2. docker-compose.yml kullanıyorsanız şu komut yeterlidir:
      docker compose up --build
    3. Hata alırsanız (couldn't connect to display), Windows Güvenlik Duvarı'ndan VcXsrv'a izin verildiğinden emin olun.

Car Rental Automation

A modern and secure Car Rental Automation project developed using Python, Tkinter, and TTKBootstrap, supporting both MySQL and SQLite databases.

✨ Features

  • Multi-Language Support:

    • Turkish and English language options.
    • Language selection on first launch and changeable via Settings.
    • Preferences are saved automatically.
  • 🔒 Data Security (Encryption):

    • Sensitive data in Customer (ID, Phone, Address etc.) and Car (Chassis No, Motor No) records are encrypted using Fernet (AES) before saving to the database.
    • Data is decrypted only when displayed in the application UI.
  • Multi-Database Support:

    • Works with SQLite by default (no setup required).
    • Can be switched to MySQL via configuration.
  • Comprehensive Management:

    • Customer Management: Add, list, view details via double-click.
    • Car Management: Add cars, list inventory, track availability.
    • Rental Operations: Easy selection interfaces, fee calculation, start and end rentals.
  • Modern & Usable UI:

    • Modern, clean, and responsive design using ttkbootstrap.
    • Custom Theme: Color palette tailored for the car rental industry.
    • Visual Feedback: Buttons glow and show detailed borders on hover.
    • Quick Access: Left sidebar provides quick access to all modules and a dedicated Exit button.

🚀 Installation & Running

Method 1: Direct Execution (Recommended)

  1. Install required libraries:

    pip install -r requirements.txt
  2. Run the application:

    python main.py

Method 2: Running with Docker

Note: As this is a GUI application, running with Docker requires X11 forwarding (Xming, VcXsrv, etc.) on the host.

  1. Build the Docker image:

    docker build -t rent-a-car .
  2. Run the container:

    docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix rent-a-car

    (Important Note for Windows Users): To see the GUI via Docker, an X Server (like VcXsrv) must be installed.

    1. When starting VcXsrv, check "Disable access control" in the "Extra settings" screen.
    2. If using docker-compose.yml, simply run:
      docker compose up --build
    3. If you get an error (couldn't connect to display), sure VcXsrv is allowed through the Windows Firewall.

🛠 Technologies Used

  • Python 3.12
  • Tkinter & TTKBootstrap (GUI)
  • SQLite / MySQL (Database)
  • Cryptography (Encryption/Security)
  • Docker (Containerization)

📄 License

This project is licensed under the MIT License.


Araç Kiralama Otomasyonu

Python, Tkinter ve TTKBootstrap kullanılarak geliştirilmiş, MySQL ve SQLite veritabanı destekli, modern ve güvenli Araç Kiralama Otomasyonu projesi.

✨ Özellikler

  • Çoklu Dil Desteği:

    • Türkçe ve İngilizce dil seçenekleri.
    • İlk açılışta dil seçimi ve sonradan Ayarlar menüsünden değiştirme imkanı.
    • Değişiklikler otomatik olarak kaydedilir.
  • 🔒 Veri Güvenliği (Şifreleme):

    • Müşteri (TC, Telefon, Adres vb.) ve Araç (Şasi No, Motor No) bilgilerindeki hassas veriler veritabanına Fernet (AES) ile şifrelenerek kaydedilir.
    • Veriler sadece uygulama arayüzünde şifresi çözülmüş olarak görüntülenir.
  • Çoklu Veritabanı Desteği:

    • Varsayılan olarak kurulum gerektirmeyen SQLite ile çalışır.
    • İstenirse config üzerinden MySQL'e geçiş yapılabilir.
  • Kapsamlı Yönetim:

    • Müşteri Yönetimi: Ekleme, listeleme, çift tıklayarak detay görüntüleme.
    • Araç Yönetimi: Araç ekleme, listeleme, müsaitlik durumu takibi.
    • Kiralama İşlemleri: Kolay seçim arayüzleri, ücret hesaplama, kiralama başlatma ve sonlandırma.
  • Modern Arayüz:

    • ttkbootstrap ile modern, temiz ve duyarlı (responsive) tasarım.
    • Özelleştirilmiş renk teması.

🚀 Kurulum ve Çalıştırma

Yöntem 1: Doğrudan Çalıştırma (Önerilen)

  1. Gerekli kütüphaneleri yükleyin:

    pip install -r requirements.txt
  2. Uygulamayı çalıştırın:

    python main.py

Yöntem 2: Docker ile Çalıştırma

Not: GUI uygulaması olduğu için Docker ile çalıştırırken X11 yönlendirmesi (Xming, VcXsrv vb.) gereklidir.

  1. Docker imajını oluşturun:

    docker build -t rent-a-car .
  2. Konteynerı çalıştırın:

    docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix rent-a-car
    docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix rent-a-car

    (Windows Kullanıcıları İçin Önemli Not): Docker üzerinden arayüzü görebilmek için VcXsrv (veya benzeri bir X Server) kurulu olmalıdır.

    1. VcXsrv'ı başlatırken "Extra settings" ekranında "Disable access control" seçeneğini mutlaka işaretleyin.
    2. docker-compose.yml kullanıyorsanız docker compose up --build komutu yeterlidir.
    3. Hata alırsanız (couldn't connect to display), Windows Güvenlik Duvarı'ndan VcXsrv'a izin verildiğinden emin olun.

Car Rental Automation

A modern and secure Car Rental Automation project developed using Python, Tkinter, and TTKBootstrap, supporting both MySQL and SQLite databases.

✨ Features

  • Multi-Language Support:

    • Turkish and English language options.
    • Language selection on first launch and changeable via Settings.
    • Preferences are saved automatically.
  • 🔒 Data Security (Encryption):

    • Sensitive data in Customer (ID, Phone, Address etc.) and Car (Chassis No, Motor No) records are encrypted using Fernet (AES) before saving to the database.
    • Data is decrypted only when displayed in the application UI.
  • Multi-Database Support:

    • Works with SQLite by default (no setup required).
    • Can be switched to MySQL via configuration.
  • Comprehensive Management:

    • Customer Management: Add, list, view details via double-click.
    • Car Management: Add cars, list inventory, track availability.
    • Rental Operations: Easy selection interfaces, fee calculation, start and end rentals.
  • Modern UI:

    • Modern, clean, and responsive design using ttkbootstrap.
    • Custom color theme.

🚀 Installation & Running

Method 1: Direct Execution (Recommended)

  1. Install required libraries:

    pip install -r requirements.txt
  2. Run the application:

    python main.py

Method 2: Running with Docker

Note: As this is a GUI application, running with Docker requires X11 forwarding (Xming, VcXsrv, etc.) on the host.

  1. Build the Docker image:

    docker build -t rent-a-car .
  2. Run the container:

    docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix rent-a-car

    (Windows users may need additional X Server configuration.)

🛠 Technologies Used

  • Python 3.12
  • Tkinter & TTKBootstrap (GUI)
  • SQLite / MySQL (Database)
  • Cryptography (Security)

📄 License

This project is licensed under the MIT License.

About

python ile araba kiralama otomasyon programı

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors