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.
This commit is contained in:
2026-02-10 21:57:56 +03:00
parent 6392533387
commit 836d60da78
5 changed files with 1334 additions and 0 deletions

211
doc/teknoloji-yigini.md Normal file
View File

@@ -0,0 +1,211 @@
# 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)