Skip to content

About

A real-time collaborative code editor built with FastAPI and WebSocket.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Ortak Kod Editörü

Build License Made with Python Contributions PRs

Bu proje, aynı ağdaki kullanıcıların gerçek zamanlı olarak birlikte Python kodu yazmasını sağlayan basit bir ortak kod editörüdür.
Kullanıcı girişi Firebase ile yapılmakta, editör arayüzü CodeMirror ile sağlanmakta ve canlı eşleşme WebSocket ile desteklenmektedir.

Ortak Kod Editörü Demo


🧱 Sistem Mimarisi

[Firebase Auth] --> Giriş / Kayıt işlemleri
[Firebase Realtime DB] <--> Kod & imleç senkronizasyonu
[WebSocket (FastAPI)] <--> Gerçek zamanlı editör güncellemesi
[CodeMirror] <--> Editör arayüzü (tarayıcıda)

📋 Özellikler

Özellik Açıklama
Firebase Auth Giriş ve kayıt işlemleri
Realtime Database Kod ve imleç verilerinin saklanması ve paylaşılması
CodeMirror Kod düzenleme arayüzü (Python destekli)
WebSocket Gerçek zamanlı kod senkronizasyonu
Responsive Tasarım Mobil ve masaüstü uyumlu sade arayüz
Firebase Auth Kontrolü Giriş yapılmadan editöre erişim engellenir

⚙️ Kurulum

Gerekli Paketler

pip install fastapi uvicorn

Proje Yapısı

proje/
├── server.py               # FastAPI + WebSocket sunucusu
├── index.html              # Ortak editör sayfası
├── anasayfa.html           # Giriş / kayıt sayfası
├── style.css               # Ortak stil dosyası
├── .gitignore              # Git yapılandırma dosyası
├── .gitattributes
└── README.md               # Proje dökümantasyonu ← bu dosya

Not: FastAPI'de StaticFiles(directory="frontend") satırını kullanıyorsanız, HTML ve CSS dosyalarınızı frontend/ klasörüne taşımalısınız.


🚀 Çalıştırma

  1. Sunucuyu başlatın:

    uvicorn server:app --reload
  2. Tarayıcıdan açın:

    http://localhost:8000/anasayfa.html
    
  3. Giriş yapın veya kayıt olun. Giriş yaptıktan sonra index.html sayfasına yönlendirilirsiniz.


🔧 Firebase Ayarları

Firebase kullanımı için şu adımları izleyin:

  • Firebase projesi oluşturun: https://console.firebase.google.com
  • Authentication > Email/Password aktif edin.
  • Realtime Database oluşturun (mod: test veya güvenlik kuralına göre).

Firebase Yapılandırma Kodunu Güncelleyin

anasayfa.html ve index.html içinde şu kısmı güncelleyin:

const firebaseConfig = {
  apiKey: "...",
  authDomain: "...",
  projectId: "...",
  databaseURL: "...",
  ...
};

🌐 WebSocket (server.py)

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    connected.add(websocket)
    ...
  • İlk bağlanan kullanıcıya mevcut kod içeriği gönderilir.
  • Kod değişiklikleri tüm kullanıcılara iletilir.
  • WebSocket ile gerçek zamanlı düzenleme sağlanır.

💡 Teknik Detaylar

  • Kod ve imleç Firebase ile eş zamanlı olarak güncellenir.
  • WebSocket ise Firebase'e paralel olarak çalışır, hızlı tepki sağlar.
  • editor_content[0] bellekte editör içeriğini saklar.

✅ Yapılacaklar

  • Kullanıcı listesi ve aktif kullanıcı gösterimi
  • Dosya kaydetme / yükleme özelliği
  • Çok odalı (room-based) editör desteği
  • Tema desteği (koyu / açık mod)

🧪 Test

Şu anda testler manuel olarak yapılmaktadır. Otomatik test süreci dahil edilmemiştir.

Geliştirme sonrası şu komutlarla test ortamı kurulabilir:

python -m unittest discover

🤝 Katkı Rehberi

Katkı sağlamak için:

  1. Fork yapın
  2. Yeni bir branch oluşturun: git checkout -b feature/yenilik
  3. Değişiklik yapın ve commit edin: git commit -m 'Yeni özellik eklendi'
  4. Branch'i push edin: git push origin feature/yenilik
  5. Pull Request oluşturun

📄 Lisans

Bu proje MIT Lisansı ile lisanslanmıştır. Dilediğiniz gibi kullanabilir, geliştirebilir ve paylaşabilirsiniz.

About

A real-time collaborative code editor built with FastAPI and WebSocket.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages