Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Translate and Language Development

Çeviri yapın, kaydedin, egzersizlerle geliştirin.

Node.js Express MongoDB License


📖 Hakkında

Translate and Language Development, yalnızca çeviri yapmakla kalmayıp aynı zamanda öğrenmeyi de destekleyen kapsamlı bir dil geliştirme platformudur. Kullanıcılar çevirilerini kaydedebilir, haftalık çalışma tablolarını takip edebilir ve birden fazla egzersiz türüyle kelime bilgilerini pekiştirebilir.


📸 Ekran Görüntüleri

Çeviri Yapma Çeviri Kaydetme Profil Ekranı
Admin Paneli Çeviri Yönetimi Görsel Yönetimi
Kelime Egzersizleri Yazma Egzersizi Kelime Avı

✨ Özellikler

🌐 Çeviri Motoru

  • Çoklu Dil Desteği: İngilizce, Türkçe, Fransızca, Almanca, İspanyolca, İtalyanca, Rusça, Çince, Japonca ve daha fazlası
  • Otomatik Dil Algılama: Kaynak dili otomatik olarak tespit eder
  • Dil Değiştirme: Tek tıkla kaynak ve hedef dilleri yer değiştirir
  • Debounce ile Akıllı Çeviri: Yazma duraklamasında otomatik olarak çeviri tetiklenir

🎤 Ses Özellikleri

  • Sesle Yazma (Speech-to-Text): Web Speech API ile tarayıcı üzerinden sesle metin girişi
  • Text-to-Speech: Google Translate TTS altyapısıyla hem kaynak hem de hedef metni seslendir
  • Gerçek Zamanlı Transkripsiyon: Sürekli ve geçici sonuçları anında gösterir

🔤 Kelime Araçları

  • Rastgele Kelime Getirme: Wordnik API ile sözlükten rastgele İngilizce kelime çeker ve seçili dile çevirir
  • Kelime Türü Belirleme: Wordnik sözlüğü kullanarak kelimenin dilbilgisel türünü (isim, fiil, sıfat…) gösterir
  • Çok Dilli Tür Etiketi: Tür bilgisi, seçili arayüz diline otomatik çevrilir

💾 Çeviri Yönetimi

  • Çeviri Kaydetme: Yıldız ikonuyla çevirileri MongoDB'ye kaydet
  • Tekrar Kayıt Koruması: Aynı çeviri iki kez kaydedilemez
  • Çeviri Silme: Kaydedilen çeviriler tek tıkla kaldırılır
  • Anlık Durum Kontrolü: Sayfa yüklenmeden yıldız ikonunun durumu veritabanından güncellenir

📤 Paylaşım Araçları

  • E-posta ile Paylaş: Çeviriyi doğrudan e-posta istemcisine gönder
  • X (Twitter) Paylaşımı: Çeviriyi tek tıkla tweet olarak paylaş
  • Panoya Kopyala: Çeviri metnini anında kopyalar

🏋️ Dil Egzersizleri

Kaydedilen kelimeler üzerinden beş farklı egzersiz modu:

Mod Açıklama
Çoktan Seçmeli Quiz En→Tr veya Tr→En yönünde seçenekli soru çözme
Dinleme Egzersizi Seslendirilen kelimeyi tanıma
Okuma Egzersizi Paragraf okuma ve anlama soruları
Yazma Egzersizi Kelimeyi yazarak pekiştirme
Kelime Avı Word-search tarzı kafes bulmacası

👤 Kullanıcı Sistemi

  • Güvenli kayıt ve giriş (bcrypt ile şifre hashleme)
  • Haftalık çalışma takvimi (Mon–Sun aktif gün takibi)
  • Streak (Seri) Sistemi: Ardı ardına giriş yapılan gün sayısını takip eder
  • Toplam Puan ve Çalışma Süresi: Egzersiz tamamlandıkça güncellenir
  • Admin ve user yetki seviyeleri

🛠️ Admin Paneli

  • Kullanıcı Yönetimi: Tüm kullanıcıları listele, yetki değiştir, hesap sil
  • Çeviri Yönetimi: Kaynak ve hedef dil listelerini dinamik olarak ekle/kaldır
  • İçerik Yönetimi: Gizlilik Politikası, Çerez Politikası ve Hakkımızda sayfalarının içeriğini, arka plan rengini, yazı boyutunu ve görselini doğrudan editörden güncelle
  • Görsel Yönetimi: Tüm site ikonlarını (ok, mikrofon, yıldız, logo…) arayüzden değiştir

🌍 Çok Dilli Arayüz

Arayüz dili ayarlanabilir; 20'den fazla dil seçeneği sunulur: Türkçe, İngilizce, Almanca, Fransızca, İspanyolca, Rusça, Arapça, Ukraynaca ve daha fazlası.


🏗️ Teknoloji Yığını

Backend

Teknoloji Kullanım Amacı
Node.js + Express REST API sunucusu
MongoDB Kullanıcı, çeviri ve içerik verisi
bcrypt Şifre güvenliği
axios Google TTS ve Wordnik API istekleri
multer Görsel yükleme
dotenv Ortam değişkenleri yönetimi

Frontend

Teknoloji Kullanım Amacı
Vanilla HTML/CSS/JS Temel yapı ve stil
jQuery DOM yönetimi ve AJAX
Web Speech API Sesle yazma (Speech Recognition)
Custom Elements API Yeniden kullanılabilir <my-header> bileşeni
Font Awesome Admin panel ikonları

Harici API'ler

API Kullanım Amacı
Wordnik API Rastgele kelime + kelime türü
Google Translate TTS Metin seslendirme
Google Translate Çeviri motoru

📁 Proje Yapısı

translate/
│
├── server.js                  # Express sunucusu & tüm API endpoint'leri
├── index.html                 # Ana çeviri sayfası
├── admin.html                 # Admin yönetim paneli
├── GizlilikPolitikası.html    # Gizlilik politikası sayfası
├── ÇerezPolitikası.html       # Çerez politikası sayfası
├── Hakkımızda.html            # Hakkımızda sayfası
│
├── script.js                  # Ana çeviri, ses, Wordnik, panel mantığı
├── header.js                  # Custom <my-header> elementi & popup yönetimi
├── translate.js               # Çeviri API çağrıları
├── pagetranslate.js           # Arayüz dili çevirisi
├── login.js                   # Giriş servisi
├── register.js                # Kayıt servisi
├── profile.js                 # Profil bilgileri servisi
├── admin.js                   # Admin panel mantığı
├── validationService.js       # Form doğrulama
├── timecalculator.js          # Çalışma süresi hesaplama
├── politika.js                # Politika sayfası yükleyici
│
├── styles.css                 # Ana sayfa stilleri
├── admin.css                  # Admin panel stilleri
│
├── images/                    # Tüm site ikonları ve görseller
├── site_gorseller/            # README ekran görüntüleri
│
└── tablo ve egzersizler/      # Egzersiz modülleri
    ├── a.html/js/css          # Egzersiz ana menüsü
    ├── egzersiz2.html/js/css  # Çoktan seçmeli quiz
    ├── yazma.html/js/css      # Yazma egzersizi
    ├── dinleme2.html/js/css   # Dinleme egzersizi
    ├── okuma3.html/js/css     # Okuma egzersizi
    ├── kelime_avi.html/js/css # Kelime avı bulmacası
    ├── gelisim.html/css       # Gelişim takip ekranı
    └── sozluk.html/js/css     # Kelime sözlüğü

🚀 Kurulum

Gereksinimler

1. Depoyu Klonlayın

git clone https://github.com/AliKacarr/Translate_and_Language_Development.git
cd Translate_and_Language_Development

2. Bağımlılıkları Yükleyin

npm install

3. Ortam Değişkenlerini Ayarlayın

Proje kökünde bir .env dosyası oluşturun:

MONGO_URI=mongodb+srv://<kullanici>:<sifre>@cluster.mongodb.net/
DB_NAME=translate_db
WORDNIK_API_KEY=your_wordnik_api_key_here

4. Sunucuyu Başlatın

node server.js

Tarayıcınızda açın: http://localhost:3000


🔌 API Endpoint'leri

Kimlik Doğrulama

Method Endpoint Açıklama
POST /login Kullanıcı girişi
POST /register Yeni kullanıcı kaydı
GET /get-user-info Kullanıcı profil bilgileri

Çeviri

Method Endpoint Açıklama
POST /save-translation Çeviriyi kaydet
DELETE /delete-translation Kaydedilen çeviriyi sil
POST /check-translation Çevirinin mevcut olup olmadığını kontrol et

Ses & Kelime

Method Endpoint Açıklama
GET /tts Metin seslendirme (Google TTS proxy)
GET /random-word Wordnik'ten rastgele kelime
GET /wordnik-dictionary Kelime türü sorgulama

Dil Yönetimi

Method Endpoint Açıklama
GET /get-languages/:type Dil listesini getir
POST /modify-languages/:type Dil ekle veya kaldır

Admin

Method Endpoint Açıklama
GET /get-users Tüm kullanıcıları listele
POST /update-user-authority Kullanıcı yetkisi güncelle
DELETE /delete-user Kullanıcı sil
POST /update-policy Politika sayfası içeriği güncelle
POST /upload-image Arka plan resmi yükle
POST /change-image Site ikonu değiştir
POST /update-studied-time Kullanıcı çalışma süresi güncelle

📊 Veritabanı Şeması

user Koleksiyonu

{
  "email": "kullanici@ornek.com",
  "username": "Ali",
  "password": "<bcrypt_hash>",
  "totalScore": 150,
  "streak": 7,
  "studiedTime": 320,
  "authority": "user",
  "createDate": { "$date": "..." },
  "lastLoginDay": { "$date": "..." },
  "studiedDays": {
    "monday": true,
    "tuesday": false,
    "wednesday": true,
    "thursday": true,
    "friday": false,
    "saturday": false,
    "sunday": true
  }
}

wordsTable Koleksiyonu

{
  "email": "kullanici@ornek.com",
  "translations": {
    "en-tr": [
      {
        "source_text": "apple",
        "target_text": "elma",
        "score": 10,
        "nextScore": 15,
        "isFavorite": false,
        "difficulty": "easy",
        "added_time": "..."
      }
    ]
  }
}

politikalar Koleksiyonu

{
  "page": "GizlilikPolitikası",
  "backgroundColor": "#ffffff",
  "fontSize": 16,
  "color": "#333333",
  "content": "...",
  "imageName": "background.jpg"
}

languageSelections Koleksiyonu

{
  "name": "sourceLanguage",
  "languages": {
    "en": "English",
    "tr": "Türkçe",
    "de": "German"
  }
}

🤝 Katkı

Katkılarınızı memnuniyetle karşılıyoruz! Lütfen şu adımları izleyin:

  1. Bu depoyu forklayın
  2. Özellik dalı oluşturun (git checkout -b feature/yeni-ozellik)
  3. Değişikliklerinizi commit edin (git commit -m 'feat: yeni özellik eklendi')
  4. Dalı pushlayın (git push origin feature/yeni-ozellik)
  5. Pull Request açın

📄 Lisans

Bu proje ISC lisansı altında dağıtılmaktadır. Detaylar için LICENSE dosyasına bakın.


Geliştirici: Ali Kaçar

GitHub LinkedIn YouTube

About

Kullanıcıların çeviri yapabileceği ve çeşitli egzersizlerle dil bilgisini arttırabileceği bir site.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages