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

133 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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