Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SoftChat

ASP.NET Core SignalR OpenAI JWT SQL Server Google OAuth Azure

Gerçek zamanlı mesajlaşma, JWT tabanlı kimlik doğrulama ve yapay zeka destekli mesaj araçları içeren modern bir sosyal mesajlaşma platformu.

🔗 Canlı Demo: softchat-aucfd2e0duadenf7.austriaeast-01.azurewebsites.net


SoftChat Nedir?

SoftChat; kullanıcıların birbirleriyle anlık mesajlaşabildiği, yapay zeka ile mesajlarını geliştirebildiği ve rol tabanlı bir üyelik sistemiyle premium özelliklere erişebildiği bir web uygulamasıdır.

Proje teknik açıdan şu soruya odaklanır:

"ASP.NET Core Identity, JWT ve rol tabanlı yetkilendirme gerçek bir projede nasıl birlikte çalışır?"

Sıradan bir CRUD uygulaması değildir. Cookie tabanlı Identity ile JWT Bearer Token'ı hibrit olarak kullanan, Google OAuth ile sosyal girişi destekleyen, SignalR ile gerçek zamanlı iletişim kuran ve OpenAI entegrasyonuyla akıllı mesaj araçları sunan tam kapsamlı bir platformdur.


Nasıl Çalışır?

Kullanıcı giriş yapar
        │
        ▼
Identity şifreyi doğrular
        │
        ▼
JWT token üretilir → Cookie'ye yazılır
        │
        ▼
Her istek geldiğinde token okunur ve doğrulanır
        │
        ├─ Token yoksa       → Login sayfasına yönlendir (401)
        ├─ Token var, Member → Normal sayfalara erişim
        └─ Token var, Gold   → AI araçlarına da erişim (403 yoksa)

Özellikler

Kimlik Doğrulama & Güvenlik

  • ASP.NET Core Identity ile kullanıcı kaydı, girişi ve yönetimi
  • JWT Bearer Token üretimi; claim'ler içinde kullanıcı ID, e-posta ve rol bilgisi taşınır
  • Cookie + JWT hibrit yapısı — Identity oturumu Cookie ile, AI yetkilendirmesi JWT ile yönetilir
  • Google OAuth 2.0 ile tek tıkla sosyal giriş
  • E-posta doğrulama — kayıt sonrası hesap aktivasyonu zorunludur
  • Şifre sıfırlama — güvenli token ile e-posta üzerinden sıfırlama

Rol Tabanlı Yetkilendirme

  • Member — varsayılan rol, mesajlaşma ve arkadaşlık özelliklerine erişim
  • Gold — AI mesaj araçlarına tam erişim
  • Gold olmayan kullanıcı AI sayfalarına gitmeye çalışırsa 403 sayfasına yönlendirilir
  • Giriş yapmayan kullanıcı 401 sayfasına yönlendirilir

Gerçek Zamanlı Mesajlaşma

  • SignalR ile sunucu-istemci arasında WebSocket bağlantısı
  • Mesajlar karşı tarafa sayfa yenilemeden anında iletilir
  • Aktif sohbetler sol panelde listelenir

Arkadaşlık Sistemi

  • Kullanıcı arama ve arkadaşlık isteği gönderme
  • Gelen istekleri kabul etme veya reddetme
  • Yalnızca arkadaş olan kullanıcılarla mesajlaşma

Yapay Zeka Araçları (Gold Üyelere Özel)

  • Mesaj Üret — Ne yazmak istediğini tarif et, AI yazsın
  • Yazım Düzelt — Hatalı metni düzgün Türkçeye çevir
  • Dil Çevir — Mesajını 12 farklı dile çevir
  • Profesyonelleştir — Günlük dili kurumsal dile dönüştür
  • Otomatik Yanıt — Gelen mesaja uygun cevap üret

Profil & Admin

  • Profil fotoğrafı yükleme ve bilgi güncelleme
  • Admin panelinden kullanıcı listeleme ve rol atama

Ekran Görüntüleri

Hesap İşlemleri

Giriş Yap Kayıt Ol
Login Register
E-posta Doğrulama Şifremi Unuttum
Email ForgotPassword

Mesajlaşma

Gelen Kutusu Aktif Sohbet
Inbox1 Inbox2

Arkadaşlık Sistemi

Kullanıcı Ara İstek Gönder Gelen İstekler
Search Send Incoming

Yapay Zeka Araçları (Gold)

Mesaj Üret Yazım Düzelt Otomatik Yanıt
Generate Fix Reply
Dil Çevir Profesyonelleştir
Translate Professionalize

Admin Paneli

Kullanıcı Listesi Rol Atama Rol Listesi
UserList AssignRole RoleList

Hata Sayfaları

401 — Giriş Gerekli 403 — Gold Gerekli 404 — Bulunamadı
401 403 404

E-posta Şablonları

Aktivasyon Maili Şifre Sıfırlama Maili
Activation ResetPassword

Teknoloji Yığını

Katman Teknoloji Açıklama
Backend ASP.NET Core 8.0 MVC Web framework
Veritabanı SQL Server Ana veri depolama
ORM Entity Framework Core 8.0 Veritabanı erişim katmanı
Kimlik Doğrulama ASP.NET Core Identity Kullanıcı yönetimi
Token JWT Bearer API yetkilendirme
Sosyal Giriş Google OAuth 2.0 Tek tıkla giriş
Gerçek Zamanlı SignalR WebSocket mesajlaşma
E-posta MailKit / SMTP Aktivasyon & sıfırlama
Yapay Zeka OpenAI GPT-3.5-Turbo Mesaj araçları
Mapping AutoMapper DTO dönüşümleri

Canlı Demo

Proje Azure App Service üzerinde yayında:

🌐 softchat-aucfd2e0duadenf7.austriaeast-01.azurewebsites.net


Proje Yapısı

SoftChat/
├── Areas/
│   └── Admin/              # Admin paneli (kullanıcı & rol yönetimi)
├── Controllers/            # Account, Message, AI, Profile, FriendRequest
├── Entities/               # AppUser, Message, FriendRequest
├── Hubs/
│   └── ChatHub.cs          # SignalR gerçek zamanlı mesajlaşma
├── Services/
│   ├── Abstract/           # IAccountService, IAIService, IJwtService...
│   └── Concrate/           # Implementasyonlar
├── Models/
│   ├── JwtModels/          # JwtSettingsModel
│   └── ViewModels/         # Login, Register, Message...
├── Dtos/                   # AI ve mesaj DTO'ları
├── Mapping/                # AutoMapper profilleri
├── Context/                # MailBoxContext (DbContext)
└── Migrations/             # EF Core migration dosyaları

Rol Sistemi

Özellik Member Gold
Kayıt & Giriş
Gerçek Zamanlı Mesajlaşma
Arkadaşlık Sistemi
Profil Yönetimi
AI — Mesaj Üret
AI — Yazım Düzelt
AI — Dil Çevir
AI — Profesyonelleştir
AI — Otomatik Yanıt

Gold rolü Admin panelinden atanır. Gold olmayan kullanıcı AI sayfalarına erişmeye çalışırsa 403 sayfasına yönlendirilir.


Referans

Bu proje, Murat Yücedağ'ın "Kimlik Doğrulama, Yetkilendirme, JWT, Rol ve Policy Sistemleri Uygulamalı Olarak Öğrenin" kursu referans alınarak geliştirilmiştir.


About

Gerçek zamanlı mesajlaşma, JWT kimlik doğrulama ve AI destekli mesaj araçları içeren ASP.NET Core tabanlı sosyal mesajlaşma platformu.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages