0
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?

Sensei8.jp の家庭教師マッチング機能を技術目線で分解してみた

Posted at

Untitled design (17).jpg

オンライン家庭教師マッチングサービスとして注目される Sensei8.jp。
今回は Qiita らしく「どうやって生徒と講師をつなげているのか?」を、技術的な視点で掘り下げてみます。

⭐ 目次
サービス概要

マッチングアルゴリズム(疑似コード付き)

技術スタック想定

UX/セキュリティ設計

自分のプロジェクトへの応用

まとめ

  1. サービス概要
    Sensei8.jp は、東京都発の 家庭教師 マッチングサイト で、全国にオンライン対応しています。

生徒が希望する教科・地域(東京 or 全国)を指定

講師のプロフィール・レビューを見ながら選定 → 体験申込 → 授業開始

この流れを支えるのが、マッチングのロジックとユーザーインターフェースです。

  1. マッチングアルゴリズム(擬似コード)
    python
    Copy
    Edit
    def find_matching_teachers(student):

    条件:教科・地域・指導形態(対面/オンライン)

    candidates = query_teachers(
    subject=student.subject,
    region=student.region, # 東京 or 全国
    online_ok=student.online_ok
    )

    フィルタリング:講師の評価スコアとレビュー件数で絞り込む

    filtered = [
    t for t in candidates
    if t.rating >= 4.0 and t.reviews_count >= 5
    ]

    優先ソート:地域一致、評価高順、レビュー多い順

    sorted_teachers = sorted(filtered, key=lambda t: (
    t.region == student.region,
    t.rating,
    t.reviews_count
    ), reverse=True)

    上位 n 件を返す

    return sorted_teachers[:10]
    このようなシンプルながら実務的なマッチングがベースになります。

  2. 技術スタック想定
    実際の構成は公開されていないため「よくある設計」を仮定してみます。

層 技術候補
フロント React / Vue.js
バックエンド Django / Node.js (Express)
DB PostgreSQL
認証・課金 JWT + Stripe
リアルタイム WebSocket 或いは Pusher
インフラ AWS (EC2 / RDS / S3)

マッチングでは PostgreSQL の全文検索(GINインデックス)や Redis キャッシュ、全文フィルタリングを活用していると予測されます。

  1. UX/セキュリティ設計
    UI面
    プロフィールカードに「学歴」「レビュー数」「料金」「対応地域」などを明示

「体験授業申込み」ボタン配置

講師とのメッセージ機能、スケジュール調整

セキュリティ面
講師は⾝分証明の画像提出+運営による審査あり

認証:JWTトークン + HTTPS

支払い:Stripe等の外部サービスによるカード処理

対面指導希望の場合、講師と生徒の住所情報は暗号化保存

  1. 自分のプロジェクトへの応用
    この構成を参考に、次のような実装が可能です:

検索画面:サイドバー条件で動的検索(React+Axios)

キャッシュ:Redis で「よく検索される教科+地域」の結果を保存

レビュー平均の計算:

sql
Copy
Edit
UPDATE teachers
SET avg_rating = sub.avg
FROM (
SELECT teacher_id, AVG(rating) AS avg
FROM reviews GROUP BY teacher_id
) AS sub
WHERE teachers.id = sub.teacher_id;
体験申込フロー:予約エンティティ+Slack通知 or メールトリガー

  1. まとめ
    Sensei8.jp は、

講師・生徒のマッチングロジック

安心して使えるUX設計

認証・決済の組み込み
など、多機能ながらシンプルにまとまった設計です。

この構成を元に、ご自身の家庭教師マッチングサイトや技術検証用プロダクトの設計図として活用してみてはいかがでしょうか。

🏷 タグ(Qiita用)
less
Copy
Edit
#家庭教師 #マッチングサイト #オンライン家庭教師 #技術ブログ #React #Nodejs #Django #設計 #技術共有

0
0
0

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
0
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?