No description
  • TypeScript 95.9%
  • Python 3.4%
  • Shell 0.6%
  • HTML 0.1%
Find a file
ProManage User e5211eed66 excel-pluginとemail-senderの未実装機能を追加
- excel-plugin: export機能を実装
  - JSONデータをExcelファイルにエクスポート
  - Base64エンコードで返却
  - 空データチェック

- email-sender: getConfig機能を実装
  - パスワードを隠して設定を取得
  - セキュリティ配慮
  - POSTメソッドで統一

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-06-15 22:43:02 +09:00
.planning docs: 全フェーズ完了に伴い計画ドキュメントを最新化 2026-06-13 03:24:18 +09:00
api excel-pluginとemail-senderの未実装機能を追加 2026-06-15 22:43:02 +09:00
docs docs: Odoo完全隠蔽 - エンドユーザー向け資料からOdoo言及を削除 2026-06-13 11:42:08 +09:00
odoo/config feat: add sales management backend (customers, sales orders, shipments) 2026-06-13 02:34:55 +09:00
scripts プラグインシステムの実装と顧客管理の完全サポート 2026-06-14 02:48:05 +09:00
web DB Explorerプラグイン修正とロス・品質管理統合 2026-06-15 21:39:15 +09:00
.env.example セキュリティ・技術的負債・パフォーマンスの包括的改善 2026-06-13 13:27:26 +09:00
.gitignore docs: initialize project (ProManage) 2026-06-11 19:35:08 +09:00
AGENTS.md DB Explorerプラグイン修正とロス・品質管理統合 2026-06-15 21:39:15 +09:00
DB_EXPLORER_DESIGN.md DB Explorerプラグイン: 本格的なDBエクスプローラーを実装 2026-06-13 22:50:52 +09:00
docker-compose.yml テーマ設定システムを動的に変更可能に実装 2026-06-13 15:18:25 +09:00
README.md docs: README作成 & API修正(Odoo 17フィールド名の互換性対応) 2026-06-13 11:36:29 +09:00
start-api.sh PM2による永続化設定・start-api.sh追加 2026-06-13 18:34:08 +09:00
watchdog.sh ウォッチドッグ・PM2永続化の整備 2026-06-13 18:35:36 +09:00

ProManage

食品加工業向け販売管理システム。Odoo 17 をバックエンドに据えつつ完全に隠蔽し、専用 Web UI を通じて仕入・加工・販売を一貫管理します。

特長

  • Odoo 完全隠蔽 — 利用者は Odoo の管理画面に触れることなく、専用 UI ですべての業務を遂行
  • 食品加工に特化 — 原材料ロット → 加工ロット → 製品ロットの完全トレーサビリティ(順方向・逆方向追跡)
  • エンドツーエンド — 仕入・在庫・加工BOM/製造指図)・販売(受注/出荷/請求)まで一貫フロー
  • ロールベース権限 — 管理者 / 営業 / 現場作業者の 3 ロール

アーキテクチャ

┌─────────────────────────────────────────────────────┐
│                   Frontend (React SPA)               │
│   Vite + TypeScript + Tailwind CSS + react-router    │
│   Port: 5173                                         │
└──────────────┬──────────────────────────┬────────────┘
               │ HTTP (axios)             │
               ▼                          ▼
┌──────────────────────────────────────────────────────┐
│              API Server (Express + TypeScript)         │
│   Port: 3001                                          │
│   JWT 認証 / ルーティング / XML-RPC ブリッジ            │
└──────────────┬──────────────────────────┬─────────────┘
               │ XML-RPC                   │
               ▼                          ▼
┌──────────────────────┐   ┌──────────────────────────┐
│    Odoo 17           │   │   PostgreSQL 15          │
│    Port: 8069        │   │   Port: 5432             │
│    (Docker)          │   │   (Docker)               │
└──────────────────────┘   └──────────────────────────┘

レイヤー構成

レイヤー 技術スタック 役割
Frontend React 18 + Vite + TypeScript 専用 Web UI
API Express + TypeScript + JWT REST API + Odoo XML-RPC ブリッジ
ERP Backend Odoo 17 (Docker) 業務ロジック・データ永続化
Database PostgreSQL 15 (Docker) データ保存

主要ディレクトリ

├── api/                    Express API サーバー
│   ├── src/
│   │   ├── routes/         ルーティング14ファイル, 46エンドポイント
│   │   ├── services/       Odoo XML-RPC サービス10ファイル, 51関数
│   │   ├── middleware/     認証・権限ミドルウェア
│   │   ├── types/          型定義
│   │   └── index.ts        エントリポイント
│   └── tests/
├── web/                    React フロントエンド
│   ├── src/
│   │   ├── pages/          ページコンポーネント29ファイル
│   │   ├── components/     UI コンポーネントLayout, DataTable
│   │   ├── contexts/       AuthContextJWT 認証状態管理)
│   │   ├── api/            axios クライアント
│   │   └── types/          型定義
│   └── vite.config.ts
├── odoo/                   Odoo 設定・カスタムアドオン
├── docker-compose.yml      Odoo + PostgreSQL
└── .planning/              プロジェクト管理ドキュメント

API エンドポイント

認証 (/api/auth)

Method Path 説明
POST /login ログインJWT 発行)
GET /me 現在のユーザー情報

仕入管理

Method Path 説明
GET/POST /api/partners 仕入先 一覧/作成
GET/PUT /api/partners/:id 仕入先 詳細/更新
GET/POST/PUT /api/purchase-orders 発注 CRUD
POST /api/purchase-orders/:id/confirm 発注確定
GET/POST /api/receipts 入庫一覧/作成
POST /api/receipts/:id/validate 入庫確定
POST /api/receipts/lots ロット作成

在庫管理

Method Path 説明
GET /api/inventory/quants 在庫数量一覧
GET /api/inventory/summary 在庫サマリー
POST /api/inventory/adjustments 棚卸登録

加工管理

Method Path 説明
GET/POST /api/processing/boms BOM/レシピ CRUD
GET/POST /api/processing/productions 製造指図 CRUD
POST /api/processing/productions/:id/confirm 指図確定
POST /api/processing/productions/:id/start 指図開始
POST /api/processing/productions/:id/finish 指図完了(ロット登録)
GET /api/processing/trace/forward/:lotId ロット順追跡
GET /api/processing/trace/backward/:lotId ロット逆追跡

販売管理

Method Path 説明
GET/POST /api/customers 顧客 CRUD
GET/POST /api/sales/sales-orders 受注 CRUD
POST /api/sales/sales-orders/:id/confirm 受注確定
GET /api/sales/sales-orders/:id/pdf PDF 出力
GET/POST /api/shipments 出荷管理
POST /api/shipments/:id/deliver 出荷確定
GET/POST /api/invoices 請求書管理
POST /api/invoices/:id/pay 入金登録

システム

Method Path 説明
GET /api/health ヘルスチェック
GET/PUT /api/config システム設定

開発環境

前提条件

  • Node.js 18+
  • Docker & Docker Compose

セットアップ

# 1. Odoo + PostgreSQL 起動
docker compose up -d

# 2. API サーバー起動
cd api
cp ../.env.example .env  # 初回のみ
npm install
npm run dev

# 3. フロントエンド起動(別ターミナル)
cd web
npm install
npm run dev

起動確認

curl http://localhost:3001/api/health
# → {"status":"ok","odoo":"connected","timestamp":"..."}

ブラウザで http://localhost:5173 にアクセスし、admin / admin でログイン。

ログイン認証情報

ロール ログイン パスワード
管理者 admin admin
営業 sales sales
現場作業者 worker worker

v1 実装要件19要件 全完了)

フェーズ 要件 完了
Phase 1: 基盤・認証 ログイン/ロール権限
Phase 2: 仕入管理 仕入先/原材料/発注/入庫/ロット登録
Phase 3: 在庫管理 在庫照会/棚卸
Phase 4: 加工管理 BOM/製造指図/実績登録/トレーサビリティ
Phase 5: 販売管理 顧客/見積/受注/出荷
Phase 6: 請求・完了 請求書/入金/ダッシュボード

技術スタック

カテゴリ 技術
フロントエンド React 18, TypeScript, Vite, react-router-dom v6, axios
バックエンド Express, TypeScript, xmlrpc, jsonwebtoken
ERP Odoo 17 (Docker), PostgreSQL 15 (Docker)
開発ツール tsx (TypeScript Execute), Vitest, Supertest

ライセンス

プロプライエタリ。社内利用専用。


ProManage v1 — 2026-06