Full-stack web uygulaması
RentIt
Kullanıcıların eşyalarını birbirine kiraladığı, canlı yayında çalışan full-stack platform.
Proje arayüzü

Ana sayfa1 / 9
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.







