株式会社GenAi / エンジニア
マークシートOCRで、国家資格模試の提出・採点・成績分析を自動化
プロジェクト概要 学習塾の模試申込・自動採点システムの開発。模試を購入した受験生が、スキャンしたマークシート画像をアップロードし、OCRで自動読み取り→手動修正→提出→自動採点→成績分析までを一気通貫で行うWebアプリケーション。司法書士・行政書士・宅建士・社労士など複数試験種別に対応。 役割担当 フロントエンド・バックエンドの設計・実装(フルスタック) DB設計(PostgreSQL / Supabase) 結合テスト・シナリオテスト・システムテストの設計・実施 本番障害調査・保守対応 何をやったか ・受験生向け解答提出フロー(5ステップ) 模試選択→画像アップロード→OCR結果確認・修正→提出確認→完了の導線を実装。試験種別ごとに異なるマークシート形式・解答UIに対応。 ・成績表示・個別成績表 社労士・宅建士の個別成績表画面をフロント・バック・DB含めて実装。得点分布、科目別スコア、レーダーチャート等の可視化に対応。 ・管理者画面 模試詳細、集計表設定、個別解答結果、成績表プレビュー機能を実装。公開前プレビューでは実データとダミーデータを使い分け、運用者の確認フローを整備。 ・PDF出力 個別成績表・集計結果のPDFダウンロード機能を実装。Vercel環境でのPlaywright制約を踏まえ、@react-pdf/rendererへ技術選定・移行。 ・品質担保・本番移行 結合/システムテスト仕様書の作成・実施、移行タイムチャート策定、移行リハを経た本番移行を担当。本番エラー発生時の原因調査・修正にも対応。 ・運用基盤 Supabase Edge Functionのエラー検知→Slack通知の仕組みを実装し、本番監視・障害対応の効率化に貢献。 工夫ポイント ・試験種別ごとに画面・API・OCRレイアウトを分離し、新試験種別追加時の影響範囲を局所化 ・Server Components + Server Actionsを中心に設計し、型安全なデータ取得・更新フローを構築 ・ZodスキーマでAPI入出力を厳密化し、フロント・Edge Function間の型不整合を防止 ・RLS + Edge Function経由のアクセスに統一し、受験生データのセキュリティを担保 ・EC-CUBE連携はJWTトークン交換でセッション確立し、外部ECサイトとのシームレスな認証を実現 ・PDF生成は実行環境制約を踏まえた技術選定(Playwright→@react-pdf/renderer)で安定運用を実現