Files
bookibra/doc/teknoloji-yigini.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

8.8 KiB
Raw Permalink Blame History

Bookibra - Teknoloji Yığını

Teknoloji Yığınına Genel Bakış

Bookibra, modern web teknolojileri ile geliştirilmiş full-stack bir uygulamadır. Aşağıda kullanılan tüm teknolojiler, neden kullanıldıkları ve projedeki rolleri detaylı olarak açıklanmıştır.

Backend Tekolojileri

Runtime ve Framework

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
Node.js LTS JavaScript runtime Sunucu tarafında JavaScript kullanımı, büyük ekosistem, asenkron I/O
Express.js ^5.1.0 Web framework Minimal, esnek, büyük middleware ekosistemi

Web Scraping

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
axios ^1.13.2 HTTP istekleri Promise-based, interceptor desteği, otomatik JSON dönüşümü
cheerio ^1.1.2 HTML parsing jQuery syntax, hızlı ve hafif
szbk-amazon-book-search ^1.1.1 Amazon scraping Amazon'a özelleşmiş scraping kütüphanesi

Veritabanı ve Önbellekleme

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
PostgreSQL 8.16.3 (client) İlişkisel veritabanı ACID uyumlu, güçlü, açık kaynak
ioredis ^5.8.2 Redis client Promise-based, cluster desteği
Redis 7-alpine Önbellekleme In-memory store, hızlı, TTL desteği

Kimlik Doğrulama ve Güvenlik

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
jsonwebtoken ^9.0.2 JWT token oluşturma Stateless auth, standart, güvenli
bcrypt ^6.0.0 Şifre hashleme Güçlü hash algoritması, salting
express-validator ^7.3.0 Input validation Express ile entegre, decorator-based

Gerçek Zamanlı İletişim

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
Socket.IO ^4.8.1 WebSocket server Fall-back mekanizması, room desteği

Araçlar ve Yardımcılar

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
dotenv ^17.2.3 Ortam değişkenleri .env dosyası yönetimi
cors ^2.8.5 CORS middleware Cross-origin resource sharing
chalk ^4.1.2 Terminal renklendirme Logları okunabilir yapma
uuid ^13.0.0 UUID oluşturma Benzersiz ID oluşturma
nodemon ^3.1.10 Otomatik restart Development sırasında kolaylık

Frontend Teknolojileri

Core Framework

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
React ^19.1.1 UI framework Component-based, büyük ekosistem, hooks
Vite ^7.1.7 Build tool ve dev server Hızlı HMR, native ES modules

Routing

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
React Router ^7.9.5 Client-side routing Declarative routing, nested routes

Animasyonlar

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
Framer Motion ^12.23.24 Animasyon library Declarative API, gesture desteği

İkonlar ve Görseller

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
Font Awesome ^7.1.0 İkon seti Geniş ikon kütüphanesi
react-image-glow ^1.0.6 Resim efekti Estetik glow efekti
color-thief-react ^2.1.0 Renk extract Resimlerden ana renk alma

Barkod Tarama

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
react-qr-barcode-scanner ^2.1.18 Barkod tarama Hem QR hem barkod desteği

Development Araçları

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
ESLint ^9.36.0 Linter Kod kalitesi, tutarlılık
@vitejs/plugin-react ^5.0.4 React için Vite plugin Fast refresh, JSX support

DevOps Teknolojileri

Containerization

Teknoloji Versiyon Kullanım Amacı Neden Seçildi?
Docker Latest Containerization Tutarlı deployment, izolasyon
Docker Compose Latest Multi-container orchestration Local development, tüm servisleri bir arada

Docker Hizmetleri

services:
  frontend:    # React uygulaması
  api:         # Express backend
  redis:       # Önbellekleme
  postgres:    # Kullanıcı veritabanı

Veri Akışı Diyagramı

┌─────────────────────────────────────────────────────────────┐
│                    USER BROWSER                              │
│                    (React App)                               │
└─────────────────────────────────────────────────────────────┘
                            │
                            │ HTTP Request
                            ▼
┌─────────────────────────────────────────────────────────────┐
│                    EXPRESS SERVER                            │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  Request Logging → Auth → Route → Controller         │  │
│  └──────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘
                            │
        ┌───────────────────┼───────────────────┐
        ▼                   ▼                   ▼
┌───────────────┐  ┌────────────────┐  ┌──────────────┐
│     REDIS     │  │   POSTGRES     │  │   AMAZON     │
│   Check &     │  │   User Data    │  │   Scraping   │
│   Store       │  │   Auth         │  │   Book Data  │
└───────────────┘  └────────────────┘  └──────────────┘

Paket Yönetimi

Backend

npm install              # Development
npm run dev             # Development server (nodemon)
npm start               # Production server

Frontend

npm install              # Development
npm run dev             # Development server (Vite)
npm run build           # Production build
npm run preview         # Production preview

Versiyon Yönetimi

{
  "name": "bookibra",
  "version": "1.0.0",
  "description": "Amazon kitap verilerini sunan Express tabanli backend"
}

Bağımlılık Yönetimi Stratejisi

Semantic Versioning

  • ^ (caret): Minor güncellemelere izin verir
  • ~ (tilde): Patch güncellemelere izin verir
  • Tam versiyon: Kilidi korur

Güvenlik

  • Düzenli npm audit çalıştırma
  • Vulnerability takibi
  • Güncel bağımlılıklar

Performans Optimizasyonları

Backend

  1. Redis Önbellekleme: 6 saat TTL ile kitap verileri önbellekte tutulur
  2. Connection Pooling: PostgreSQL için connection pooling
  3. Lazy Connection: Redis için lazy connect
  4. Asenkron İşlemler: Promise.all ile parallel işlemler

Frontend

  1. Code Splitting: Vite ile otomatik code splitting
  2. Tree Shaking: Kullanılmayan kod eliminasyonu
  3. Image Optimization: Lazy loading
  4. Local Storage: İstemci taraflı veri saklama

Gelecek Teknoloji Eklentileri

Potansiyel iyileştirmeler:

  1. GraphQL: REST yerine daha verimli sorgular
  2. TypeScript: Tip güvenliği
  3. Testing Framework: Jest, Cypress
  4. CI/CD: GitHub Actions, GitLab CI
  5. Monitoring: Prometheus, Grafana
  6. Load Balancer: Nginx, HAProxy

İlgili Dosyalar: