Online uçak ve otobüs bilet satış uygulaması ve ylculuk seferlerinin sisteme girilmesi için gerekli API'lerin yazılması.
- Java 8
- RESTful
- Spring Boot
- PostgreSQL
- RabbitMQ
- Postman
- Docker
- Intellij IDEA
User
- Kullanıcı sisteme kayıt ve login olabilir.
- Kullanıcı kaydı sırasında email kontrolü yapılır.
- Kullanıcı isim ve şifresini değiştirebilir.
- Bütün kullanıcılar sorgulanabilir.
- Kullanıcı kayıt olurken Bireysel ve Kurumsal olarak usertype seçilebilir.
- Şifre hashing algoritması ile kaydedilir.
Ticket
- Kullanıcı id'si ile o kullanıcıya ait biletler sorgulanabilir.
Booking
- Kullanıcıdan alınan yolcu listesi, admin tarafından eklenen seferin id'si ve kullanıcı id'si kullanılarak yeni bilet alma işlemi yapılır.
- Bireysel kullanıcı aynı sefer için en fazla 5 bilet alabilir.
- Bireysel kullanıcı tek bir siparişte en fazla 2 erkek yolcu için bilet alabilir.
- Kurumsal kullanıcı aynı sefer için en fazla 20 bilet alabilir.
- Kullanıcı userId ile aldığı bütün biletleri sorgulayabilir.
- Yolcu sayısına göre seferin kapasitesi yeniden düzenlenir.
- Her bilet alma işleminde yolcu sayısına göre toplam ücret hesaplanır ve database'e kaydedilir.
Admin
- Admin sisteme kayıt ve login olabilir.
- Admin kaydı sırasında email kontrolü yapılır.
- Admin isim ve şifresini değiştirebilir.
- Bütün adminler sorgulanabilir.
- Şifre hashing algoritması ile kaydedilir.
Voyage
- Yeni sefer eklenebilir, iptal edilebilir.
- Şehir ve tarih bilgisi ile sefer sorgulanabilir.
- Uçak ve otobüs kapasitesi sefer oluştururken ayarlanabilir. (Otobüs 45, uçak 189 olarak ayarlanması beklenmektedir. Yeni seferler oluşturulurken bu değerler kullanılabilir.)
- Bütün seferler sorgulanabilir.
- Sefer id'si ile sefer sorgulanabilir.
- Seferlere ücret bilgisi eklenir.
- Şehirler ve taşıt türü enum olarak eklenmiştir.
- İşlemleri senkron olarak gerçekleştirmek için feign kullanılmıştır.
- Bilet satın alma işlemi payment servisi ile yapılır.
- Ödeme yöntemi olarak kredi kartı eklenmiştir.
- RabbitMQ kullanılarak mesaj ve mail işlemleri asenkron olarak gerçekleşir.
- Kullanıcı kaydı tamamlandığında kullanıcının email'ine mail atma işlemi yapılır. Mail bilgileri database'e kaydedilir.
- Bilet satın alma işlemi tamamlandığında bilgiler kullanıcının telefon numarasına gönderilir. Mesaj bilgileri database'e kaydedilir.
Postman collection projeye eklenmiştir. Postmane import edilip request yapılabilir.
User
- Yeni kullanıcı kaydı
- Kullanıcı login işlemi
- Kullanıcı id ile isim ve şifre güncelleme işlemi
- Bütün kullanıcıları sorgulama işlemi
Ticket
- Kullanıcı id ile bilet sorgulama işlemi
Booking
- Bilet satın alma işlemi
Admin
- Yeni admin kaydı
- Admin login işlemi
- Admin id ile isim ve şifre güncelleme işlemi
- Bütün adminleri sorgulama işlemi
- Admin id ile admin sorgulama
Voyage
- Sefer ekleme işlemi
- Bütün seferleri sorgulama
- id ile sefer sorgulama işlemi
- Şehir ve tarih bilgisi için sefer sorgulama
- Seferin yolcu kapasitesini güncelleme
- id ile sefer iptal etme işlemi









