ProManage
食品加工業向け販売管理システム。Odoo 17 をバックエンドに据えつつ完全に隠蔽し、専用Web UIを通じて仕入・加工・販売を一貫管理します。
技術スタック
| レイヤー |
技術 |
| フロントエンド |
React 18 + TypeScript + Vite 5 + MUI v9 + Zustand |
| バックエンドAPI |
Express + TypeScript (tsx watch) |
| ERPバックエンド |
Odoo 17 (Docker) over XML-RPC |
| データベース |
PostgreSQL 15 (Docker: Odoo用) + document_db (伝票用) |
| プロセス管理 |
PM2 |
ディレクトリ構造
1r/
├── api/ Express API サーバー (ポート3001)
│ ├── src/routes/ 20ルーターファイル
│ ├── src/services/ 15サービスファイル(Odoo XML-RPC)
│ └── src/plugins/ 8プラグイン(PDF, email, 税計算, DB Explorer等)
├── web/ React フロントエンド (ポート5173)
│ ├── src/pages/ 43ページファイル
│ ├── src/components/ 9共通コンポーネント
│ └── src/plugins/ DB Explorerフロントエンド
├── docker-compose.yml Odoo + PostgreSQL
├── data/ シードデータ(CSV)
└── scripts/ ユーティリティスクリプト
クイックスタート
# 1. インフラ起動
docker compose up -d
# 2. APIサーバー起動
cd api && npm install && npm run dev
# 3. フロントエンド起動(別ターミナル)
cd web && npm install && npm run dev
ブラウザで http://localhost:5173 → admin / admin でログイン。
ログイン認証情報
| ロール |
ログイン |
パスワード |
| 管理者 |
admin |
admin |
| 営業 |
sales |
sales |
| 現場作業者 |
worker |
worker |
コマンド一覧
# フロントエンド
cd web && npm run dev # 開発サーバー
cd web && npm run build # 本番ビルド(型チェック含む)
cd web && npm run lint # ESLint
# API
cd api && npm run dev # tsx watch
cd api && npm run build # tsc
cd api && npm run test # Vitest
# 本番ビルド + API再起動
./scripts/build-and-restart.sh
# コンテナ
docker compose up -d # 全サービス起動
docker compose logs -f api # ログ確認
pm2 list # PM2プロセス確認
主な機能
| 機能 |
API ルート |
フロントエンドページ |
Odooモデル |
| 認証 |
/api/auth |
Login |
res.users |
| ダッシュボード |
/api/dashboard |
Dashboard |
各種集計 |
| 仕入先管理 |
/api/partners |
suppliers/ |
res.partner |
| 原材料管理 |
/api/products |
products/ |
product.template |
| 発注管理 |
/api/purchase-orders |
purchase-orders/ |
purchase.order |
| 入庫管理 |
/api/receipts |
receipts/ |
stock.picking (incoming) |
| 在庫照会/棚卸 |
/api/inventory |
inventory/ |
stock.quant / stock.move |
| ロス・品質管理 |
/api/losses |
losses/ |
stock.scrap + quality_* |
| BOM/レシピ |
/api/processing |
boms/ |
mrp.bom |
| 製造指図 |
/api/processing |
productions/ |
mrp.production |
| ロットトレース |
/api/processing/trace |
trace/ |
stock.lot / mrp.* |
| 顧客管理 |
/api/customers |
customers/ |
res.partner |
| 受注管理 |
/api/sales |
sales-orders/ |
sale.order |
| 見積書管理 |
/api/quotations |
quotations/ |
sale.order (draft) |
| 請求書管理 |
/api/invoices |
invoices/ |
account.move |
| 出荷管理 |
/api/shipments |
shipments/ |
stock.picking (outgoing) |
| 月次請求書 |
/api/monthly-invoices |
monthly-invoices/ |
集計データ |
| ワークフロー |
/api/workflows |
workflows/ |
DB直接 (document_db) |
| テーマ設定 |
/api/theme |
ThemeSettings |
DB直接 (document_db) |
プラグインシステム
| プラグイン |
説明 |
エンドポイント数 |
| customer-plugin |
顧客管理 (Odoo res.partner) |
5 |
| shipment-plugin |
出荷管理 (Odoo stock.picking) |
7 |
| db-explorer |
DBエクスプローラ |
8 |
| pdf-generator |
PDF生成 (jsPDF) |
4 |
| email-sender |
メール送信 (SMTP) |
4 |
| tax-calculator |
消費税計算 (10%/8%) |
3 |
| t-number |
Tナンバー管理 |
3 |
| excel-plugin |
Excel インポート/エクスポート |
4 |
設計思想
- Odoo完全隠蔽: 利用者はOdooを意識せず、専用UIのみで全業務を遂行
- 伝票完全性: 発行した伝票はdocument_dbにJSON + SHA256ハッシュチェーンで保存(電帳法対応)
- 食品加工特化: 原材料ロット → 加工ロット → 製品ロットの完全トレーサビリティ
- ロール権限: 管理者 / 営業 / 現場作業者の3ロール
ProManage — 2026-06