Açık Kaynak Kütüphaneler
Poemtry.com, çeşitli açık kaynak kütüphaneler, framework’ler, araçlar ve temalar kullanılarak geliştirilmiştir.
Bu sayfa, poemtry.com‘un frontend, backend, mobil ve dokümantasyon projelerinde kullanılan başlıca açık kaynak yazılımları listeler.
İçindekiler
- Frontend
- Mobil / iOS
- Backend ve API
- Veritabanı ve Depolama
- Doğrulama ve Yardımcı Araçlar
- E-posta
- Geliştirme Araçları
- Dokümantasyon
- Tam Bağımlılık Listesi
- Lisanslar
- Teşekkürler
Frontend
React
React, Poemtry.com kullanıcı arayüzünü oluşturmak için kullanılmaktadır.
- Paket:
react - Sürüm:
19.2.8 - Kullanım amacı: Kullanıcı arayüzü geliştirme
İlgili paketler:
react-dom— React uygulamalarının DOM üzerinde çalıştırılmasıreact-icons— Arayüz ikonları
Next.js
Next.js, Poemtry.com’un temel web framework’üdür.
- Paket:
next - Sürüm:
16.3.0
Kullanım alanları:
- Uygulama yönlendirmesi (routing)
- Server-side rendering
- Static generation
- Production build işlemleri
- Web uygulaması altyapısı
Chakra UI
Chakra UI, uygulama genelindeki kullanıcı arayüzü bileşenleri ve stil sistemi için kullanılmaktadır.
- Paket:
@chakra-ui/react - Sürüm:
3.36.1
Emotion
Emotion, uygulamanın stil altyapısının bir parçası olarak kullanılmaktadır.
- Paket:
@emotion/react - Sürüm:
11.14.0
Next Themes
Uygulamanın açık ve koyu tema gibi tema seçeneklerini yönetmek için kullanılmaktadır.
- Paket:
next-themes - Sürüm:
0.4.6
Apollo Client
Apollo Client, frontend’in GraphQL API ile iletişim kurmasını sağlamak için kullanılmaktadır.
- Paket:
@apollo/client - Sürüm:
4.2.10
Next.js entegrasyonu:
@apollo/client-integration-nextjs
Mobil / iOS
Poemtry.com’un iOS uygulamasında da çeşitli açık kaynak kütüphaneler kullanılmaktadır.
Apollo
Apollo, iOS uygulamasında GraphQL iletişimi için kullanılmaktadır.
- Paket:
Apollo - Sürüm:
2.1.2
Kullanım alanları:
- GraphQL sorguları
- GraphQL mutation işlemleri
- API iletişimi
- GraphQL verilerinin yönetimi
AppRouter
AppRouter, iOS uygulamasında uygulama içi yönlendirme ve navigasyon işlemleri için kullanılmaktadır.
- Paket:
AppRouter - Sürüm:
1.0.4
Kullanım alanları:
- Uygulama içi navigasyon
- Route yönetimi
- Ekran geçişleri
KeychainSwift
KeychainSwift, iOS Keychain üzerinde hassas uygulama verilerinin güvenli bir şekilde saklanmasını kolaylaştıran bir kütüphanedir.
- Paket:
KeychainSwift - Sürüm:
24.0.0
Kullanım alanları:
- Kimlik bilgilerinin güvenli şekilde saklanması
- Authentication token’ları
- Hassas verilerin kalıcı olarak saklanması
SDWebImage
SDWebImage, asenkron görsel yükleme ve görsel önbellekleme işlemleri için kullanılmaktadır.
- Paket:
SDWebImage - Sürüm:
5.21.7
Kullanım alanları:
- Uzak görsellerin yüklenmesi
- Görsel önbellekleme
- Asenkron görsel indirme
- Görsel işleme
SDWebImageSwiftUI
SDWebImageSwiftUI, SDWebImage kütüphanesinin SwiftUI entegrasyonunu sağlamaktadır.
- Paket:
SDWebImageSwiftUI - Sürüm:
3.1.4
Kullanım alanları:
- SwiftUI içerisinde uzak görsellerin yüklenmesi
- Görsel önbellekleme
- Asenkron görsel görüntüleme
Backend ve API
Apollo Server
Apollo Server, GraphQL API’nin oluşturulması ve sunulması için kullanılmaktadır.
- Paket:
@apollo/server - Sürüm:
5.5.1
GraphQL
GraphQL, Poemtry.com’un temel API sorgulama teknolojisidir.
- Paket:
graphql - Sürüm:
17.0.2
Ek GraphQL araçları:
graphql-tag— GraphQL dokümanlarının parse edilmesi ve tanımlanması
GraphQL Code Generator
GraphQL Code Generator, GraphQL şemasından TypeScript tipleri ve resolver tipleri üretmek için kullanılmaktadır.
Kullanılan paketler:
@graphql-codegen/cli@graphql-codegen/typescript@graphql-codegen/typescript-resolvers
Bu yapı, GraphQL şeması, API resolver’ları ve TypeScript kodu arasındaki tip güvenliğinin korunmasına yardımcı olur.
Veritabanı ve Depolama
Cassandra Driver
Cassandra Driver, Cassandra veritabanı ile iletişim kurmak için kullanılmaktadır.
- Paket:
cassandra-driver - Sürüm:
4.9.0
Kullanım alanları:
- Veritabanı bağlantıları
- Sorgular
- Veri saklama
AWS SDK for JavaScript
AWS SDK, Amazon S3 entegrasyonu için kullanılmaktadır.
Kullanılan paketler:
@aws-sdk/client-s3@aws-sdk/s3-request-presigner
Kullanım alanları:
- S3’e dosya yükleme
- S3 nesnelerine erişim
- Presigned URL oluşturma
DataLoader
DataLoader, özellikle GraphQL resolver’larında veri erişimini optimize etmek için kullanılmaktadır.
- Paket:
dataloader - Sürüm:
2.2.3
Kullanım alanları:
- Veritabanı isteklerini gruplama
- Tekrarlanan sorguları azaltma
- GraphQL resolver performansını artırma
Doğrulama ve Yardımcı Araçlar
Zod
Zod, runtime şema doğrulaması ve tip güvenli veri doğrulaması için kullanılmaktadır.
- Paket:
zod - Sürüm:
4.4.3
Kullanım alanları:
- API input doğrulama
- Runtime veri doğrulama
- Şema tanımlama
ULID
ULID, benzersiz ve sıralanabilir kimlikler (ID) oluşturmak için kullanılmaktadır.
- Paket:
ulid - Sürüm:
3.0.2
dotenv
dotenv, environment variable değerlerini yapılandırma dosyalarından yüklemek için kullanılmaktadır.
- Paket:
dotenv - Sürüm:
17.4.2
franc
franc, doğal dil tespiti için kullanılmaktadır.
- Paket:
franc - Sürüm:
6.2.0
Örneğin kullanıcı tarafından oluşturulan bir şiirin hangi dilde yazıldığının tahmin edilmesinde kullanılabilir.
UA Parser
UA Parser, kullanıcı agent bilgilerinin analiz edilmesi için kullanılmaktadır.
- Paket:
ua-parser-js - Sürüm:
2.0.10
Tespit edilebilen bilgiler:
- Tarayıcı
- İşletim sistemi
- Cihaz türü
Negotiator
Negotiator, HTTP content negotiation işlemleri için kullanılmaktadır.
- Paket:
negotiator - Sürüm:
1.0.0
FormatJS Intl Localematcher
Kullanıcının dil tercihleri ile uygulamanın desteklediği diller arasında uygun locale seçimi yapmak için kullanılmaktadır.
- Paket:
@formatjs/intl-localematcher - Sürüm:
0.8.13
JS Cookie
Tarayıcı tarafındaki cookie işlemlerini yönetmek için kullanılmaktadır.
- Paket:
js-cookie - Sürüm:
3.0.8
Server Only
Next.js uygulamalarında modüllerin yalnızca server tarafında kullanılacağını belirtmek için kullanılmaktadır.
- Paket:
server-only - Sürüm:
0.0.1
E-posta
Nodemailer
Nodemailer, uygulama üzerinden e-posta göndermek için kullanılmaktadır.
- Paket:
nodemailer - Sürüm:
9.0.x
Kullanım alanları:
- SMTP entegrasyonu
- İşlemsel e-postalar
- Sistem bildirimleri
- Kullanıcı e-postaları
Nodemailer hem backend hem de frontend projelerinde kullanılmaktadır.
Geliştirme Araçları
TypeScript
TypeScript, proje genelinde statik tipleme ve tip güvenliği sağlamak için kullanılmaktadır.
- Paket:
typescript - Sürüm:
7.0.2
Kullanım alanları:
- Frontend
- Backend
- GraphQL kod üretimi
- Build süreçleri
Nodemon
Nodemon, kaynak kodda değişiklik olduğunda Node.js uygulamasını otomatik olarak yeniden başlatır.
- Paket:
nodemon - Sürüm:
3.1.14
Özellikle backend geliştirme sürecinde kullanılmaktadır.
Concurrently
Concurrently, birden fazla geliştirme sürecinin aynı anda çalıştırılmasını sağlar.
- Paket:
concurrently - Sürüm:
10.0.4
Örneğin backend geliştirme ortamında aynı anda:
- GraphQL Code Generator
- TypeScript compiler
- Nodemon
çalıştırılabilir.
Node.js Type Definitions
Node.js API’leri için TypeScript tip tanımlarını sağlar.
- Paket:
@types/node
Bu paketler çalışma zamanında kullanılmaz; geliştirme sırasında TypeScript’e tip bilgisi sağlar.
Dokümantasyon
Hugo
Hugo, açık kaynak bir static site generator’dır.
Hugo, statik dokümantasyon ve içerik sayfalarının oluşturulması için kullanılmaktadır.
Kullanım alanları:
- Markdown tabanlı dokümantasyon
- Static site generation
- Hızlı build süreçleri
- Dokümantasyon siteleri
Hextra
Hextra, Hugo için geliştirilmiş açık kaynak bir dokümantasyon temasıdır.
Hugo tabanlı dokümantasyon sitesinin görsel tasarımını ve dokümantasyon yapısını sağlar.
Özellikleri:
- Hugo entegrasyonu
- Markdown tabanlı içerik
- Responsive tasarım
- Dokümantasyon odaklı navigasyon
- Arama desteği
- Tema özelleştirme
Tam Bağımlılık Listesi
Backend
Bağımlılıklar
| Paket | Sürüm | Kullanım Amacı |
|---|---|---|
@apollo/server | 5.5.1 | GraphQL API sunucusu |
@aws-sdk/client-s3 | 3.1105.0 | AWS S3 entegrasyonu |
@aws-sdk/s3-request-presigner | 3.1105.0 | S3 presigned URL’leri |
cassandra-driver | 4.9.0 | Cassandra veritabanı |
dataloader | 2.2.3 | Veri erişimi optimizasyonu |
dotenv | 17.4.2 | Environment variable yönetimi |
franc | 6.2.0 | Dil tespiti |
graphql | 17.0.2 | GraphQL |
graphql-tag | 2.12.7 | GraphQL dokümanlarının işlenmesi |
nodemailer | 9.0.4 | E-posta gönderimi |
ua-parser-js | 2.0.10 | User-agent analizi |
ulid | 3.0.2 | Benzersiz ID üretimi |
zod | 4.4.3 | Runtime doğrulama |
typescript | 7.0.2 | TypeScript |
Geliştirme Bağımlılıkları
| Paket | Sürüm | Kullanım Amacı |
|---|---|---|
@graphql-codegen/cli | 7.2.0 | GraphQL kod üretimi |
@graphql-codegen/typescript | 6.1.0 | TypeScript kod üretimi |
@graphql-codegen/typescript-resolvers | 6.1.0 | Resolver tiplerinin üretimi |
@types/node | 26.1.2 | Node.js tipleri |
@types/nodemailer | 8.0.1 | Nodemailer tipleri |
concurrently | 10.0.4 | Paralel geliştirme süreçleri |
nodemon | 3.1.14 | Geliştirme sunucusu yenileme |
Frontend
Bağımlılıklar
| Paket | Sürüm | Kullanım Amacı |
|---|---|---|
@apollo/client | 4.2.10 | GraphQL client |
@apollo/client-integration-nextjs | 0.14.5 | Apollo + Next.js entegrasyonu |
@chakra-ui/react | 3.36.1 | UI bileşenleri |
@emotion/react | 11.14.0 | Stil yönetimi |
@formatjs/intl-localematcher | 0.8.13 | Locale eşleştirme |
js-cookie | 3.0.8 | Cookie yönetimi |
negotiator | 1.0.0 | HTTP negotiation |
next | 16.3.0 | Web framework |
next-themes | 0.4.6 | Tema yönetimi |
nodemailer | 9.0.5 | E-posta |
react | 19.2.8 | UI kütüphanesi |
react-dom | 19.2.8 | React DOM |
react-icons | 5.7.0 | İkonlar |
server-only | 0.0.1 | Server-only modüller |
zod | 4.4.3 | Veri doğrulama |
Geliştirme Bağımlılıkları
| Paket | Sürüm | Kullanım Amacı |
|---|---|---|
@types/js-cookie | 3.0.6 | JS Cookie tipleri |
@types/negotiator | 0.6.4 | Negotiator tipleri |
@types/node | 26.2.0 | Node.js tipleri |
@types/nodemailer | 8.0.1 | Nodemailer tipleri |
@types/react | 19.2.18 | React tipleri |
@types/react-dom | 19.2.4 | React DOM tipleri |
typescript | 7.0.2 | TypeScript |
Mobil / iOS
Bağımlılıklar
| Paket | Sürüm | Kullanım Amacı |
|---|---|---|
Apollo | 2.1.2 | GraphQL client ve API iletişimi |
AppRouter | 1.0.4 | Uygulama yönlendirmesi ve navigasyon |
KeychainSwift | 24.0.0 | Güvenli Keychain depolama |
SDWebImage | 5.21.7 | Asenkron görsel yükleme ve önbellekleme |
SDWebImageSwiftUI | 3.1.4 | SDWebImage ve SwiftUI entegrasyonu |
Bu kütüphaneler Poemtry.com’un iOS uygulamasında ağ iletişimi, navigasyon, güvenli veri saklama ve görsel işlemleri gibi temel işlevler için kullanılmaktadır.
Lisanslar
Poemtry.com, yukarıda listelenen açık kaynak yazılımları ilgili projelerin kendi lisansları kapsamında kullanmaktadır.
Her bağımlılık, kendi lisansına ve telif hakkı bildirimlerine tabidir.
Her bir bağımlılığın lisans bilgileri, production dağıtımından önce ilgili paketin metadata bilgileri ve resmi repository’si üzerinden doğrulanmalıdır.
Gerekli durumlarda ilgili lisans metinleri ve telif hakkı bildirimleri dağıtılan yazılımla birlikte sunulmalıdır.
Bu doküman yalnızca bilgilendirme amacı taşır ve üçüncü taraf yazılımların orijinal lisans koşullarının yerine geçmez.
Teşekkürler
Poemtry.com’un geliştirilmesini mümkün kılan açık kaynak projelerinin geliştiricilerine, katkıda bulunanlarına ve topluluklarına teşekkür ederiz.
Poemtry.com, açık kaynak topluluğunun sunduğu çalışmalar olmadan mümkün olmazdı.
Açık kaynak yazılımlar geliştiren ve sürdüren herkese teşekkürler. ❤️