Files
bookibra/doc/proje-genel-bakis.md
wisecolt 836d60da78 docs: proje dokümantasyonunu ekle
README.md ve detaylı teknik dokümantasyon dosyaları (genel bakış,
backend yapısı, frontend yapısı, teknoloji yığını) eklendi.
2026-02-10 21:57:56 +03:00

6.7 KiB
Raw Permalink Blame History

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