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
Veri Akışı Diyagramı
Paket Yönetimi
Backend
Frontend
Versiyon Yönetimi
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
- Redis Önbellekleme: 6 saat TTL ile kitap verileri önbellekte tutulur
- Connection Pooling: PostgreSQL için connection pooling
- Lazy Connection: Redis için lazy connect
- Asenkron İşlemler: Promise.all ile parallel işlemler
Frontend
- Code Splitting: Vite ile otomatik code splitting
- Tree Shaking: Kullanılmayan kod eliminasyonu
- Image Optimization: Lazy loading
- Local Storage: İstemci taraflı veri saklama
Gelecek Teknoloji Eklentileri
Potansiyel iyileştirmeler:
- GraphQL: REST yerine daha verimli sorgular
- TypeScript: Tip güvenliği
- Testing Framework: Jest, Cypress
- CI/CD: GitHub Actions, GitLab CI
- Monitoring: Prometheus, Grafana
- Load Balancer: Nginx, HAProxy
İlgili Dosyalar: