経済産業大臣賞受賞 | 木材流通業界のDXを実現したB2BサブスクリプションSaaS
電話・FAX・Excelによるアナログ取引を、Web上で一元管理するSaaS化に成功
クライアント
某木材流通関連企業(本プロダクトにて経済産業大臣賞を受賞) | 業界: 木材流通(林業、市場、製材所、メーカー、問屋、工務店など) | モデル: B2B 月額課金サブスクリプション (SaaS)
私の役割
テクニカル・アーキテクト 兼 フルスタック・デベロッパー(基本設計・フロントエンド・バックエンド・インフラ構築・運用保守まで、プロダクト開発の全工程を一人で担当)
💭課題(Situation & Task)
木材業界は、電話・メール・FAX・Excelでの受発注が主流の、極めてアナログな業界でした。流通には「林業」「市場」「製材所」「プレカット」「工務店」「メーカー」「問屋」といった多様な業界(ユーザー属性)が関わっており、商流や利害関係が複雑に絡み合っていました(業界のしがらみ)。従来は関係性のある既存の取引先としか取引できず、情報も閉鎖的でした。
詳細:
木材業界特有の複雑な課題として、以下の3点が存在していました。
-
業界の根本課題: 電話、メール、Fax、Excelでの受発注が主流で、デジタル化が大幅に遅れていました。在庫情報はExcelで管理され、常に最新情報が不明。FAXでの発注は記録が残らず、電話での確認作業に毎日数時間を要していました。
-
複雑なステークホルダー: 「林業」「市場」「製材所」「プレカット」「工務店」「メーカー」「問屋」といった多様な業界(ユーザー属性)が関わっており、それぞれの商流や利害関係が複雑に絡み合っていました。各ユーザー属性で実行可能な機能や閲覧できる情報が異なるため、厳格な認証・認可が必須でした。
-
非効率な取引: 従来は、関係性のある既存の取引先としか取引できず、情報も閉鎖的。新規取引先の開拓は困難で、ビジネス機会を逃していました。
🔧技術選定の理由(Rationale)
- ▸
Python (Flask, SQLAlchemy): PDF/Excelの重いバッチ処理(並列処理)や、複雑なビジネスロジック、データ操作(Excelインポート)に最適と判断
- ▸
React (Vite, Tanstack Query): 複雑なユーザー属性ごとのUI制御、大量のデータ操作、APIキャッシュによるUX向上を実現するため採用
- ▸
AWS (ECS, Fargate, RDS等): スケーラブルなSaaS基盤として必須。コンテナベースのマイクロサービス・アーキテクチャで柔軟性を確保
- ▸
Terraform (IaC): 複雑なAWS環境(VPC, Cognito, ECS, RDS等)の再現性、保守性、セキュリティを担保するため、IaCを徹底
- ▸
AWS Cognito: 「林業」「市場」「製材所」など、多様なユーザー属性ごとに厳格な認証・認可(実行可能機能の分離)を実現するために採用
- ▸
Stripe: 月額サブスクリプション(SaaS)の課金基盤として、最も信頼性が高いため採用。定期課金、顧客管理、請求書発行を自動化
⚡実施したこと(Action)
- ✓
【複雑な認証認可とB2Bセキュリティ】Cognitoを活用し、8種のユーザー属性ごとにページ単位・API単位で厳格な認証・認可を実装。画像・PDF・Excel等のアセットは署名付きURLを発行し、適切な権限を持つユーザーのみがセキュアにアクセス可能に
- ✓
【セキュリティ強化】クライアント側(zod) + バックエンド側(Marshmallow)の両方で徹底したバリデーションを実装。OWASP ZAPツールによる脆弱性テストを実施し、SQLAlchemyによるORM利用でSQLインジェクションを防御
- ✓
【パフォーマンス最適化】「見積書・納品書・請求書」のPDF/Excel生成や「既存ExcelのDB化」は重い処理。Pythonバックエンド側で処理を非同期化し、可能な限り並列処理で実行するアーキテクチャを設計
- ✓
【フロントエンドのUX】Tanstack Query (React Query)を全面的に採用し、APIキャッシュの効率化、データフェッチの責務分離、可読性の高い状態管理を実現。TypeScriptの型システムとzodを組み合わせ、APIレスポンスからUIコンポーネントまで一貫した型安全性を担保
- ✓
【AWSインフラの自動化(IaC)】広範なAWSサービス群を、TerraformによるIaCで完全にコード化。VPCのネットワーク設計からECS on Fargate(コンテナ基盤)、RDS(DB)、Cognito(認証)、ALB、CloudFront(CDN)、SES(メール)まで、全てをTerraformで管理し、再現性と保守性を確立
- ✓
【CI/CD パイプラインの構築】GitHub Actions で自動テスト・リンター(ESLint/Prettier/Flake8)・脆弱性診断(npm audit/pip-audit)を実行。コードレビュー後、自動ビルド・ECSへの自動デプロイを実現し、開発サイクルを高速化
詳細:
このプロジェクトでは、B2B SaaSかつStripe決済が絡むため、セキュリティ要件が最優先事項でした。
セキュリティとパフォーマンスの両立:
- AWS Cognitoを活用し、「林業」「市場」「製材所」「プレカット」「工務店」「メーカー」「問屋」「その他」の8種のユーザー属性ごとに、ページ単位・API単位で厳格な認証・認可を実装しました。各ユーザー属性で実行可能な機能や閲覧できる情報を完全に分離。
- 画像・PDF・Excel等のアセットは、署名付きURL(Pre-signed URL)を発行し、適切な権限を持つユーザーのみがセキュアにアクセス可能にしました。
- クライアント側(zod)とバックエンド側(Marshmallow)の両方で徹底したバリデーションを実装。OWASP ZAPツールによる脆弱性テストを実施し、SQLAlchemyによるORM利用でSQLインジェクションを防御しました。
重い処理の最適化:
- 「見積書・納品書・請求書」のPDF/Excel生成や、「既存ExcelのDB化」は非常に重い処理でした。ユーザーの待ち時間(UX低下)を防ぐため、Pythonバックエンド側で処理を非同期化し、可能な限り並列処理で実行するアーキテクチャを設計しました。
フロントエンドのUXと効率化:
- 多様なユーザーが使用する複雑なB2B管理画面のUXを担保するため、Tanstack Query (React Query)を全面的に採用。APIキャッシュの効率化、データフェッチの責務分離、可読性の高い状態管理を実現しました。
- TypeScriptの型システムとzodを組み合わせ、APIレスポンスからUIコンポーネントまで、一貫した型安全性を担保しました。
🔧技術選定の理由
- ▸
React + Tanstack Query:高速なUIと効率的なデータフェッチング
- ▸
zod + marshmallow:フロント・バック双方での厳格な型安全バリデーション
- ▸
AWS ECS/Fargate + Terraform:IaCによる再現性の高いインフラ
- ▸
PostgreSQL:リレーショナルなデータ構造で複雑な商流を表現
担当領域
- ✓要件定義・基本設計
- ✓フロントエンド開発(React)
- ✓バックエンド開発(Python/Flask)
- ✓インフラ構築(AWS/Terraform)
- ✓データベース設計(PostgreSQL)
使用技術
🎯成果
- 🏆【最大の成果】クライアントはこのプロダクトで「経済産業大臣賞」を受賞
- 🎯業界のDX実現: 電話/FAX/Excelで行われていたアナログな取引を、Web上で一元管理するSaaS化に成功
- 🎯新たなビジネス機会の創出: 従来の閉鎖的な取引から脱却し、日本中のどの会社とでも(例: 製材所が市場に足を運ばずとも)効率的に取引可能に
- 🎯トレーサビリティと信頼の向上: 木材のトレーサビリティ、チャット、企業評価機能により、透明性の高い取引を実現
- 🎯業務効率化: 「見積書・納品書・請求書」のワンクリックPDF/Excel生成、既存Excelデータの自動DB化により、事務作業を大幅に削減
- 🎯セキュリティ強化: 8種のユーザー属性ごとの厳格な認証・認可により、安全なB2B取引基盤を構築
- 🎯月額サブスクリプションモデルの確立: Stripeによる安定した課金基盤で、継続的なビジネス成長を実現
- 🎯CI/CD による品質保証とセキュリティ診断の自動化: GitHub Actions でコードレビュー前に自動テスト・リンター・脆弱性診断を実行し、高品質なコードを担保
同様の課題はありませんか?
あなたのビジネス課題も、最新の技術で解決できるかもしれません。
まずは30分、無料技術相談で状況をお聞かせください。
※ プロジェクト単位(請負)・技術顧問、どちらも対応可能です