Skip to content

Taxperia/taxchat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taxchat - Professional Chat Application

Discord
taxchat Logo

Modern Masaüstü Sohbet Uygulaması

Electron + Node.js + MariaDB ile geliştirilmiş profesyonel iletişim platformu

🚀 Özellikler

💬 Mesajlaşma

  • Gerçek zamanlı birebir mesajlaşma
  • Grup sohbetleri (Premium'da 100+ üye)
  • Emoji, GIF ve sticker desteği
  • Mesaj düzenleme ve silme
  • Okundu/İletildi bildirimleri
  • Dosya paylaşımı (resim, video, ses, belge)
  • Sesli mesaj gönderme

👥 Grup Özellikleri

  • Özelleştirilebilir rol sistemi
  • Üye yönetimi (ekleme, çıkarma, yasaklama)
  • Rol bazlı izinler (JSON formatında)
  • Grup avatarı ve açıklaması

📞 Arama Özellikleri

  • Sesli aramalar
  • Görüntülü aramalar
  • Ekran paylaşımı
  • Grup aramaları (sınırsız katılımcı)

⭐ Premium Üyelik Sistemi

Özellik Free Basic Pro Ultimate
Grup Üye Limiti 10 50 100 Sınırsız
Dosya Boyutu 25MB 100MB 500MB 2GB
Ekran Paylaşımı
Sesli Mesaj
Özel Temalar
Öncelikli Destek

🎨 Temalar

  • Dark Mode - Göz yormayan karanlık tema
  • Light Mode - Aydınlık modern tema
  • Purple Mode - Şık mor tonları

📋 Gereksinimler

  • Node.js 18.x veya üzeri
  • MariaDB 10.x veya MySQL 8.x
  • npm veya yarn

🛠️ Kurulum

1. Projeyi Klonlayın

git clone https://github.com/username/taxchat.git
cd taxchat

2. Veritabanını Oluşturun

# MariaDB/MySQL'e giriş yapın
mysql -u root -p

# Veritabanını oluşturun
CREATE DATABASE taxchat CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# Schema'yı yükleyin
USE taxchat;
SOURCE database/schema.sql;

3. Ortam Değişkenlerini Ayarlayın

# .env.example dosyasını kopyalayın
cp .env.example .env

# .env dosyasını düzenleyin
nano .env  # veya herhangi bir editör

4. Server Bağımlılıklarını Yükleyin

cd server
npm install

5. Client Bağımlılıklarını Yükleyin

cd ../client
npm install

🚀 Çalıştırma

Development Modu

Server'ı başlatın:

cd server
npm run dev

Client'ı başlatın (yeni terminal):

cd client
npm start

Production Modu

Server:

cd server
npm start

Client build:

cd client
npm run build

📁 Proje Yapısı

taxchat/
├── client/                    # Electron Frontend
│   ├── assets/               # Statik dosyalar
│   │   ├── fonts/
│   │   └── images/
│   ├── src/
│   │   ├── css/              # Stiller
│   │   │   ├── themes/       # Tema dosyaları
│   │   │   └── *.css         # Component stilleri
│   │   ├── js/               # JavaScript dosyaları
│   │   └── pages/            # HTML sayfaları
│   ├── main.js               # Electron ana işlem
│   └── package.json
│
├── server/                    # Node.js Backend
│   └── src/
│       ├── config/           # Yapılandırma
│       ├── controllers/      # İş mantığı
│       ├── middleware/       # Ara yazılımlar
│       ├── models/           # Sequelize modelleri
│       ├── routes/           # API rotaları
│       ├── socket/           # Socket.IO handlers
│       └── app.js            # Express uygulaması
│
├── database/
│   └── schema.sql            # Veritabanı şeması
│
├── .env.example              # Örnek ortam değişkenleri
├── .gitignore
└── README.md

🔌 API Endpoints

Kimlik Doğrulama

  • POST /api/auth/register - Kayıt ol
  • POST /api/auth/login - Giriş yap
  • POST /api/auth/refresh - Token yenile

Kullanıcılar

  • GET /api/users/profile - Profil bilgisi
  • PUT /api/users/profile - Profil güncelle
  • POST /api/users/avatar - Avatar yükle
  • GET /api/users/search - Kullanıcı ara
  • POST /api/users/:id/block - Kullanıcı engelle

Sohbetler

  • GET /api/chats - Sohbet listesi
  • POST /api/chats - Yeni sohbet oluştur
  • GET /api/chats/:id/messages - Mesajları getir
  • POST /api/chats/:id/messages - Mesaj gönder
  • PUT /api/messages/:id - Mesaj düzenle
  • DELETE /api/messages/:id - Mesaj sil

Gruplar

  • POST /api/groups - Grup oluştur
  • PUT /api/groups/:id - Grup güncelle
  • POST /api/groups/:id/members - Üye ekle
  • DELETE /api/groups/:id/members/:userId - Üye çıkar
  • POST /api/groups/:id/roles - Rol oluştur
  • PUT /api/groups/:id/roles/:roleId - Rol güncelle

Premium

  • GET /api/premium/plans - Plan listesi
  • POST /api/premium/subscribe - Abone ol
  • DELETE /api/premium/cancel - Abonelik iptal

🔌 Socket Events

Client → Server

  • join-room - Sohbete katıl
  • leave-room - Sohbetten ayrıl
  • send-message - Mesaj gönder
  • typing - Yazıyor bildirimi
  • initiate-call - Arama başlat
  • accept-call - Aramayı kabul et
  • end-call - Aramayı sonlandır

Server → Client

  • new-message - Yeni mesaj
  • message-updated - Mesaj güncellendi
  • message-deleted - Mesaj silindi
  • user-typing - Kullanıcı yazıyor
  • user-online - Kullanıcı çevrimiçi
  • user-offline - Kullanıcı çevrimdışı
  • incoming-call - Gelen arama
  • call-accepted - Arama kabul edildi
  • call-ended - Arama sonlandı

🛡️ Güvenlik

  • JWT tabanlı kimlik doğrulama
  • Bcrypt ile şifre hashleme
  • Rate limiting
  • CORS koruması
  • Helmet güvenlik başlıkları
  • Input validation
  • XSS koruması

📝 Lisans

Bu proje MIT lisansı altında lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına bakın.

👨‍💻 Not

Bu projede şimdilik server taraflı içeriği geliştirdiğim için güvenlik açıklarını kapatmadan paylaşmayacağım. Projedeki hataları sürekli olarak düzenleyip uygulamayı sürekli güncelleceğim. Yine de server dosyalarına sahip olmak istiyorsanız bana discord üzerinden ulaşabilirsiniz.


⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors