Proje Detayları
Önemli Not: Bu projede kullanılacak OMDB API gibi harici API'ler genellikle bir API anahtarı (API Key) gerektirir. OMDB API için buradan ücretsiz bir API anahtarı almanız gerekecektir. Aldığınız anahtarı JavaScript kodunuzda belirtilen yere eklemelisiniz.
Adım Adım Geliştirme
Bu bölümde, film veritabanı uygulamasını adım adım nasıl geliştirebileceğinizi öğreneceksiniz. Her adımda, ilgili kod parçalarını ve açıklamalarını bulacaksınız.
Adım 1: Proje Yapısını Oluşturma
İlk olarak, projemiz için gerekli dosyaları oluşturalım:
index.html
- Ana HTML dosyasıstyle.css
- CSS stil dosyasıscript.js
- JavaScript kod dosyası
Adım 2: JavaScript Kodunu Yazma
Şimdi, uygulamanın işlevselliğini sağlayacak JavaScript kodunu yazalım:
Adım 3: Uygulamayı Test Etme
Şimdi uygulamanızı test etme zamanı! Aşağıdaki adımları izleyin:
- JavaScript kodundaki
YOUR_OMDB_API_KEY
kısmını kendi OMDB API anahtarınızla değiştirin. - Tüm dosyaları (
index.html
,style.css
,script.js
) aynı klasöre kaydedin. - HTML dosyasını bir web tarayıcısında açın.
- Arama kutusuna bir film adı girin (örneğin, "Batman", "Inception") ve arama butonuna tıklayın veya Enter tuşuna basın.
- Yükleme göstergesinin göründüğünü ve ardından film sonuçlarının listelendiğini doğrulayın.
- Bir film kartına tıklayarak detay modalının açıldığını ve film bilgilerinin doğru yüklendiğini kontrol edin.
- Detay modalını kapatma butonuna veya modal dışına tıklayarak kapatın.
- Geçersiz bir arama terimi girerek veya API anahtarı olmadan hata mesajlarının doğru gösterildiğini test edin.
İpucu: Tarayıcınızın geliştirici araçlarını (genellikle F12 tuşu ile açılır) kullanarak API isteklerini ve yanıtlarını inceleyebilir, JavaScript hatalarını ayıklayabilirsiniz.
Projeyi Geliştirme
Temel film veritabanı uygulamasını başarıyla oluşturduktan sonra, aşağıdaki özelliklerle projenizi geliştirebilirsiniz:
1. Sayfalama (Pagination)
Arama sonuçları çok fazlaysa, sonuçları sayfalara bölerek gösterin. API genellikle sayfalama parametreleri sunar (örneğin, OMDB API'de page
parametresi).
2. Filtreleme (Yıl, Tür vb.)
Arama sonuçlarını yıla veya türe göre filtreleme seçenekleri ekleyin. API'nin desteklediği filtreleme parametrelerini kullanabilirsiniz.
3. Favori Filmler
Kullanıcıların beğendikleri filmleri favorilerine ekleyebilmesini ve favori listesini görüntüleyebilmesini sağlayın. Bu bilgiyi LocalStorage kullanarak saklayabilirsiniz.
4. Daha Fazla Detay
Film detay modalına daha fazla bilgi ekleyin (örneğin, ödüller, gişe hasılatı, Rotten Tomatoes puanı vb.). API'nin sağladığı ek verileri kullanın.
5. Gelişmiş Arama
Kullanıcıların sadece başlığa göre değil, oyuncuya, yönetmene veya yıla göre de arama yapabilmesini sağlayın.
6. Farklı API Kullanımı
OMDB API yerine The Movie Database (TMDb) gibi daha kapsamlı başka bir film API'si kullanmayı deneyin.
Geliştirme Zorlukları
Film veritabanı uygulamanızı daha da geliştirmek için aşağıdaki zorlukları deneyebilirsiniz:
- Otomatik Tamamlama: Arama kutusuna yazarken olası film başlıklarını öneren bir otomatik tamamlama özelliği ekleyin.
- Benzer Filmler: Film detay sayfasında seçili filme benzer filmleri önerin.
- Fragman Gösterme: Film detay modalına filmin fragmanını (örneğin, YouTube'dan) ekleyin.
- Çevrimdışı Kullanım: Service Worker kullanarak uygulamanın çevrimdışı çalışabilmesini sağlayın (en azından daha önce görüntülenen verilerle).
- Kullanıcı Yorumları/Puanlama: Kullanıcıların filmlere yorum yapabilmesini ve puan verebilmesini sağlayan bir sistem ekleyin (bu genellikle sunucu tarafı kodlama gerektirir).
Sonuç ve Öğrenilen Dersler
Bu projede, JavaScript kullanarak harici bir API ile etkileşim kuran bir film veritabanı uygulaması geliştirdik. Bu süreçte şunları öğrendik:
- Fetch API kullanarak harici API'lerden veri çekmeyi
- Async/Await ile eşzamansız işlemleri yönetmeyi
- JSON verilerini işlemeyi
- API yanıtlarına göre dinamik olarak DOM'u güncellemeyi
- Arama, listeleme ve detay gösterme işlevselliği oluşturmayı
- Modal pencereler kullanmayı
- Hata yönetimi ve yükleme durumlarını ele almayı
Bu proje, API'lerle çalışma ve modern JavaScript tekniklerini kullanarak dinamik web uygulamaları oluşturma konusunda önemli bir pratik deneyim sunmuştur. Öğrendiğiniz beceriler, çeşitli web servisleriyle entegre olan daha karmaşık uygulamalar geliştirmenize olanak tanır.