README.md ve detaylı teknik dokümantasyon dosyaları (genel bakış, backend yapısı, frontend yapısı, teknoloji yığını) eklendi.
6.7 KiB
6.7 KiB
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ışı
- Kullanıcı İsteği: Frontend'den arama parametresi gönderilir
- Önbellek Kontrolü: Redis'te önceden yapılmmış arama var mı kontrol edilir
- Amazon Scraping: Önbellekte yoksa Amazon'dan veri çekilir
- Veri İşleme: HTML parse edilir ve kitap bilgileri çıkarılır
- Önbellekleme: Sonuçlar Redis'e kaydedilir
- Cevap: İşlenmiş veri frontend'e gönderilir
Barkod Tarama Akışı
- Kamera Erişimi: React-qr-barcode-scanner ile kamera açılır
- Barkod Algılama: ISBN formatında barkod algılanır
- ISBN Arama: Backend'e ISBN ile kitap bilgisi istenir
- 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