Kadir Terzi
Projelere dön

Full-stack web uygulaması

RentIt

Kullanıcıların eşyalarını birbirine kiraladığı, canlı yayında çalışan full-stack platform.

React / Next.jsNode.js / ExpressPythonPostgreSQL

Proje arayüzü

RentIt ana sayfası: arama çubuğu, kiralama başlığı ve kategori kartları

Genel bakış

RentIt, insanların kullanmadıkları eşyaları yakınlarındaki kişilere kiraya verebildiği bir platform. Kiralamanın tamamı uygulamanın içinde yürüyor: ilan açma, talep ve onay, cüzdanla ödeme, kodla teslim, iade ve puanlama.

Bitirme projesi olarak Ekim 2025 – Mayıs 2026 arasında geliştirdim. Arayüzden veritabanına, öneri servisinden canlıya almaya kadar tüm katmanları kapsıyor.

Neler yaptım

Kiralama yaşam döngüsü

Her kiralama 12 aşamalı bir akıştan geçer: talep, onay, ödeme, teslim, kiralamada, iade ve tamamlanma; itiraz ve iptal de akışın parçası. İki kişi aynı anda aynı işlemi yapmaya çalışırsa veritabanı kilidi yalnızca birine izin verir.

Cüzdan ve ödeme

Bakiye tek bir sayı değil, işlem kayıtlarının toplamı; iade silme değil yeni kayıt olarak yazılır. Stripe ödemesi aynı anda iki kez gelse bile cüzdana yalnızca bir kez yansır.

Güvenli teslim ve iade

Tek kullanımlık kod, iki taraflı fotoğraf/video kanıtı ve inceleme süresi var; süre dolunca sistem akışı kendisi ilerletir, itirazlarda yönetici karar verir.

Konuma göre arama

PostGIS ile ilanlar mesafeye göre filtrelenir ve sıralanır; kategori ve fiyat filtreleri de eklenebilir.

Kişiye özel öneriler

Ayrı bir Python servisi içerik benzerliği, mesafe, benzer kullanıcıların davranışı ve birlikte kiralanan ürünleri birleştirerek öneri üretir; sonuçlar veritabanına yazıldığı için API hızlı okur. Yeni kullanıcıya popüler ve yakın ilanlar gösterilir.

Anlık mesajlaşma

Socket.io ile kiralayan ve ilan sahibi gerçek zamanlı yazışır; yazıyor göstergesi ve okunmamış sayacı var.

Güvenlik ve testler

JWT ve Google girişi, hız sınırlama, girdi doğrulama ve her uçta sahiplik kontrolü kullanılır. Jest ve Supertest ile 100'den fazla otomatik test yazdım.

Teknolojiler

Arayüz
  • Next.js 15sayfalar, yönlendirme ve sunucu taraflı render
  • React 19arayüz bileşenleri
  • Tailwind CSS 4stil
  • Zustandistemci durumu
  • Leafletharita
Backend
  • Node.jsçalışma ortamı
  • ExpressREST API
  • JWToturum ve kimlik doğrulama
  • bcryptparola özetleme
  • Passport (Google OAuth)Google ile giriş
  • Socket.iogerçek zamanlı mesajlaşma
  • Helmetgüvenlik başlıkları
  • Hız sınırlamaistek sınırlama
  • express-validatorgirdi doğrulama
  • Winstonkayıt tutma
Veritabanı
  • PostgreSQL 15ilişkisel veri, ORM kullanmadan parametrik SQL
  • PostGISkonum sorguları
Makine öğrenmesi
  • Pythonöneri servisi
  • pandasveri işleme
  • scikit-learnöneri modeli
  • SciPysayısal hesaplama
Servisler
  • Stripe Checkoutödeme
  • Brevoe-posta
  • Twilio Verifytelefon doğrulama
  • Cloudflare R2görsel depolama
Altyapı ve test
  • RenderAPI
  • Vercelarayüz
  • Supabaseveritabanı
  • Jestotomatik testler
  • SupertestAPI testleri

Durum

Canlı demo herkese açık. Ödemeler Stripe test modunda, telefon doğrulaması demo modunda çalışır; ilanlar ve kullanıcılar örnek veridir.

Canlı demoKaynak koduBu proje hakkında iletişime geç