← Projelere dön
VYBE - Esra Sinler project, Software Architect and Developer in Izmir

VYBE VYBE

Gerçek zamanlı mesajlaşma uygulaması. Backend: .NET 8 Clean Architecture (JWT, SignalR, EF Core, SQL Server). Frontend: React, TypeScript, Vite, Tailwind, SignalR client. Kullanıcı kayıt/giriş, anlık mesajlaşma, mesaj geçmişi, HttpOnly cookie ile oturum yönetimi. Real-time messaging application. Backend: .NET 8 Clean Architecture (JWT, SignalR, EF Core, SQL Server). Frontend: React, TypeScript, Vite, Tailwind, SignalR client. User registration/login, real-time chat, message history, HttpOnly cookie session management.

#.NET 8 #Clean Architecture #React #TypeScript #SignalR #JWT #Entity Framework Core #SQL Server #Vite #Tailwind CSS #Axios

Genel Bakış

Proje nedir?

VYBE, gerçek zamanlı mesajlaşma uygulamasıdır. Kullanıcılar kayıt olup giriş yapabilir, diğer kullanıcılarla mesajlaşabilir.

Mimari yapı

Backend (.NET 8.0 — Clean Architecture)

  • VYBE.API (Sunum Katmanı): REST API endpoint'leri, SignalR Hub (gerçek zamanlı iletişim), JWT Authentication, CORS. Önemli dosyalar: Program.cs, AuthController.cs, UsersController.cs, Hubs/ChatHub.cs.
  • VYBE.Core (İş Mantığı): Entity'ler (User, Message), DTO'lar, Interface'ler (IUserService, IMessageService). User: Id, Username, Email, PasswordHash, IsOnline, LastSeen. Message: Id, Content, SenderId, ReceiverId, SentAt, IsRead, ReadAt.
  • VYBE.Infrastructure (Veri Erişim): Entity Framework Core, SQL Server, UserService (kayıt, giriş, JWT, BCrypt), MessageService (mesaj gönderme, geçmiş, okundu), VybeDbContext.

Frontend (React + TypeScript + Vite)

  • React 18.2, TypeScript, Vite 5.4, Tailwind CSS, Axios, SignalR Client (@microsoft/signalr), Lucide React.
  • Klasör yapısı: components/ (Login, Register, Chat, Sidebar, ChatArea), context/AuthContext, services/api, auth, signalr, types.

Nasıl çalışıyor?

  • Authentication: Kayıt → UserService.RegisterAsync() → BCrypt hash → DB. Giriş → LoginAsync() → JWT token → HttpOnly cookie. Sayfa yenilense bile oturum korunur.
  • Mesajlaşma: Kişi seçilir → GetChatHistory() (SignalR) → geçmiş yüklenir. Mesaj → ChatHub.SendMessageToUser() → DB + alıcıya anında. Okundu → MarkMessageAsRead().
  • SignalR: Token /api/auth/token ile alınır, query string ile hub'a bağlanır. Her kullanıcı kendi ID'siyle gruba eklenir, mesajlar grup üzerinden gider.

Güvenlik

  • HttpOnly cookies (XSS koruması), BCrypt (şifre hash), JWT, CORS, SameSite cookie (CSRF koruması).

Veritabanı

Users: Id, Username, Email (Unique), PasswordHash, IsOnline, LastSeen, CreatedAt.

Messages: Id, Content, SenderId (FK → Users), ReceiverId (FK → Users), SentAt, IsRead, ReadAt.

Özellikler

Mevcut:

  • Kullanıcı kayıt/giriş, gerçek zamanlı mesajlaşma (SignalR), mesaj geçmişi, kullanıcı listesi, responsive tasarım, cookie tabanlı oturum.

Eksik / Planlanan:

  • Dosya/fotoğraf gönderme, "Delivered"/"Seen" göstergeleri, kullanıcı adı/email validasyonu, profil ayarları, typing indicator (backend hazır).

Fields of Expertise

Software Architect • Embedded Systems • Full-Stack Developer • AI Agent Developer • IoT Solutions • .NET Core Expert • React • Hybrid Software Architect