Skip to content

Terminal-based car rental app with authentication, role-based access, vehicle management, and rental handling. Built with Java 21 and PostgreSQL 16.

Notifications You must be signed in to change notification settings

bekirahmetli/Rent-A-Car

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗 Araç Kiralama Sistemi

📋 Proje Açıklaması

Terminal tabanlı menülü araç kiralama uygulaması. Katmanlı mimari yaklaşımı ile esneklik, ölçeklenebilirlik ve bakım kolaylığı sunar.

✨ Özellikler

🔐 Kimlik Doğrulama

  • E-posta + şifre ile giriş/kayıt sistemi
  • SHA-256 algoritması ile şifre hashleme
  • Güvenli kullanıcı yönetimi

👥 Roller ve Yetkilendirme

  • ADMIN: Araç ekleme, güncelleme, silme, listeleme (CRUD)
  • CUSTOMER (Bireysel/Kurumsal): Araç arama, kiralama, iptal işlemleri
  • Sadece giriş yapmış kullanıcılar kiralama başlatabilir

🚙 Araç Yönetimi

  • 3 Araç Tipi: Otomobil, Helikopter, Motosiklet
  • Ortak contract (interface) ile genişletilebilir modelleme
  • Her araç sınıfı için ayrı fiyat tarifesi
  • Saatlik / Günlük / Haftalık / Aylık kiralama seçenekleri

🔍 Arama ve Filtreleme

  • Tip, marka, fiyat aralığı ile filtreleme
  • Sayfalama (pagination) desteği
  • Esnek arama seçenekleri

💰 İş Kuralları

  • Kurumsal hesaplar: En az 1 ay kiralama yapabilir
  • Yüksek değerli araçlar (>2M TL):
    • Kiralayan için ≥30 yaş şartı
    • %10 depozito verme zorunluluğu

⏰ Uygunluk Kontrolü

  • Seçilen tarih/saat aralığında çakışan kiralamalar engellenir
  • Gerçek zamanlı müsaitlik kontrolü

📊 Kiralama Yönetimi

  • Kullanıcılar güncel ve geçmiş kiralamalarını görüntüleyebilir
  • Kiralama iptal etme özelliği

💳 Depozito Yaşam Döngüsü

  • Otomatik depozito hesaplama ve kaydetme
  • İptal/tamamlama akışlarında iade/mahsup yönetimi
  • Güvenli depozito işlemleri

🛠️ Teknolojiler

  • Java 21 - Programlama dili
  • PostgreSQL 16 - Veritabanı
  • JDBC - Veritabanı bağlantısı
  • Katmanlı Mimari - DAO/Service/Model/Main

🚀 Kurulum

Gereksinimler

  • Java 21 veya üzeri
  • PostgreSQL 16 veya üzeri
  • Maven (opsiyonel)

Adım 1: Veritabanı Kurulumu

  • util/database_schema.sql dosyasını açın ve çalıştırın.
  • Komut satırı (PowerShell) kullanıyorsanız, proje kökünde şu komutu çalıştırın:
psql -U postgres -h localhost -f util\database_schema.sql

Adım 2: DB Bağlantı Ayarı

example\util\DBConnection.java içini veritabanı adınıza göre güncelleyin:

private static final String URL = "jdbc:postgresql://localhost:5432/rent-a-car";
private static final String USER = "postgres";
private static final String PASSWORD = "your_password";

🎮 Kullanım

Başlangıç

  1. Uygulamayı çalıştırın
  2. Ana menüden "Giriş Yap" veya "Kayıt Ol" seçin
  3. Rolünüze göre menü seçenekleri görüntülenir

Test Hesapları

Örnek Kullanım Akışı

  1. Giriş Yap → E-posta ve şifre girin
  2. Araç Ara → Filtrelerle araç bulun
  3. Araç Kirala → Tarih seçin ve kirala
  4. Kiralamalarım → Kiralama geçmişinizi görün

About

Terminal-based car rental app with authentication, role-based access, vehicle management, and rental handling. Built with Java 21 and PostgreSQL 16.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages