# Bookibra - Proje Genel Bakış ## Proje Tanımı **Bookibra**, Amazon'dan kitap verilerini çekip sunan, barkod tarama özelliği bulunan ve kullanıcıların kendi kitap kütüphanelerini yönetebilecekleri modern bir full-stack web uygulamasıdır. ## Ana Özellikler ### 1. Kitap Arama ve Keşfetme - ISBN ile kitap arama - Kitap başlığı ile arama - Yayın tarihine göre filtreleme (örn: "Kitap Adı .2020") - Çoklu dil desteği (Türkçe/İngiliz Amazon siteleri) ### 2. Barkod Tarama - Cihaz kamerası ile ISBN barkod tarama - Otomatik kitap bilgisi getirme - Mobil uyumlu tarayıcı arayüzü ### 3. Kullanıcı Yönetimi - Kayıt olma ve giriş yapma - JWT tabanlı kimlik doğrulama - Profil yönetimi ### 4. Kitap Kütüphanesi - Kitapları kaydetme (localStorage) - Kayıtlı kitapları görüntüleme - Kitap detaylarını inceleme - Kitap silme ### 5. Performans ve Önbellekleme - Redis ile önbellekleme sistemi - Medya (kapak resmi) önbellekleme - Amazon API çağrılarını minimize etme ## Mimari Genel Bakış ``` ┌─────────────────────────────────────────────────────────────┐ │ CLIENT │ │ (React + Vite) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ HomePage │ │AddBooks │ │ MyBooks │ │ Profile │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────────┘ │ │ HTTP/REST ▼ ┌─────────────────────────────────────────────────────────────┐ │ BACKEND API │ │ (Express + Node.js) │ │ ┌────────────┐ ┌────────────┐ ┌──────────────────────┐ │ │ │ Auth Routes│ │Book Routes │ │ Middleware │ │ │ └────────────┘ └────────────┘ │ - Auth │ │ │ │ - Error Handler │ │ │ ┌────────────┐ ┌────────────┐ │ - Request Logger │ │ │ │ Controllers│ │ Services │ └──────────────────────┘ │ │ └────────────┘ └────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ┌───────────────────┼───────────────────┐ ▼ ▼ ▼ ┌───────────────┐ ┌────────────────┐ ┌──────────────┐ │ Redis │ │ PostgreSQL │ │ Socket.IO │ │ (Cache) │ │ (Users DB) │ │ (WebSocket) │ └───────────────┘ └────────────────┘ └──────────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ External Services │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ Amazon │ │ Gemini AI │ │ │ │ Scraping │ │ (Optional) │ │ │ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────┘ ``` ## Proje Yapısı ### Dizin Hiyerarşisi ``` bookibra/ ├── doc/ # Dokümantasyon ├── frontend/ # React Frontend Uygulaması │ ├── src/ │ │ ├── components/ # React Bileşenleri │ │ ├── pages/ # Sayfa Bileşenleri │ │ ├── context/ # React Context API │ │ └── main.jsx # Uygulama Giriş Noktası │ └── package.json ├── src/ # Backend Kaynak Kodları │ ├── config/ # Yapılandırma Dosyaları │ ├── controllers/ # İstek Kontrolcüleri │ ├── middleware/ # Express Middleware │ ├── routes/ # API Rotaları │ ├── services/ # İş Mantığı Servisleri │ ├── utils/ # Yardımcı Fonksiyonlar │ ├── validators/ # İstek Doğrulayıcıları │ ├── app.js # Express Uygulaması │ └── server.js # HTTP Sunucusu ├── docker-compose.yml # Docker Orchestration ├── Dockerfile # Backend Docker Image └── package.json ``` ## Çalışma Prensibi ### Kitap Arama Akışı 1. **Kullanıcı İsteği**: Frontend'den arama parametresi gönderilir 2. **Önbellek Kontrolü**: Redis'te önceden yapılmmış arama var mı kontrol edilir 3. **Amazon Scraping**: Önbellekte yoksa Amazon'dan veri çekilir 4. **Veri İşleme**: HTML parse edilir ve kitap bilgileri çıkarılır 5. **Önbellekleme**: Sonuçlar Redis'e kaydedilir 6. **Cevap**: İşlenmiş veri frontend'e gönderilir ### Barkod Tarama Akışı 1. **Kamera Erişimi**: React-qr-barcode-scanner ile kamera açılır 2. **Barkod Algılama**: ISBN formatında barkod algılanır 3. **ISBN Arama**: Backend'e ISBN ile kitap bilgisi istenir 4. **Kitap Gösterimi**: Bulunan kitap kullanıcıya sunulur ## Deployment Uygulama Docker Compose ile tüm servisleri (frontend, backend, redis, postgres) tek seferde başlatmayı destekler. --- **Son Güncelleme**: 2026-02-10 **Versiyon**: 1.0.0