Modern ve kullanıcı dostu bir otel yönetim ve rezervasyon sistemi. Java Swing ile geliştirilmiş masaüstü uygulaması.
- Özellikler
- Teknolojiler
- Sistem Gereksinimleri
- Kurulum
- Veritabanı Yapılandırması
- Kullanım
- Veritabanı Şeması
- Proje Yapısı
- Güvenlik Notları
- Katkıda Bulunma
- Lisans
- İletişim
- Kullanıcı Kaydı ve Girişi: Güvenli kullanıcı hesabı oluşturma ve giriş yapma
- Otel Arama ve Listeleme: Detaylı otel bilgileri ve filtreleme seçenekleri
- Rezervasyon Yönetimi: Otel rezervasyonu oluşturma ve yönetme
- Profil Yönetimi: Kullanıcı bilgilerini güncelleme
- Rezervasyon Geçmişi: Geçmiş ve aktif rezervasyonları görüntüleme
- Otel Yönetimi: Yeni otel ekleme, düzenleme ve silme
- Kullanıcı Yönetimi: Kullanıcı hesaplarını görüntüleme ve yönetme
- Rezervasyon Kontrolü: Tüm rezervasyonları görüntüleme ve yönetme
- Sistem Ayarları: Sistem konfigürasyonlarını yönetme
- Modern ve kullanıcı dostu GUI (Java Swing)
- Responsive tasarım
- Smooth geçişler ve animasyonlar
- Görsel splash ekranları
- Otel görselleri ve derecelendirmeleri
- Programlama Dili: Java 22
- GUI Framework: Java Swing
- Layout Manager: NetBeans AbsoluteLayout
- Build Tool: Maven
- Veritabanı:
- SQL Server (Varsayılan)
- MySQL (Alternatif)
- JDBC Sürücüleri:
- Microsoft SQL Server JDBC Driver
- MySQL Connector/J
- Java JDK: 22 veya üzeri
- Maven: 3.6 veya üzeri
- Veritabanı: SQL Server 2019+ veya MySQL 8.0+
- İşletim Sistemi: Windows, macOS, Linux
- RAM: Minimum 4GB (8GB önerilir)
- Disk Alanı: 500MB
git clone https://github.com/YOUR_USERNAME/Hotel-Management-System.git
cd Hotel-Management-Systemcd hotelreservation
mvn clean installSQL Server veya MySQL kullanarak veritabanını oluşturun:
# MySQL için
mysql -u root -p < database/schema.sql
# SQL Server için SQL Server Management Studio kullanarak schema.sql dosyasını çalıştırınhotelreservation/src/main/resources/ dizininde db.properties dosyası oluşturun:
cp hotelreservation/src/main/resources/db.properties.example hotelreservation/src/main/resources/db.propertiesdb.properties dosyasını düzenleyerek kendi veritabanı bilgilerinizi girin:
# Database Type (sqlserver or mysql)
db.type=sqlserver
# SQL Server Configuration
db.sqlserver.url=jdbc:sqlserver://127.0.0.1:1433;instanceName=SQLEXPRESS;databaseName=hoteldb;encrypt=false
db.sqlserver.username=sa
db.sqlserver.password=YOUR_PASSWORD
# MySQL Configuration (Alternative)
db.mysql.url=jdbc:mysql://localhost:3306/hoteldb
db.mysql.username=root
db.mysql.password=YOUR_PASSWORD# Maven ile çalıştırma
mvn clean javafx:run
# Veya JAR dosyası oluşturup çalıştırma
mvn clean package
java -jar target/hotelreservation-1.0-SNAPSHOT.jardb.type=sqlserver
db.sqlserver.url=jdbc:sqlserver://localhost:1433;instanceName=SQLEXPRESS;databaseName=hoteldb;encrypt=false
db.sqlserver.username=sa
db.sqlserver.password=YOUR_PASSWORDdb.type=mysql
db.mysql.url=jdbc:mysql://localhost:3306/hoteldb?useSSL=false&serverTimezone=UTC
db.mysql.username=root
db.mysql.password=YOUR_PASSWORDcd hotelreservation
mvn exec:java -Dexec.mainClass="com.izzettinozmen.hotelreservation.DBConnection"Başarılı bağlantı mesajı görmelisiniz: "Bağlantı başarılı!"
- Kullanıcı Adı:
admin - Şifre:
admin123 - Özellikler: Tam sistem erişimi, otel yönetimi, kullanıcı yönetimi
- Kullanıcı Adı:
user - Şifre:
user123 - Özellikler: Otel arama, rezervasyon yapma, profil yönetimi
⚠️ ÖNEMLİ: Production ortamında bu demo hesapları kaldırın veya şifrelerini değiştirin!
- Giriş Ekranı: Kullanıcı adı ve şifre ile giriş yapın veya yeni hesap oluşturun
- Ana Sayfa: Öne çıkan otelleri görüntüleyin
- Otel Listesi: Tüm otelleri detaylı şekilde inceleyin
- Rezervasyon: İstediğiniz oteli seçip rezervasyon yapın
- Profil: Kişisel bilgilerinizi güncelleyin
- Rezervasyon Geçmişi: Geçmiş ve aktif rezervasyonlarınızı görüntüleyin
- user_id (PRIMARY KEY)
- username (UNIQUE)
- password
- name
- surname
- birth_year
- email (UNIQUE)
- phone
- address
- gender
- created_at
- updated_at- hotel_id (PRIMARY KEY)
- hotel_name
- description
- location
- city
- rating (DECIMAL 2,1)
- price_per_night (DECIMAL 10,2)
- image_url
- created_at
- updated_at- reservation_id (PRIMARY KEY)
- user_id (FOREIGN KEY -> users)
- hotel_id (FOREIGN KEY -> hotels)
- check_in_date
- check_out_date
- total_price
- status
- created_at
- updated_at- admin_id (PRIMARY KEY)
- username (UNIQUE)
- password
- phone_number
- email (UNIQUE)
- position
- created_at- Bir kullanıcı birden fazla rezervasyon yapabilir (1:N)
- Bir otel birden fazla rezervasyona sahip olabilir (1:N)
- Rezervasyonlar kullanıcı ve otel ile ilişkilidir (N:1:N)
Hotel-Management-System/
├── database/
│ └── schema.sql # Veritabanı şema dosyası
├── hotelreservation/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/izzettinozmen/hotelreservation/
│ │ │ │ ├── Admin.java # Admin sınıfı
│ │ │ │ ├── User.java # Kullanıcı sınıfı
│ │ │ │ ├── DBConnection.java # Veritabanı bağlantı yöneticisi
│ │ │ │ ├── FrameLogin.java # Giriş ekranı
│ │ │ │ ├── FrameSignUpPage.java # Kayıt ekranı
│ │ │ │ ├── FrameHome.java # Ana sayfa
│ │ │ │ ├── FrameHotelList.java # Otel listesi
│ │ │ │ ├── FrameUser.java # Kullanıcı ayarları
│ │ │ │ ├── FrameAdminMenu.java # Admin menüsü
│ │ │ │ ├── FrameChangeProfile.java # Profil düzenleme
│ │ │ │ ├── TermsOfUsage.java # Kullanım şartları
│ │ │ │ └── Hotels/ # Otel görselleri
│ │ │ └── resources/
│ │ │ ├── db.properties # Veritabanı konfigürasyonu (git'e eklenmez)
│ │ │ └── db.properties.example # Örnek konfigürasyon
│ │ └── test/
│ └── pom.xml # Maven konfigürasyonu
├── .gitignore
├── LICENSE
└── README.md
Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
İzzettin Furkan Özmen
- GitHub: @Beegash
- Email: contact@example.com