プロジェクト概要
COMPREX B2Bは、複数拠点で事業を展開するB2B企業向けに設計されたクラウド型ERPシステムです。
請求管理・在庫管理・拠点間移動管理などの基幹業務を統合し、業務効率化および財務データの整合性向上を目的として開発されました。
本システムは拡張性を重視したマイクロサービスアーキテクチャを採用しており、将来的な機能追加や拠点増加にも柔軟に対応可能な設計となっています。
担当役割
リードフルスタックエンジニア
- バックエンド設計・実装
- フロントエンド設計・実装
- アーキテクチャ設計
- データベース設計
- トランザクション設計
背景・課題
クライアントは複数拠点を運営しており、以下の課題を抱えていました。
- 拠点間で在庫データが同期されない
- 手作業による在庫・請求データの照合に時間がかかる
- リアルタイムでの経営状況の把握が困難
- FIFO・移動平均法などの在庫評価計算が正確に行えない
- 拠点間在庫移動の管理・履歴追跡が不十分
- 市販ERPでは業務フローに適合しない
技術的アプローチ
1. マイクロサービス構成
Spring Cloudを活用し、以下のサービスを分割設計しました。
- 請求管理サービス
- 在庫管理サービス
- 拠点間移動管理サービス
- ユーザー/権限制御サービス
この構成により、
- サービス単位でのスケーリング
- 障害分離
- モジュール単位での将来的な拡張
が可能になりました。
2. トランザクション整合性の確保
PostgreSQLを採用し、以下の処理においてACID特性を厳格に維持しました。
- 仕入・売上計上
- 在庫減算処理
- 拠点間移動処理
- 原価計算処理
同時更新による二重在庫減算を防ぐため、排他制御およびトランザクション境界を明確に設計しました。
3. 在庫評価ロジックの実装
以下の在庫評価方式に対応しました。
- 先入先出法(FIFO)
- 総平均法(AVCO)
コストレイヤーを内部ロジックとして保持し、拠点間移動や部分出庫が発生しても正確な原価計算が行われる構造としました。
4. 拠点間移動ワークフロー
以下の状態管理フローを実装しました。
- 移動申請
- 承認
- 出庫処理
- 輸送中
- 入庫確認
全処理に監査ログを保持し、追跡可能な設計としました。
5. 権限管理設計(RBAC)
ロールベースアクセス制御を導入し、以下のロール別に情報を制御しました。
- 経営層
- 管理者
- 倉庫担当者
- 経理担当者
それぞれに必要最小限の情報のみを表示することで、セキュリティと操作性を両立しました。
システム構成
バックエンド
- Spring Boot
- Spring Cloud
- PostgreSQL
- Docker
- MinIO(帳票・画像保存)
フロントエンド
- React
- TypeScript
- Redux Toolkit
- Material-UI
REST APIは将来的なモバイルアプリ連携を前提に設計しました。
技術的成果
- 同時処理下でも在庫整合性を維持
- 拠点間移動の可視化・追跡機能を実装
- 手作業照合時間の削減
- 財務計算の正確性向上
- 拠点増加に耐える拡張可能な設計
本プロジェクトで発揮した強み
- 分散アーキテクチャ設計
- 財務ロジック実装
- 高整合性トランザクション処理
- フルスタック開発能力
使用技術一覧
Spring Boot • REST API • Spring Cloud Microservices • PostgreSQL • Docker • MinIO • React.js • Material-UI • Redux Toolkit • TypeScript
プロジェクト体制
- 開発期間:10ヶ月(2025年)
- チーム規模:15名
- 開発体制:スクラム/アジャイル開発
- 担当範囲:設計〜実装・リリースまで一貫対応
- ※機密情報保護のため一部表現を抽象化しています。
リードエンジニア:ブライモ ラルフ
