1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

家庭教師がオンライン授業のためのホワイトボード共有サイトを作ってみた

Last updated at Posted at 2022-11-01

前提

コロナ禍の状況で、zoomを使ってオンライン授業をしていたが、使いにくかったので、自分で作ることにしました。
ボードミート

技術

バックエンド
-- 言語

  • Python3

-- フレームワーク

  • Django 3.0.6

フロントエンド
-- 言語

  • CSS
  • Javascript
  • HTML

-- フレームワーク

  • jquery
  • materiallize.css

インフラ

  • AWS EC2
  • AWS S3 storage
  • AWS Route53

アーキテクチャー

スクリーンショット 2022-11-01 18.48.36.png

工夫した点

  • webRTCを使ってシグナリングをする際に、複数人でシグナリングをすると、どの人にシグナルを送信しているかわからなくなるので、シグナリングデータにfrom, toを用いて、誰が誰にシグナルを送っているかを明確にした。
myboard.html
window.onbeforeunload = function (event) {
                videoRoomSocket.send(JSON.stringify({
                    "type": "bye",
                    "from": user_name,
                    "to": "all"
                }));
            }

if (data.message == "join") {
                 console.log("join?");
                 if (data.user_name !== user_name) {
                    console.log("join!");
                     videoRoomSocket.send(JSON.stringify({
                         "type": "hello",
                         "to": data.user_name,
                         "from": user_name
                     }));
                     return;
                 }
                 return
             }
  • whiteボードのデータを相手にリアルタイムで送信する際に、websocketかwebRTCのデータチャネルで送信するかを決める際に、webRTCのデータチャネルの送信スピードが、websocketよりも5倍ほど速かったので、webRTCのデータチャネルを採用した。

使い方

スクリーンショット 2022-10-29 19.35.51.png

  • 左上のボタンはボードに記述するためのボタン、左下はリロード、退出、ヘルプ(未実装)ボタン、右下は画像貼り付けや全削除、記述したコンテンツを1つ前に戻すボタン、右上はボードをzoomしたり、動かしたりするボタンです。

  • ユーザー登録をすると、自分のホワイトボードを使うことができ、他のユーザーと相互フォロー状態になると、他のユーザーのボードも編集できるようになります。

  • 全て無料で使うことができますので、ぜひ一度使ってみてほしいです。できれば、アイデアや、感想などがあればコメントや、bm_admin@board-meet.comのメールアドレスに送信していただくと非常にうれしいです!

これから実装するもの

  • 使い方説明
  • 文字のサイズ、色などを変更する機能
  • ボードの画像情報をダウンロードすること
  • electronでデスクトップアプリケーション化すること
  • お問い合わせページの実装
  • test codeの記述

コード

GitHub: esakiryota/my-second-blog

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?