Dang Gia Lam
教育 × AIチューター × バックエンド開発

AIチューターと対話しながら学べる個別学習支援システム

教科・トピック・チャットセッション・進捗を扱うAPI、Firebase認証とロール制御、Assistants APIによる教材参照を、バックエンド開発者として設計・実装。

CASE STUDY / 実績 Back to WORKS
対象業種
大学・学校(教育事業者向け)
開発区分
個別学習支援プラットフォームのバックエンド開発 / 体制4名・メンバー
期間
2024年6月〜2024年10月(約5ヶ月)
担当範囲
バックエンドAPI設計・実装 / データ設計 / 認証・権限実装 / AI連携 / 集計ロジック実装(要件定義・画面設計・フロントエンド実装は専任メンバーが担当)
使用技術
Python / FastAPI / Firebase / Cloud Firestore / OpenAI Assistants API
連携サービス
OpenAI Assistants API v2 / Firebase Authentication / Cloud Firestore / Firebase Storage
OVERVIEW

プロジェクト概要

生徒一人ひとりの理解度に合わせたAIチューターとの対話学習、教材連携、進捗可視化を一体化した個別学習支援プラットフォームです。体制4名(フロントエンド開発者1名/テスター1名/デザイナー1名/私)のうち、バックエンド開発者としてサーバー側を担当し、API設計・実装、データ設計、認証・権限実装、AI連携、集計ロジック実装を行いました。要件はプロジェクト開始時点で確定しており、要件定義・画面設計・フロントエンド実装は担当範囲外です。

AIチューターが、生徒一人ひとりの学びに伴走する。
PROBLEM

元の業務課題

  • 生徒ごとに理解度が異なるにもかかわらず、画一的な教材・進度で学習を進めざるを得なかった
  • 学習履歴や進捗が記録・可視化されておらず、生徒も教師も理解度の推移を把握しづらかった
  • 既存教材を活かした個別回答ができず、AIチャットを導入しても教材と整合しない回答になりやすかった
  • 教材参照のために独自のベクトル検索基盤を構築すると、開発コストと運用コストが大きくなる
  • 生徒・教師・管理者でアクセスできる範囲が異なり、ロールごとの権限制御が必要だった
BEFORE

Beforeの業務フロー

  1. 01生徒は共通教材・共通進度で学習を進める
  2. 02理解度の確認はテストなど断続的なタイミングに限られる
  3. 03つまずいた箇所への個別フォローが手薄になりやすい
  4. 04学習時間・正答率などのデータが記録・蓄積されない
  5. 05教師は生徒ごとの状況を把握しづらく、指導の優先順位をつけにくい
教科選択から進捗記録まで、一貫した学習体験を支えるAPI。
SOLUTION

提案した解決方法

ARCHITECTURE

システム構成イメージ

登録教材を根拠に、AIチューターが回答を生成。
FEATURES

主な機能

学習API(機能別ルーター)

教科・トピック・セクション・ユーザー・チャットセッション・進捗を扱うAPIを機能ごとに分割して実装。

認証・トークン検証

Firebase Authenticationで認証し、バックエンドはJWKS経由のトークン検証ミドルウェアを実装。

ロールベースアクセス制御

生徒/教師・管理者のロールに応じて、参照・更新できる範囲をサーバー側で制御。

チャットセッション管理

フラット構造からサブコレクション構造へスキーマ移行し、セッション単位のアクセスを扱いやすく設計。

教材連携AI回答

OpenAI Assistants APIのファイル添付・検索機能を用い、独自ベクトル検索基盤を持たずに教材参照を実現。

学習ダッシュボードの集計

進捗率(トピック進捗値の平均)、学習ストリーク(当日/前日判定)、クイズ統計の3指標を集計。

学習状況を自動で記録し、成長を可視化。
教科・教材・ユーザー・AIチューター設定を一元管理。
OUTCOMES

導入効果

  • 教科・トピック・セクション・ユーザー・チャットセッション・進捗を扱うAPIを、機能別ルーター構成で設計・実装
  • チャットセッションをサブコレクション構造へスキーマ移行し、セッション単位のアクセスを扱いやすく改善
  • 独自の検索基盤を作らずAssistants APIを使う判断により、開発・運用コストを抑制
  • 進捗率・学習ストリーク・クイズ統計の3指標を集計する学習ダッシュボードのロジックを実装
  • ※定量的な成果数値は把握していないため記載していません。要件定義・画面設計・フロントエンド実装は担当範囲外です
STACK

技術構成

Python 3.12 / FastAPI 0.111機能別ルーター分割によるAPI設計Firebase Authentication / JWKS検証ミドルウェアFirebase Admin SDK 6Cloud Firestore(サブコレクション設計)Firebase StorageOpenAI Assistants API v2(ファイル添付・検索)ロールベースアクセス制御進捗率・学習ストリーク・クイズ統計の集計ロジックDatabutton
RELATED

関連プロジェクト

LET’S CONNECT

生成AIを、
動く業務につなぎませんか。

AI適用可否の検証から、バックエンド開発、AWSインフラ構築、リリース後の運用改善までご相談いただけます。