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

212 lines
8.8 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 - 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
```yaml
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
```bash
npm install # Development
npm run dev # Development server (nodemon)
npm start # Production server
```
### Frontend
```bash
npm install # Development
npm run dev # Development server (Vite)
npm run build # Production build
npm run preview # Production preview
```
## Versiyon Yönetimi
```json
{
"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:**
- [Proje Genel Bakış](./proje-genel-bakis.md)
- [Backend Yapısı](./backend-yapisi.md)
- [Frontend Yapısı](./frontend-yapisi.md)