Skip to content

About

Real-time travel dashboard and hotel booking platform built with ASP.NET Core MVC, multi-source RapidAPI integrations, and IMemoryCache.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

Destination Explorer

.NET ASP.NET Core MVC RapidAPI Database

Destination Explorer, seyahat planlaması için farklı servislerden alınan canlı verileri tek bir arayüzde birleştiren ASP.NET Core MVC uygulamasıdır. Kullanıcılar seçtikleri Avrupa şehri için güncel seyahat verilerini inceleyebilir, tarih ve misafir bilgilerine göre otel arayabilir ve otellerin fotoğraf, açıklama, puan ve temel bilgilerine ulaşabilir.

Proje herhangi bir veritabanı veya yönetim paneli kullanmaz. Gösterilen seyahat ve otel verileri RapidAPI servislerinden dinamik olarak alınır.

Öne Çıkan Özellikler

  • Paris, Berlin, Roma, Madrid ve Amsterdam için şehir odaklı seyahat paneli
  • Seçilen şehre göre canlı hava durumu ve ülkeye göre yakıt fiyatları
  • Güncel döviz kurları, kripto para fiyatları, haberler ve günün yemeği
  • Şehir, giriş tarihi, çıkış tarihi ve misafir sayısı ile otel arama
  • Destination ID → Hotel Search → Hotel Detail şeklinde Booking API akışı
  • Arama başına en fazla 20 otelin kart yapısında listelenmesi
  • Dinamik otel adı, puanı, fiyatı, konumu, açıklaması ve kapak görseli
  • Otel detayında 2–3 fotoğraf, açıklama, giriş/çıkış saatleri ve tesis bilgileri
  • Eksik fotoğraflar için çok aşamalı API tabanlı görsel çözümleme
  • API kota ve bağlantı hataları için kullanıcı dostu geri bildirim
  • Tekrarlanan istekleri azaltmak için bellek içi önbellekleme
  • Responsive ve sade seyahat odaklı kullanıcı arayüzü

Proje Mimarisi

Uygulama, ASP.NET Core MVC yapısı üzerine kurulmuştur. Controller katmanı HTTP isteklerini yönetir, RapidAPI servisleriyle iletişim kurar, gelen JSON verilerini ayrıştırır ve View katmanına aktarır.

flowchart LR
    U[Kullanıcı] --> V[ASP.NET Core MVC Views]
    V --> C[MainController]

    C --> M[HotelCard Modeli]
    C --> H[IHttpClientFactory]
    C --> K[IMemoryCache]

    H --> R{RapidAPI Gateway}

    R --> B[Booking COM API]
    R --> W[Open Weather13]
    R --> E[Currency Exchange API]
    R --> F[Gas Price API]
    R --> CR[Crypto Price API]
    R --> N[Real-Time News API]
    R --> T[Tasty API]

    B --> C
    W --> C
    E --> C
    F --> C
    CR --> C
    N --> C
    T --> C

    K -. Önbelleğe alınmış API yanıtı .-> C
    C --> V
Loading

Klasör Yapısı

RapidApiProject/
├── RapidApiProject.slnx                 # Visual Studio çözüm dosyası
├── README.md                            # Proje dokümantasyonu
└── RapidApiProject/
    ├── Controllers/
    │   └── MainController.cs            # Dashboard ve otel API akışları
    ├── Models/
    │   ├── HotelCard.cs                 # Otel listeleme modeli
    │   └── ErrorViewModel.cs            # Hata ekranı modeli
    ├── Views/
    │   ├── Main/
    │   │   ├── Dashboard.cshtml         # Canlı seyahat paneli
    │   │   ├── HotelList.cshtml         # Otel arama ve listeleme
    │   │   └── HotelDetail.cshtml       # Otel detay sayfası
    │   └── Shared/
    │       ├── _Layout.cshtml           # Ortak sayfa düzeni
    │       └── Error.cshtml             # Hata ekranı
    ├── wwwroot/
    │   ├── css/site.css                 # Responsive arayüz stilleri
    │   └── js/site.js                   # Tarih ve form davranışları
    ├── Program.cs                       # Servis ve middleware yapılandırması
    ├── appsettings.json                 # Uygulama yapılandırması
    └── RapidApiProject.csproj           # Proje ve paket tanımları

Booking API Akışı

sequenceDiagram
    actor Kullanici as Kullanıcı
    participant UI as Hotel List View
    participant Controller as MainController
    participant Cache as Memory Cache
    participant Booking as Booking COM API

    Kullanici->>UI: Şehir, tarih ve misafir bilgilerini girer
    UI->>Controller: POST /Main/HotelList
    Controller->>Controller: Girdileri doğrular
    Controller->>Cache: Destination sonucunu kontrol eder

    alt Destination önbellekte yoksa
        Controller->>Booking: Search Destination
        Booking-->>Controller: İlk sonuç ve destination ID
        Controller->>Cache: Destination sonucunu kaydeder
    end

    Controller->>Cache: Aynı otel aramasını kontrol eder

    alt Otel sonucu önbellekte yoksa
        Controller->>Booking: Search Hotels
        Booking-->>Controller: Canlı otel sonuçları
        Controller->>Cache: Sonuçları kısa süreli kaydeder
    end

    Controller-->>UI: En fazla 20 otel
    Kullanici->>UI: Bir otel seçer
    UI->>Controller: GET /Main/HotelDetail
    Controller->>Booking: Hotel Details + Photos + Description
    Booking-->>Controller: Dinamik otel detayları
    Controller-->>UI: Otel detay sayfası
Loading

Kullanılan Teknolojiler

Teknoloji Kullanım amacı
ASP.NET Core MVC 6 Web uygulaması ve MVC yapısı
C# Sunucu tarafı iş mantığı
Razor Views Dinamik HTML üretimi
IHttpClientFactory Harici API isteklerinin yönetimi
Newtonsoft.Json RapidAPI JSON yanıtlarının ayrıştırılması
IMemoryCache API kotasını koruyan geçici önbellekleme
Bootstrap Temel responsive altyapı
HTML, CSS ve JavaScript Kullanıcı arayüzü ve form davranışları

Kullanılan RapidAPI Servisleri

Veri API
Otel arama ve detay Booking COM
Hava durumu Open Weather13
Döviz kurları Currency Conversion and Exchange Rates
Yakıt fiyatları Gas Price
Kripto para fiyatları Fast Price – Exchange Rates
Güncel haberler Real-Time News Data
Günün yemeği Tasty

Önbellekleme ve Hata Yönetimi

  • Dashboard API yanıtları 10 dakika önbellekte tutulur.
  • Destination sonuçları 12 saat önbellekte tutulur.
  • Aynı parametrelerle yapılan otel aramaları 10 dakika önbellekte tutulur.
  • Arama sonuçları, detay sayfasına dönüşü desteklemek amacıyla 15 dakika saklanır.
  • Başarısız API çağrılarında sahte veya statik otel verisi üretilmez.
  • Eksik otel alanları uydurma içerikle doldurulmaz; arayüzde gizlenir.
  • Booking API kota sınırına ulaştığında kullanıcıya açıklayıcı hata mesajı gösterilir.
c1 c10 c9 c8 c7 c6 c5 c4 c3 c2

About

Real-time travel dashboard and hotel booking platform built with ASP.NET Core MVC, multi-source RapidAPI integrations, and IMemoryCache.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages