
Kullanılan Teknolojiler
Proje Kazanımları
Bu projede, Clean Architecture standartlarında C# .NET Core ile geliştirilmiş bir Web API backend ve modern kullanıcı arayüzü sunan React frontend içeren sosyal kütüphane ve kitap paylaşım platformu yayına alınmıştır.
Veritabanı olarak SQL Server'dan bulut uyumlu PostgreSQL'e geçiş yapılmış, API katmanı Hugging Face Spaces üzerinde Docker ile, arayüz ise Vercel üzerinde barındırılmaktadır.
- Kullanıcı Yönetimi & Arama: JWT tabanlı güvenli kullanıcı oluşturma/oturum açma ve diğer kullanıcıları arayabilme sistemi.
- Film & Kitap Arama: Google Books ve TMDB API entegrasyonları ile gelişmiş film/kitap arama ve detaylı özet bilgileri görüntüleme.
- Özel Listeler & Kütüphane: Kullanıcıların okudukları/izledikleri içerikleri kaydedebileceği, özel kütüphane listeleri oluşturabileceği kişisel alan.
- Sosyal Etkileşim: İçerikleri beğenme (like), 5 yıldız üzerinden puanlama ve detaylı yorum/inceleme yazabilme imkanı.
- Yorum Akışı: Farklı kullanıcıların birbirlerinin yaptığı yorumları, puanları ve okuma/izleme aktivitelerini görebildiği şeffaf sosyal etkileşim altyapısı.
- Clean Architecture (C#): Domain, Application, Infrastructure ve Presentation katmanları ile modüler ve genişletilebilir backend tasarımı.
- PostgreSQL ve EF Core: Bulut uyumlu Neon PostgreSQL veritabanı entegrasyonu ve otomatik tablo şeması oluşturma altyapısı.
- Docker & Hugging Face: Backend uygulamasının Dockerize edilerek bulut üzerinde port 7860 üzerinden asenkron yayına alınması.
- React (Vite) ve Vercel: React frontend uygulamasının Vercel platformuna bağlanarak çevre değişkenleriyle dağıtılması.
- Canlı Demo: Proje demosuna buradan ulaşabilirsiniz.
README.md Dosyasını Görüntüle
title: Social Library API emoji: 📚 colorFrom: blue colorTo: indigo sdk: docker app_port: 7860 pinned: false
📚 Social Library - Sosyal Kitap & İnceleme Platformu
Social Library, kitapseverlerin okudukları kitapları ve izledikleri filmleri takip edebilecekleri, incelemeler (review) yazıp puanlayabilecekleri ve diğer kullanıcılarla etkileşime girebilecekleri modern bir sosyal kütüphane platformudur.
Proje, backend tarafında C# ASP.NET Core Clean Architecture, frontend tarafında ise React (Vite) & Bootstrap mimarisi kullanılarak modern yazılım prensiplerine uygun şekilde geliştirilmiştir.
📸 Proje Ekran Görüntüleri
👤 Kullanıcı Profili & Özel Listeler
Kullanıcıların kendi kitap/film inceleme listelerini ve son aktivitelerini sergiledikleri kişiselleştirilmiş profil ekranı:

🚀 Özellikler
- Clean Architecture (Modüler Mimari): Domain, Application, Infrastructure ve API katmanlarından oluşan, gevşek bağlı (loosely-coupled) ve test edilebilir kod yapısı.
- Sosyal Etkileşim: Kitapları puanlama, detaylı incelemeler yazma ve diğer kullanıcıların okuma aktivitelerini takip etme.
- Gelişmiş Filtreleme: Türlerine, puanlarına veya isimlerine göre dinamik kitap arama ve listeleme.
- Kullanıcı Yönetimi: JWT (JSON Web Token) tabanlı güvenli kimlik doğrulama, kullanıcı profili güncelleme ve kişiselleştirilmiş okuma listeleri.
- Karanlık Mod Desteği: Kullanıcı göz sağlığı için varsayılan olarak aktifleşen modern koyu tema arayüzü.
- Docker & Bulut Entegrasyonu: PostgreSQL bulut veritabanı (Neon) entegrasyonu, Hugging Face Spaces üzerinde Dockerized API dağıtımı ve Vercel frontend barındırma.
🛠️ Teknoloji Yığını
Backend
- Dil & Framework: C# 12 / .NET 8.0 ASP.NET Core Web API
- Veritabanı: PostgreSQL (Entity Framework Core)
- Tasarım Desenleri: CQRS (MediatR), Repository Pattern, Clean Architecture
- Güvenlik: JWT Authentication, BCrypt (Şifreleme)
- Dağıtım: Docker, Hugging Face Spaces
Frontend
- Framework & Dil: React 18 (Vite) / TypeScript / JavaScript
- Arayüz & Stil: React Bootstrap / Custom CSS (Karanlık Mod öncelikli)
- Durum Yönetimi: React Context (Tema ve Kimlik Doğrulama)
- API İstemcisi: Axios
- Dağıtım: Vercel
⚙️ Kurulum ve Çalıştırma
Gereksinimler
- .NET 8.0 SDK
- Node.js (v18+)
- PostgreSQL Veritabanı
1. Projeyi Klonlayın
git clone https://github.com/Ynsemreaykr/Social_Library.git
cd Social_Library
2. Veritabanı Bağlantısını Yapılandırın
SocialLibrary.Server/appsettings.json içerisindeki ConnectionStrings:DefaultConnection alanını kendi PostgreSQL bağlantı adresinizle güncelleyin.
3. API Anahtarlarını Yapılandırın (.env)
sociallibrary.client klasörü altında bir .env dosyası oluşturun ve aşağıdaki değişkenleri tanımlayın:
VITE_TMDB_API_KEY=your_tmdb_api_key_here
VITE_GOOGLE_BOOKS_API_KEY=your_google_books_api_key_here
[!NOTE]
- TMDb API Key: Filmlerin listelenmesi için gereklidir. TheMovieDB üzerinden ücretsiz temin edilebilir.
- Google Books API Key: Kitapların rate-limit (429 RESOURCE_EXHAUSTED) hatası olmadan yüklenebilmesi için gereklidir. Google Cloud Console üzerinden kitap API'sini etkinleştirerek ücretsiz API anahtarı alabilirsiniz.
4. Backend Sunucusunu Çalıştırın
dotnet restore
dotnet run --project SocialLibrary.Server
API varsayılan olarak https://localhost:7196 veya http://localhost:5169 adreslerinde çalışacaktır.
5. Frontend İstemcisini Çalıştırın
cd sociallibrary.client
npm install
npm run dev
Uygulama tarayıcınızda http://localhost:5173 adresinde açılacaktır.
📄 Lisans
Bu proje MIT Lisansı altında lisanslanmıştır.